Page cover

Call Flow Builder

You are a builder of your customer experience. Let's make a call a pleasant event they will enjoy

Call Flows define what happens to a call. By adding actions to Call Flow, you can customize the behaviour of incoming calls and provide callers with the user experience they need

Actions within the Call Flow dictate various actions such as speech translation, sending a call to voicemail, prompting the caller to press a key for further options, transferring the call to another Connection or external numbers, playing prerecorded audio files, converting text to speech with specified language and voice settings, and more...

How to use it

You create a Call Flow by dragging actions from the actions sidebar menu onto a design pane at app.voipnumber.net/callflowbuilder There you can move them around, configure their settings, connect them with each other, and remove (actions and connections)

Drag'n'drop actions from the sidebar (on the right) onto a design pane. There you can move them around, connect with each other, remove them and remove/change connections

Every action is represented on the design pane by Action Main Node and one or more Action Outcome Nodes e.g. Success, Fail, Completed, Interrupted. Every action has an input and output

Action Main Node

This is a coloured rectangle with the action's name, e.g. Bridge, Play text with AI, Incoming Call, End, etc.

Action Outcome Node (action outcome)

Action Main Node is connected to one or more outcomes. These define possible results for the action. Start and stop actions ( Incoming Call and End ) are exceptions from this rule, as they do not have Action Outcome Node

Action Input Handle (action input)

Action Input Handle is located at the top of Action Main Node

Action Output Handle (action output)

Action Output Handle is located at the bottom of Action Outcome Node

Connection

Connection is a line that you draw to connect actions (Note, this is not a SIP Connection). Connection is always attached to Action Output Handle and leads to the Action Input Handle. A line leading from Action Main Node to one of its Action Outcome Node, drawn automatically when action is dropped onto a pane is not a Connection in this sense (for example, a green dashed line connecting Bridge to Success or line connecting Play Text with AI and Completed)

Rules

  • Action Input Handle must be connected to Action Output Handle of other action

  • Action Output Handle must be connected to the Action Input Handle of other action

  • Actions Incoming Call and End are mandatory (any valid Call Flow starts and ends on them)

Start and stop actions ( Incoming Call and End ) have only a single handle. But the above rule still holds.

Let's draw that on the screen

Call Flow Builder. Action input, output, outcome and connection

In some cases it makes sense for the action to loop itself (e.g. Call Flow Builder), in this case action's output connects to the input of the same action

Validate your Call Flow

Call Flow Builder warns you as you draw when you attempt to create an invalid Connection or make other design errors. Once you've finished always check your design for any errors before saving

Always VALIDATE your Call Flow
Call Flow Builder will tell you if there's any connection missing

Configuring actions

Every action has configuration settings that you can change. Click on the Action Main Node (coloured rectangle with action's name) to open configuration settings

Removing connections

To remove a connection click on it and press BACKSPACE or DELETE

Actions

Let's go through the actions available in Call Flow Builder

Action Incoming Call

Every Call Flow starts with Incoming Call action and ends on action End . These two actions are mandatory for a valid Call Flow. Incoming Call action doesn't really do anything to a call, it is completely transparent. Its only purpose is to define where everything starts 🛫

Action Incoming call
Example

Action End

Action End defines where your Call Flow stops. Just like with any other action, you can connect to it multiple action outputs

Action End
Example

Action Echo 🔊

Action Echo

Echo is very useful in testing. It simply plays back your audio to yourself and can optionally attenuate it

  • Drag action Echo onto a call flow pane

  • Optionally enable input signal attenuation and select a level of attenuation (in dB)

Echo plays back any RTP it receives. You can attenuate it

Action Delay echo 🔊⏰

Action Delay echo

Delay echo is similar to action Echo but plays audio back only after a configurable delay (milliseconds). It is very useful in testing. Optionally signal can be attenuated

  • Just drag action Delay echo onto a call flow pane

  • Select the delay in milliseconds

  • Optionally enable input signal attenuation and select a level of attenuation (in dB)

Delay echo plays back any RTP it receives after configurable delay. You can attenuate it

Action Translate speech 🗣️

Action Translate speech

Place this action on your Call Flow to translate speech between languages in a real time. This action runs on the caller leg of the call (A leg, calling party).

  • Select your languages

  • Optionally enable input speech attenuation and select a level of attenuation (in dB) if original speech should be silenced (you will hear translated speech louder relative to original voice)

Action Translate speech
Select from ~150 languages

If you want to translate callee too (B leg, called party) place Bridge action on your Call Flow somewhere after this action and enable Translate speech on the Bridge action (see Action Bridge ☎️)

Real time speech translation between English and Polish

Action Bridge ☎️

Use action Bridge whenever a call should be sent to another Connection. Optionally you can also configure real time speech translation between any of ~130 languages supported on VoIP Number.

Action Bridge

When call is bridged it is ringing a Connection. It may be connected (answered) or not and this is represented on a Call Flow as outcome Success and outcome Fail You can configure what will happen after the bridge succeeded or failed by drawing a line from respective outcomes. In example below we end up a call whatever happens

Simple bridge example

Action Bridge has two Bridge target modes:

  • Dialed connection

  • Selected connection

Remember that Call Flow may be attached to more than just one Connection. During a call, when Call Flow is executed a dialed Connection is changing, reflecting actual extension dialed in a call (SIP To header). If Bridge is in Dialed connection mode it will send a call to the currently dialed Connection. If you instead want a static/fixed Call Flow that will always bridge to the same preselected Connection, set a bridge target mode to Selected connection and pick it up from a dropdown menu

Bridge in Dialed connection mode
Bridge in Selected connection mode, it will always send a call to support Connection, regardless of the Connection to which this Call Flow is attached

It's worth to note that before a Bridge is executed there is only a single leg of the call connected to VoIP Number (caller is connected, calling party, A leg), and only after a Bridge completed with outcome Success there will be two call legs (caller and callee, calling and called parties, A and B legs)

Translate speech toggle on the Bridge action controls translation on the B leg (callee)

Bridge action with speech translation enabled, it will translate what callee is speaking from English to Polish

If you want to translate caller as well, add separate Translate Speech action before a Bridge

Bridge with action Translate Speech which configures real time speech translation on the caller (A leg). If action Bridge has Translate speech toggle enabled then speech will be translated on the B leg too (callee) and call is running a 2-way real time speech translation

Action Play text

Action Play text changes your text into speech and plays it (this is commonly known as Text To Speech or TTS)

Action Play text

This action transforms your text into audio to be played on the fly. That means every time it's executed on a media engine a speech is synthesized on the same media engine and played. This process doesn't involve any network transactions, like downloading audio file for playback. But the voice produced may sound a bit robotic 🤖 When additional 15 ms of a delay is not a problem we recommend to use action Play text with AI which needs to download your audio for playback (from your files stored securely on VoIP Number), but generates awesome, very natural sounding speech 🗣️

Compare by yourself

Speech generated with action Play text sounds bit robotic but is generated super fast
Speech generated with action Play text with AI sounds very natural 🙂

This is the simplest possible usage of this action

Example

Click on the Action Main Node to open configuration dialog. Type a text you want to be spoken in a Text field. Toggle Interruptible switch if speech playback during Call Flow execution should terminate on a key pressed by a user

Toggle Interruptible switch if user should be able to interrupt speech and move on to the next action with their Call Flow

Action Play text with AI

You can generate very human like speech with action Play text with AI This is how it sounds

Speech generated with action Play text with AI sounds very natural 🙂
Action Play text with AI

This is the simplest possible usage of this action

Example

Type a text to get synthesized into speech in a Text field. Select a voice engine type and a voice from a dropdown list of available persons 🙎🙎🏻‍♂️🙍‍♀️ Click Play to listen how it sounds. Change text and re-Play until you're happy with the result. Click OK to save it

Toggle Interruptible switch if speech playback during Call Flow execution should terminate on a key pressed by a user

Configuration of action Play text with AI

Action Play audio

Use action Play audio to playback wav, mp3 or mp4 files from uploaded file or from URL

Action Play audio
Play audio example usage
Play audio configuration
Play audio config with background

Action Collect digits 0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣

Action Collect digits is a DTMF collection block, where you can define important aspects of DTMF collection process, e.g: how many digits you require, a terminator, timeout on a single digit and the whole process and if digits accumulated before this action is hit should be flushed 🧐

Action Collect digits
A simple flow with DTMF collection

Action Handle digits

Use action Handle digits to execute functions assigned to DTMF digits in a Collect digits action. Collect digits would normally precede this action

Action Handle digits
Simple flow with Handle digits

Action Voicemail deposit 📫

Action Voicemail deposit implements a voicemail box. Use this action to record a voicemail, transcribe it and send to email

Action Voicemail deposit
Simplest flow with Voicemail deposit

Action Voicemail retrieval

Action Voicemail retrieval implements a voicemail box for the voicemail owner. Dial to this action to listen to your voicemails, save or delete them, on the phone

Action Voicemail retrieval
A simple flow with a call to a voicemail box

Access to voicemail can be protected by the PIN

Last updated