Ozeki VoIP SDK - Product Guide
Developers Guide
Building an auto dialer system using DTMF response to transfer to agent
![]() |
Download: | DTMFAutoDialer.zip |
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.
Introduction
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 system.
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 DTMF signals.
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).
case CallState.InCall:
microphone.Start();
connector.Connect(microphone, mediaSender);
connector.Connect(speech, mediaSender);
speaker.Start();
connector.Connect(mediaReceiver, speaker);
speech.AddAndStartText("Please press one");
mediaSender.AttachToCall(call);
mediaReceiver.AttachToCall(call);
System.Timers.Timer timer = new System.Timers.Timer(6000);
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Start();
break;
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 number.
private void call_DtmfReceived(object sender, VoIPEventArgs<DtmfInfo> e)
{
DtmfInfo dtmfInfo = e.Item;
InvokeGUIThread(() =>
{
RegistrationState.Text = String.Format("DTMF signal received: {0} ", dtmfInfo.Signal.Signal);
DialedNumber.Text = String.Format("DTMF signal received: {0} ", dtmfInfo.Signal.Signal);
if (dtmfInfo.Signal.Signal == 1)
call.BlindTransfer("852");
});
}
Code 2 - The proper DTMF answer received
If the DTMF signal did not arrive in time, the call is simply ended with the conclusion that a machine answered the call (Code 3).
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (call != null)
{
call.HangUp();
call = null;
}
}
Code 3 - When the time is up, the call is ended
The above mentioned functions simply extend the original softphone features. All the other parts of the example are the same as in the case of any softphone solutions.
If you have any questions or need assistance, please contact us at info@voip-sip-sdk.com
You can select a suitable Ozeki VoIP SIP SDK license for building a DTMF autodialer on Pricing and licensing information page
Related Pages
- Predictive dialer
- Voice Activation Detection example
- Quick start guide
- Download Ozeki VoIP SIP SDK form the Ozeki VoIP SIP SDK download page
- You can find licensing information of Ozeki VoIP SIP SDK on Pricing and licensing information page
INTERMEDIATE
VoIP technology walkthrough
Softphone development
Webphone development
Mobile development
Voice recording
GETTING AROUND
Sitemap
Search the manual
API documentation
FAQ
Appendix


