We have used an open-source WebRTC to SIP library (sip.js version 0.15.11) for the conversion of the WebRTC voice data to sip. There are basically four components of this project as following:
- Dynamic allocation of the SIP id.
- Sip connection with transcoding communicator.
- transcoding communicator to cisco gateway(cisco cube).
- Ringing on Cisco IP communicator.
Dynamic allocation of the extension
We make as ESL (event socket connection) from the server to the SIP transcoding communicator and when the user asks the server for the SIP id we get the list of registered and unregistered sip ids through an API call, then the server sends back any unregistered SIP id to the user. When all the ID are registered then it sends 0000 back to the client means all agents are occupied come back later.
Sip connection with transcoding communicator
When the user successfully gets an unregistered ID, the SIP library make a WebSocket connection with the transcoder server through a secure port, after that, a SIP connection with that SIP Id is created with the Transcoding server. After the SIP connection, it will ask for the user's audio permission for initiating an audio call to a specific cisco extension.
This extension can be changed in the indvid.html file located at Client/indvid.html
Transcoding Server to cisco gateway
Every call lands on the Transcoding server's default dialplan first, there we have implemented a call managing script name cisco that gets enabled when a 5 digit extension is dialed there we have implemented to transfer that call to cisco cube gateway.
This script can be changed depending upon the developed cisco extensions.
Ringing on Cisco IP Communicator
Now through the cisco cube call will be routed with help of the call manager and after that, it lands on the softphone and the IP Communicator starts ringing, and a ringing event occurs on cisco finesse.
- Currently, we have successfully tested audio calls, but having some codec issued with video but soon it will also be resolved.