WebRTC capabilities were introduced in IP Office Release 10.0. The WebRTC SDK includes a JavaScript API that makes it easy for Web developers to build WebRTC clients that can be registered as SIP endpoint devices at IP Office extensions. Users can initiate, receive and control audio and video calls from a Web page displayed in a WebRTC-compliant browser, without having to install a plug-in.
The WebRTC SDK supports Chrome and Firefox browsers. Note that Apple requires use of Safari browser for WebRTC support on iOS; the WebRTC SDK does not yet include Safari support - so there is no support for iOS with the WebRTC SDK at this time.
The SDK handles the complexities of the underlying WebRTC infrastructure, masking them from the developer. The SDK also handles signaling between the WebRTC client and the WebRTC Gateway running in the IP Office environment, using a secure WebSocket connection.
API Functionality
The WebRTC SDK API enables the following functionality to be embedded in WebRTC clients:
Telephony (audio and video) functionality:
- Make an outgoing call.
- Answer or reject an incoming call.
- Drop an ongoing call.
- Hold/unhold an ongoing call.
- Mute/unmute an ongoing call.
- Transfer an ongoing call (attended or unattended).
- Send DTMF tones from the WebRTC client.
- Add/remove video to/from an ongoing call.
- Pause/play local video in an ongoing call.
- Get call statistics for a particular call.
Non-telephony functionality:
- Determine whether the user's browser supports WebRTC.
- Get the version of the WebRTC SDK being used.
- Set configuration parameters before log in.
- Log in/log out of the WebRTC client and determine its logged in status. Log in registers the WebRTC client as a SIP user on IP Office.
- Enable/disable SDK API logging and define which JavaScript logging framework is to be used (default is "console logging").
- Set HTML5 media DOM (Document Object Model) Elements to support the attachment of WebRTC video streams during a call.
- Create/end a loopback connection between the browser and the WebRTC Gateway for audio and data streams, and get loopback statistics.
In addition, WebRTC clients can receive notifications of call, log in and DOM Element change events, and retrieve information about those events.