In this article you will learn how to build an auto dialer system using DTMF response
in order to transfer the call to an agent with the professional support of Ozeki VoIP SIP SDK.
Please use the source codes and their explanations to start building your DTMF autodialer
using Ozeki SIP SDK.
DTMF signaling in VoIP calls can be used for lots of purposes. You can use it,
for example, for user authentication or IVR (Interactive Voice Response) tree navigation.
In a call center the IVR navigation can be the base of a call routing process. When the user gets to a point
in an IVR tree when there is no other option to choose the call center server can transfer
the call to an agent. This call transfer is made automatically therefore needs an autodialer
The call transfer process can be made according to the location of the caller in the IVR tree,
for example is the customer has chosen that their problem is with service "A" then the call center
can redirect the call to an expert of that service.
In most call center applications there are also a special keypress that redirects the
call to a human operator any time. This is usually key #.
Figure 1 - DTMF auto dialer
Ozeki VoIP SIP SDK provides all the magnificent background support that is needed for
DTMF signal handling, therefore you can easily make a call center server that operates with
Autodialers are used for specifying if the call was answered by a person. DTMF autodialers
are one of the simplest solutions in this topic. You ask the remote peer that answered the call to press
a key, and if the key is pressed, the call was answered by a human and need to be transferred to a call center agent,
if not, the call was answered by a machine and needs to be ended.
This example program only extends the standard softphone functions with a simple
code snippet that reads out the sentence "Please press one" and waits for some time
for the DTMF signal (Code 1).
speech.AddAndStartText("Please press one");
System.Timers.Timer timer = new System.Timers.Timer(6000);
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
Code 1 - Waiting for a human response
Code 2 shows what happens if the called client sends a DTMF signal. If the signal is
the one the program has asked for, the call will be blind transferred to another