Update Dec 2020: We have renamed RTC Callback APIs to Telephony Bot APIs to better reflect how developers can use these APIs - which is build Voice Bots, IVRs.
If you have wanted to voice enable your Chatbot or build your own Telephony based Voice Bot or a Speech-enabled IVR, Voicegain has built an API that is really cool - Release 1.12.0 of Voicegain Speech-to-Text Platform now includes Telephony Bot APIs (formerly called RTC Callback APIs in the past).
Voicegain Telephony Bot APIs enables any NLU/Bot Framework to easily integrate with PSTN/telephony infrastructure using either (a) SIP INVITE of Voicegain platform from a CPaaS platform of your choice or (b) purchasing a phone number directly from Voicegain portal and pointing it to your Bot. You can then use these callback style APIs to (i) play prompts (ii) recognize speech utterances or DTMF digits (iii) allow for barge-in and several other exciting features. We offer sample code that will help you easily integrate a Bot Framework of your choice to our Telephony Bot APIs.
If you do not have a Bot Framework, thats okay too. You can write the logic in any backend programming language (Python, Java or Node.JS) that can serialize responses in a JSON format and interact with our Callback style APIs. Voicegain also offers a declarative YAML format to define the call flow and you can host this YAML file logic and interact with these APIs. Developers can also code and deploy the application logic in a server-less computing environment like Amazon Lambda.
Many enterprises - in banking, financial services , health care, telecom and retail - are stuck with legacy telephony based IVRs that are approaching obsolescence.
Voicegain's Telephony Bot APIs provide a great future-proof upgrade path for such enterprises. Since these APIs are based on web callbacks, they can interact with any backend programming language. So any backend web developer can design, build and maintain such apps.
Why should you use Telephony Bot APIs?
With Telephony Bot APIs, integration becomes much simpler for developers.
1) You can SIP INVITE the Voicegain Speech-to-Text/ASR platform to a SIP/RTP session for as long as is needed. We support SIP integration with CPaaS platforms like Twilio, Signalwire and Telnyx. We also support CCaaS platforms like Genesys, Cisco and Avaya.
2) We also support direct phone number ordering and SIP Trunks from the Voicegain Web Console. More integrations will be added soon.
Telephony Bot APIs are based on web callbacks where the actual program/ implementation is on the Client side and the Voicegain Telephony Bot APIs define the Requests and Responses. The meaning of Requests and Responses is reversed w.r.t what you would see in a normal Web API:
- Responses provide the commands, while
- Requests provide the outcome of those commands.
Illustrated example of Telephony Bot API in action
Below is an example of a simple phone call interaction which is controlled by Telephony Bot API. The sequence diagram shows 4 callbacks during a toy survey call:
- Req 1: Phone Call arrived
- Resp 1: Say: "Welcome"
- Req 2: Done saying "Welcome"
- Resp 2: Ask: "Are you happy", bind reply to happy var
- Req 3: Caller's answer was "yes", happy=YES
- Resp 3: Disconnect
- Req 4: Disconnected
- Resp 4: We are done
Currently supported actions
Telephony Bot API supports 4 types of actions:
- output: say something - TTS with a choice of 8 different voices is supported
- input: ask question - both speech input and DTMF are supported. For speech input you can use GRXML, JSGF or built-in grammars
- transfer: transfer a call to a phone destination
- disconnect: end the call
Wait, there is more
Each call can be recorded (two channel recording) and then transcribed. The recording and the transcript can be accessed from the portal as well as via the API.
Roadmap
Features coming soon:
- record Callback action - you can use it to implement voicemail or record other types of messages
- transfer to a sip destination
- input - allow choice of large vocabulary speech-to-text in addition to grammars - use the captured text in your NLU
- answer call at a sip address - instead of a phone number
- WebRTC support
- outbound dialing