PhoneMyBot provides all that bots need to connect with voice channels, with minimum development necessary, and with the best possible speech quality. This page gives you a summary of the PhoneMyBot features.
We will keep this page up to date with new developments: please check in often.
PhoneMyBot uses SIP to interact with the telephone network, or a private switch that manages calls for a company (a PBX). SIP (Session Initiated Protocol) is the universal protocol for IP telephony. Interactive Media provides some provisioned telephone numbers in several countries for trial purposes. But other telephone numbers can be obtained and connected to PhoneMyBot, from different providers.
Normally we recommend Twilio or DIDWW as these 2 providers are regularly used and supported by PhoneMyBot, but it doesn't mean that others cannot be integrated. Please see here for instructions on how to provision a number from Twilio (https://www.twilio.com). And see here for a number from DIDWW (https://www.didww.com/).
If you have an Asterisk-based PBX, that uses the software from Asterisk.org (https://www.asterisk.org/), follow the instructions here to configure it to communicate with PhoneMyBot.
Finally, if you have a SIP-enabled phone number or endpoint that you want to connect with PhoneMyBot based on some other platform, please contact our support to finalize the connection.
PhoneMyBot lets you connect more than one bot to the same channel. Typically, one of the bots is configured to receive the call first — often (but not necessarily) to handle call steering.
Calls can be transferred to other bots when needed, based on your service logic, while preserving the call context. Eventually, the call can also be transferred to a human operator.
The bot in charge of serving the call first can be substituted at any time, preserving business continuity. This is particularly useful for managing a bot's lifecycle systematically: a new version of the bot can be staged and run alongside the current one for as long as needed, before taking over the entire call traffic.
PhoneMyBot integrates with multiple speech-to-text services and uses the best one, depending on the language being transcribed. In addition, special tasks can use a specific speech-to-text engine especially configured and specialized for the task at hand.
We call these tasks contexts. The chatbot can trigger a task in several ways, see the API page and the chatbot actions page to learn more. See here for a list of available contexts.
But don't ask what speech-to-text engine does what: this is one of the secret sauces that make PhoneMyBot great!
Barging-in is when users interrupt a sentence from the chatbot, either to ask for something else or because they have understood what the bot wants and are answering immediately.
Users do this often, but not necessarily allowing barge-in is a good strategy for voice applications: in general, the error rate goes up because users may misunderstand or not state their need clearly. PhoneMyBot may also mistake a noisy environment for a user speaking, stopping the bot's answer. However, the conversational effect is certainly more natural when barge-in is enabled.
PhoneMyBot supports barge-in as a configurable option, and allows to enable / disable barge-in for any single prompt coming from the chatbot. This can be done with a regular expression matching part of a prompt, by adding a tag to the prompt text, or from the PhoneMyBot API, depending on how the chatbot interacts with PhoneMyBot.
PhoneMyBot allows the chatbot personnel to choose among several different voices for each language. Integrating custom voices for a particular chatbot is also possible: please contact Interactive Media to get the ball rolling.
If your bot is a chatbot that sends and receives text messages, there's a good chance it doesn't fully support a conversation flow designed for natural voice interaction. This is normal, since voice interaction follows rules that simply don't exist in the domain of chat messages — think of silences, interruptions, or the need to repeat or rephrase a prompt when the caller doesn't respond.
You shouldn't worry about this. PhoneMyBot provides, out of the box, a set of tools that let you refine the conversation flow without touching your bot's underlying logic. Some examples follow below.
In addition to voice calls, PhoneMyBot also supports channels — WhatsApp being one example — that are used to communicate not only via text messages, but also via voice messages. PhoneMyBot can interact with your bot purely through text messages, handling the interpretation and production of voice messages on your behalf. Typically, you'll want to reply to a text message with another text message, and to a voice message with another voice message — but other strategies are possible too, such as replying to a voice message with text, or to a text message with a voice reply.
A number of commands are also available on the WhatsApp number through keywords. A description of this capability is here.
In modern contact centers, the conversation over the phone line is normally managed entirely via voice. The customer's intent is interpreted based on what they say, and can be refined through additional questions, also expressed in natural language. Sometimes, however, an application may still need to interpret the DTMF (touch) tones entered by the customer — for instance, when integrating with legacy IVR flows or menus that handle numeric input and you don't want to disrupt the customer experience for a limited number of menu branches. PhoneMyBot supports DTMF detection and passes this information along to the bot whenever needed.
In addition to its own RESTful API that chatbot can implement, PhoneMyBot provides an automatic way to connect with several chatbot platforms, by using their native API.
This is the job of the chatbot connectors, that sit on top of the PhoneMyBot engine and manage the connection with the supported chatbots. You can see the supported platforms here. New chatbot platforms are being added all the time and if you have one that you want to get support for, please contact Interactive Media.
Chatbot platforms not only expose their API to chatbot clients. They also define different messages and information types, to show users different looks during a conversation. Not always these messages are easily translatable to speech and, especially for complex messages, PhoneMyBot needs to choose the right field or combination of fields to compose the voice message to the user. This is also the job of the connectors, which analyze the incoming messages with the aid of the API specification to optimize the voice conversation. To do this, the adaptors may have different configuration parameters that the customer should set. See an example of the parameters for a typical adaptor here.
Speech-to-speech Connectors are conceptually not very different from Chatbot Connectors. The difference lies in how the bot is integrated: speech-to-speech LLM agents are a type of bot that natively supports voice communication with the user.
In this case, the connectors enable integration with some of the most renowned AI platforms. Even though the bot is capable of speaking with the user using its own voice, channel integration and bot orchestration still require PhoneMyBot's services. Moreover, PhoneMyBot can orchestrate a service where speech-to-speech agents are combined with chatbots, drawing on the strengths of both approaches.
PhoneMyBot supports transferring an ongoing call to a human agent, or another service, as necessary. The decision to transfer the call is taken by the chatbot and PhoneMyBot supports multiple ways to start the transfer, to facilitate integration.
PhoneMyBot exposes a RESTful API that can be used by the chatbot to specify the number to transfer the call to. PhoneMyBot then reports the status of the call to the chatbot in case of failure to transfer or ends the session if the transfer succeeds.
The chatbot can also use a regular expression to configure a special sentence that will cause PhoneMyBot to transfer the call, either to a number specified in the chatbot message, or to a number (a queue) that has been pre-configured through the dashboard. After PhoneMyBot receives the message with the configured sentence, it transforms it into speech, streams the speech to the user, then transfers the call.
In all cases, the call is transferred using the SIP REFER method, which frees the voice channel for the next call. See here for more information on how to transfer calls.
The handover is very similar to a call transfer, but in this case the call is taken over by another voicebot configured in PhoneMyBot. There is no SIP REFER protocol involved in this operation as the handover is enterely handled within PhoneMyBot.
The new bot taking over the call may have specific skills, or language capabilities, that are required to satisfy the user's request.
As for the Call Transfer the Handover can be triggererd using RESTful API or an action based on a regular expression.
PhoneMyBot supports outbound calls originated from a chatbot towards a telephone number. The chatbot can use a simple RESTful API exposed by PhoneMyBot to initiate a call and receive call progress events: call connected, busy, not answered, call disconnected. This page gives you information on how to place outbound calls.
Once the call is established, it is treated like any other call, and can also be transferred to a human agent through the same API used for inbound calls.
PhoneMyBot connects with several of the most common contact center software suites. This includes not only transferring a call to a queue managed by the Contact Center, for delivery to the next available human agent, but also attaching call data to it.
The pre-integrated contact center suites include Genesys, Cisco, Avaya, Nice InContact, Sinch.
Attached data may include the user’s number, the called number / service, and configurably, parts of or the whole text conversation with the chatbot.
However, usually no project to integrate with a contact center is "vanilla", and there are always tweaks to consider. Please contact Interactive Media when you need to integrate with a contact center.
The PhoneMyBot dashboard provides organizations deploying the service control on its configuration, statistics about traffic and activities, billing management and access to support. The dashboard manages the PhoneMyBot trials and operational service and is multi-lingual, currently supporting English, Spanish, Portuguese, and Italian.
To see your dashboard, log in to PhoneMyBot at https://www.phonemybot.com/cloud/en.