Overview

Exotel’s WebRTC SDK provides an easy-to-integrate SoftPhone SDK for web applications. The SDK allows you to embed a fully functional softphone within your web applications which can be an in-house web portal or a CRM Application, enabling seamless communication between your users and customers. The softphone supports both inbound and outbound calling, along with programmatically making calls- via dial-pad in the widget and by clicking to call in your CRM. By following the simple integration steps provided, you can quickly enhance your applications with powerful voice communication capabilities.


Video
Here's a short video displaying the WebRTC SDK capabilities:


Benefits of the WebRTC SDK

  1. Bulk user creation using a single API - The users for IP calling can be created at once, with the help of bulk user creation API. 

  2. SIP ID and password creation/management for the users- The SIP credentials of the users would be created and maintained by Exotel. Users just need to log in to their CRMs and get started with the IP calling.

  3. SSO experience for the users -  Users just need to log in once to their CRMs and need not separately login to Exotel. On successful login to the CRMs, the users would be authenticated and the WebSDK would be initialised and registered for the IP calling.

  4. IP calling within your CRMs - The users would be able to take the SIP calls from the widget embedded within the CRMs and need not toggle between multiple tabs. 

  5. UI widget for calling- The widget for incoming/outgoing call popup would be shown to the users where they would get options to accept/reject the calls along with the hold/mute buttons.

  6. The ability for the users to switch off/on their SIP device- Users can switch between IP and PSTN calling as per their network availability with the help of a toggle button.

  7. On-call statuses, status callbacks, call details etc.- All the call details would be available post each call for you to analyze the calls.



Onboarding process 

Please follow the below-mentioned steps to use and configure the IP-PSTN WebRTC SDK for VoIP calls:

Pre-requisites 

In order to have a successful integration with the IP-PSTN WebRTC SDK, you must complete the following prerequisites:


  1. New Services Agreement
    To comply with the Government of India regulations, Exotel has obtained a Unified License for Virtual Network Operator (UL-VNO) under a separate entity named 'Veeno Communications Pvt. Ltd.’  Therefore, a new Services Agreement needs to be signed with 'Veeno Communications Pvt. Ltd.’ for using VoIP services.  Your account manager or the Exotel point of contact will help you with this step.


  2. New account creation (even for existing customers)

Due to the regulatory reason/s mentioned in point 1 above, you are required to sign-up for a new account to use IP-PSTN intermixing for VoIP calls. VoIP services cannot be provided under the existing account/s which you may have already created with us. Your account manager or the Exotel point of contact will help you with this step.

  1. New KYC to be registered (Bangalore ONLY for now)

  • In addition to the four documents required to complete the KYC for an account, accounts with VOIP services enabled for them also require a Customer Acquisition Form(CAF) to be completed as part of KYC. It is supported on the Exotel dashboard as one of the document requirements on the KYC page.

  • KYC needs to be done separately for each city for VoIP accounts. This primarily means that the following 2 documents need to be produced fresh every time a new city KYC is to be done:

  1. Address proof (The address needs to be of the city from where the numbers need to be purchased)

  2. Customer Acquisition Form (CAF)

  • For more details on where the KYC/Verification docs need to be uploaded and what documents qualify for KYC, this link should be referred to. Please get in touch with your account manager or the Exotel point of contact for any queries regarding this process.

  1. New Exophones (Virtual Numbers) to be purchased
    Virtual Number purchase is coupled with individual region/city KYC status. i.e. number purchases will only be allowed from regions where the KYC is completed.

NOTE: Currently, the only city available for KYC and number purchase is Bangalore

For more details on how to procure a new Exophone, please refer to this support article:  https://support.exotel.com/support/solutions/articles/3000010956

  1. Call flows creation/migration and linking with Virtual Number/s
    Once the new account is created and the virtual number/s is purchased, you would need to create the call flows for the inbound scenarios.
    Reference article
     -
    https://support.exotel.com/support/solutions/articles/35140-how-do-i-create-edit-save-a-flow-

    If you already have an account with Exotel with call flows created for the inbound scenarios and wish to use the same call flows in the new account for IP calling, the call flows would need to be migrated.

Reference article - 

https://support.exotel.com/support/solutions/articles/3000112569-can-i-transfer-my-exophone-and-the-call-flows-from-one-account-to-another-

Once the call flows are created/migrated, you can link the call flows to the virtual numbers so that any customer calls landing on those virtual numbers follow the required call flow path.

  1. Browser compatibility with the WebRTC SDK

  • Windows OS: Google Chrome, Mozilla Firefox and Microsoft Edge

  • Linux OS: Google Chrome and Mozilla Firefox

  • Mac OS: Google Chrome, Mozilla Firefox, Safari (>V11)



Integration steps for the WebRTC SDK
After the above-mentioned prerequisites are done, you would be able to fetch the API key and API token for your account, from the Exotel dashboard. In addition to this, you’ll need a client id and client secret to generate authentication token/s for successfully authenticating your future API requests by our platform. Please reach out to the Exotel tech support team or your account manager for help in generating the client id and client secret.

Once the client id and the client secret are available, please use the following API to generate the authentication token which can be used with your future API requests-

Create Authentication Token


The creation of the following resource hierarchy is required for registering with our VoIP platform to enable VoIP calling:


  1. You are required to create a customer entity (steps mentioned below). A unique customer entity in Exotel’s platform allows us to achieve resource separation between different customers. 

    1. Use the following APIs to manage the Customer entity for VOIP calling: Create, Get and Delete APIs for the Customer entity

  2. After step one, you will then need to create at least one, or more, Applications within the customer entity. Application creation is required to support multiple use cases within your single CRM/3rd party application accountFor example, if your sales and support teams are mapped to a single CRM account which is mapped to a single Exotel account, but the users within these teams and their VOIP settings are to be maintained differently; then creating an Application for each of these teams would help you manage the VOIP calling requirements for both these teams separately using the same CRM account mapped to one Exotel account. The creation of more than one Application is completely optional.

    1. Use the following APIs to manage Application(s) within the Customer entity: Register, Get and Delete APIs for the App entity

    2. Use the following APIs to manage Application settings: Add, Get, and Delete APIs for App settings

  3. After step 2, you will need to add the user(s) within the Application(s). User addition through the Application results in the addition of these users into the Exotel system and the creation of their SIP credentials, which will be used to authenticate and verify a user while enabling their VoIP calling.

    1. Use the following APIs to manage Users within Application/s: Register, Get, Delete, and Update user device APIs for Users

  4. After step 3, you will need to configure call flows in the Exotel App Bazaar as per Step 5 in the pre-requisites- 'Call flows creation/migration and linking with Virtual Number/s'. If you want Exotel to pass various details related to the incoming call when the call is initiated, terminated or missed, please provide the following URL in the ‘Create popup…’ section while configuring the ‘Connect’ applet during the call flow creation process.

    1. https://integrationscore.mum1.exotel.com/v2/integrations/call/inbound_call/{appId}?type={}


Note: The type can be popup, incomingcallhungup & missedcall, please refer to this detailed API documentation to understand. In case of multiple applications within your account, please use the application ID for the app under which you want the calling to happen.

  1. Once the users are created, you will need to integrate the WebRTC SDK by following the steps from the following GitHub repository.

  2. Finally, whitelist the following ports, domains and IP addresses in all the networks' firewall where the WebSDK will be running -
    <Refer to following for table>

  3. Click to Call functionality is a part of the WebRTC SDK and will be functional on the integration of the SDK with your calling application.

 

Pricing

IP-PSTN intermixing is available only with an ‘Unlimited Calling Plan’ by paying a fixed per-user per month price. Please get in touch with your Exotel account manager to understand the pricing applicable to your requirements.


FAQs

  1. Do I need to sign a new MSA for VOIP calling?

Yes. This is required because Exotel has a Pan India UL VNO license under the entity named “Veeno Communications Private Limited”. Hence, there will be a new MSA to be signed between the customer and the Veeno entity.

  1. Do I need to create a new account for VOIP calling?

Yes. All customers, including existing customers, will have to create a new account if they need VOIP calling. As VOIP calling is being offered through the Veeno entity, thus, a new customer account has to be created under Veeno as the existing account under Exotel Techcom Pvt. Ltd. cannot provide VOIP calls with the Veeno infrastructure.

  1. What is the process to create an account under Veeno?

In the alpha phase, the account creation will be aided by the Exotel account management/sales team. Post alpha phase, the account creation for Veeno/VOIP calling will follow the same process followed today for non-VOIP accounts.

  1. Can I use the virtual numbers/Exophones that I have in my existing account for VOIP calling?

No, new numbers have to be purchased under the new Veeno account. Existing numbers from non-Veeno accounts cannot be used under Veeno accounts because there is a separate number inventory for Veeno and it cannot be mixed with the non-Veeno number inventory as per the government regulations.

  1. If I have IVR/call flows in my existing account, do I need to create/replicate new IVR/call flows under the new Veeno account?

The Exotel team will do everything possible to migrate the IVR/call flows from your existing account to the new Veeno account.

  1. What is the size of WebSDK?

It is 1.4MB


  1. What would be the ‘app user ID’ for adding users in Exotel through the SDK?

The email ID of the user should be used as the user id for the app while adding the users in Exotel through the SDK.

  1. Can the users be added via the Exotel dashboard?

No, the users should be added only by following the steps mentioned for user creation in this support article. This process will ensure that the users’ SIP credentials are created and managed successfully at our end. 


  1. What are the prerequisites for the users to start calling via WebSDK?

The users will need to log in to the third-party application with valid credentials. On successful login, the users will see their SIP device as switched on for making VOIP calls. They can toggle it off/on to switch between SIP and PSTN calling.

  1. How can the user stop making/receiving calls via WebSDK?

The user will have to toggle off the SIP calling button
OR

The user will have to log off from the third-party application. This would automatically unregister and initialize the SDK for calling.

  1. What will happen if the user is not able to make/receive VoIP calls due to poor network connectivity?

In such a case, the user can switch to PSTN calling with the help of a toggle button which means the mobile device of the user would become the primary device for calling.



Please note this feature is currently under 'Alpha'.



Contact us: 


If you have any questions or concerns, please connect with us using the chat widget on your Exotel Dashboard or WhatsApp us on 08088919888