IPPBX/GW

오늘:
494
어제:
1,849
전체:
2,915,904

고객센타 : 070-7752-2000
팩스 : 070-7752-2001
휴대폰 : 010-9513-0019
email : voipkorea@yahoo.co.kr

국민은행
(주)제이에스솔루션
047101-04-155519

Flag Counter

http://opensourceforu.com/2015/04/make-your-own-ivr-with-asterisk/


Make Your Own IVR with Asterisk

business work on telephone
Interactive voice response (IVR) is ubiquitous and now pervades the business and commerce milieu. Using Asterisk, IVR can be easily set up and coded. This fifth article in the series on Asterisk takes a look at how IVR is coded.

Asterisk provides a generic switching platform to run a variety of applications. IVR is commonly used today in most large corporate PBXes. Typically, these are automated voice menus – what you hear when you call a bank or insurance company. The recorded voice will prompt you to input the intended transaction as a choice in the form of digits (DTMF or dual tone multi-frequency tones). The transactions requested for are executed based on the user inputs. In this session, we will look into IVR coding and then the hardware configuration required.

Let’s start with a welcome menu, which is a very common feature nowadays in any Asterisk installation. The code is written in the dial plan, which is the central routing control based on pattern matching. The dial plan is generally found in /etc/asterisk/extensions.conf.

Example 1s

  • Play the welcome message to the caller
  • Ring the extension for 60 seconds
  • If unavailable, pass the call to voicemail
  • Hang up

Here’s the code snippet for this example:

[from-pstn]
exten => _.,1, Answer();
exten => _.,2, Playback(welcome);
exten => _.,3, Dial(SIP/${EXTEN},60);
exten => _.,4, Voicemail(${EXTEN},u);
exten => _.,5, Hangup();

[from-pstn] indicates the context in which the call is processed, which is the incoming calls from the PSTN (public switched telephone network – normal PRI or FXO trunk). exten => is a standard keyword to indicate a pattern matching routine. ‘_.’indicates that any extension is matched and the following actions need to be carried out. The second digit ‘1’ after the comma indicates a sequence number. The lines that follow increase the sequence number in ascending order. Answer() indicates the call has to be answered so that the voice channels are open in both directions. This is required, so that the users can hear the greetings message and provide their inputs. Playback (welcome) instructs the system to search for a file welcome.gsm or welcome.wav in the default voice directory, and play that file for the user to hear. The file could contain a voice recording of the message, “Welcome to OSFY.” EXTEN saves the value of the extension dialled by the caller. Dial the EXTEN using the SIP protocol and ring for 60 seconds. The user may pick up the call and talk to the caller. If the user is unavailable, call the service’s voicemail with the same EXTEN extension number. After returning from the voicemail, hang up.

Print

Figure 1: A very simple IVR

Example 2
The next example demonstrates how calls can be routed based on the user’s inputs:

[from-pstn]
exten => 1234,1,Answer();
exten => 1234,n,Set(TIMEOUT(digit)=1);
exten => 1234,n,Set(TIMEOUT(response)=10);
exten => 1234,n,Background(welcome);
exten => 1234,n,Background(ivr-options);
exten => 1234,n,WaitExten();

The welcome message is played in the background, if the user dials the extension 1234. The function Playback() is blocked and the user will be able to provide the inputs only after the message is completed. In case ofBackground, the welcome message and ivr-options are played one after the other. The users can input their choice at any point of time. The function TIMEOUT is set for two cases: 1) if the user presses one digit, and 2) if the time exceeds 10 seconds. Also, note that the second parameter ‘n’ takes away the burden of sequencing, like in Example 1, and makes the sequence dynamically next to the previous statement. The ivr-options plays the message, “Please press 1 for sales, 2 for support, 3 for operator…”

exten => 1,1,Dial(SIP/2000&SIP/2001);
exten => 1,n,Playback(sendback-to-ivr);
exten => 1,n,Goto(1234,1);
exten => 2,1,Dial(SIP/2002&SIP/2003);
exten => 2,n,Playback(sendback-to-ivr);
exten => 2,n,Goto(1234,1);
Print

Figure 2: IVR with user input (all details are not shown)

If the user presses 1, the extensions 2001 and 2002 will ring in parallel. If no one picks up, a voice file stating that, “Currently, no agents are available,” is played and the call is sent back to the main IVR loop. Similarly, if the user presses 2, both the extensions 2003 and 2004 in the sales department will ring.

exten => 0,1,Dial(SIP/2111,50);
exten => 0,n,Voicemail(2111,u);
exten => 0,n,Hangup();

If the user presses 0 to talk to the operator, the extension 2111 will ring for 50 seconds. If nobody responds, then the call is redirected to the voice mail.

exten => i,1,NOOP(wrong input received);
exten => i,n,Playback(invalid);
exten => i,n,Goto(1234,1);

If the user presses anything other than 1, 2 or 0, the message file with, “You have chosen an invalid input,” is played and the call is sent back to the main loop.

exten => t,1,NOOP(no input received);
exten => t,n,Playback(pls-select-option);
exten => t,n,Goto(1234,1);

If the user comes out of the loop without any input due to the timeout setting of 10 seconds, then another message, “You have not selected any input,” is played and sent back to the main loop.
The dial plan also provides the choice to query and store to an external database. In the next example, we will have students inputting their roll number. After verification, the users’ attendance will be reconfirmed and stored in the database.

[from-pstn]
exten => 1234,1,Answer();
exten => 1234,n,Set(DID=${EXTEN});
exten => 1234,n,Playback(welcome);
exten => 1234,n,Playback(pls-enter-enroll);
exten => 1234,n,Read(enroll,beep,10);
exten => 1234,n,SayDigits(${enroll});
exten => 1234,n,Set(TIMEOUT(digit)=1);
exten => 1234,n,Set(TIMEOUT(response)=10);
exten => 1234,n,Background(pls-confirm);
exten => 1234,n,WaitExten()

The welcome message and the request for inputting the roll number is played. After that, the roll number is read up to 10 digits. Then the input digits are read out loud and a confirmation is requested.

exten => 1,1,NOOP(Caller confirmed entry);
exten => 1,n,Goto(autoprocess,submenu,1);
exten => 2,1,NOOP(Caller wants to re-enter);
exten => 2,n,Goto(1234,3);

If the user confirms that the entry is correct, then the control proceeds to the auto-process sub-menu. Else, the control proceeds to re-enter the inputs.

[autoprocess]
exten => submenu,1,Set(TIMEOUT(digit)=1);
exten => submenu,n,Set(TIMEOUT(response)=1);
exten => submenu,n,Background(Pls-select-frm-menu);
exten => submenu,n,WaitExten();

A request is made to the user to input the service needed. If the user wants to check the attendance so far, ‘1’ can be pressed.

번호
제목
글쓴이
95 VICIdial Scratch Installation CentOS 7 & MariaDB & Asterisk 11 & Latest VICIdial SVN
admin
2017-09-02 652
94 Asterisk Answering Machine Detection (AMD) Configuration
admin
2017-09-01 664
93 List of 5 Open Source Call Center Software Programs
admin
2017-08-31 645
92 Smart Predictive Auto calling Software System: Automatic Phone Calling
admin
2017-08-31 635
91 WombatDialer is highly scalable, multi-server, works with your existing Asterisk PBX.
admin
2017-08-31 656
90 Asterisk based auto dialer test and verified by 300+ concurrent.
admin
2017-08-31 600
89 Automatic Call Distribution (ACD) Asterisk as Call Center
admin
2017-08-31 673
88 Introducing Asterisk Call Distribution ACD asterisk
admin
2017-08-31 672
87 How to build an outbound Call Center with Newfies-Dialer and Asterisk/FreePBX
admin
2017-08-31 664
86 IVR actions asterisk
admin
2017-08-31 609
85 iptables for asterisk simple example configuration
admin
2017-08-31 621
84 초보) Asterisk , AsteriskNow 무엇인가? 무슨차이인가? 시작 배우기 쉽게 이해 공부 사용
admin
2017-08-29 613
83 Installing FreePBX 14 on Debian 8.8 These instructions work fine
admin
2017-08-29 691
82 FreePBX 12 – Getting Started Guide
admin
2017-08-29 644
81 Playing text to speech inside read function in asterisk
admin
2017-08-28 649
80 Speech Recognition on Asterisk: Getting Started
admin
2017-08-28 1028
79 github A2Billing is commercially supported by Star2Billing
admin
2017-08-26 638
78 Insert into dialplan Asterisk
admin
2017-08-26 646
77 Google letter agi
admin
2017-08-26 666
76 Top 10 greater worker
admin
2017-08-26 640
75 Dialplan handler routines allow customization
admin
2017-08-26 669
74 AGI asterisk gateway interface synopsis
admin
2017-08-26 1514
Make Your Own IVR with Asterisk
admin
2017-08-26 685
72 Asterisk dialolan detail explan good easy clean
admin
2017-08-26 627
71 download Installing+AsteriskNOW
admin
2017-08-25 631
70 TwistedWave Online A browser-based audio editor
admin
2017-08-25 617
69 Asterisk/IVR/PBX/VoIP/Contact center/Voicebroadcast engineer
admin
2017-08-25 638
68 asterisk Chapter 6. Dialplan Basics
admin
2017-08-25 654
67 RPi Text to Speech (Speech Synthesis)
admin
2017-08-24 668
66 asterisk freepbx TTS Engine Custom - Amazon Polly - 24 languages
admin
2017-08-24 659
65 asterisk CRM SUGARCRM SuiteCRM
admin
2017-08-24 658
64 Hosting Cheap VPS Hosting that doesn’t feel cheap
admin
2017-08-24 673
63 HOW TO INSTALL FREEPBX ON CENTOS 7
admin
2017-08-24 648
62 Setup Asterisk 13 with FreePBX 13 in CentOS 7
admin
2017-08-24 659
61 asterisk XactView V3-CRM Widget
admin
2017-08-24 649
60 Text to Speech User Guide
admin
2017-08-24 687
59 Text to speech for asterisk using Google Translate
admin
2017-08-24 692
58 User Control Panel (UCP) 14+
admin
2017-08-23 676
57 라즈베리파이, 아스타리스크(asterisk) PBX(사설교환기)
admin
2017-08-23 679
56 How to Install Asterisk on CentOS 7 easy clean explain 깔금한 쉬운 설명
admin
2017-08-23 1091
55 Fusionpbx v4 Freeswitch v1.6 CentOS v7 Install Guide
admin
2017-08-23 741
54 Asterisk Freepbx Install Guide (CentOS v7, Asterisk v13, Freepbx v13)
admin
2017-08-23 704
53 A2Billing v2.2 Install Guide CentOS v7 Asterisk v11 v13 seems to work FreePBX v13
admin
2017-08-23 695
52 How to install and setup Asterisk 14 (PBX) on CentOS 7
admin
2017-08-23 683
51 How to Install Asterisk 13 on Ubuntu 16.04 from Source
admin
2017-08-23 880
50 thirdlane PBX price
admin
2017-08-23 653
49 SUGAR CRM
admin
2017-08-23 634
48 NAT 와 VoIP 시그널과 RTP 전송 영향 NAT와 방화벽/STUN/TURN/ICE/SBC
admin
2017-08-19 658
47 음성통화 서버 Asterisk + FreePBX / 통화 시연해보기
admin
2017-08-18 663
46 우분투 Mumble VoIP 음성채팅서버 구축
admin
2017-08-18 659
45 User Control Panel (UCP) asterisk freepbx
admin
2017-08-17 681
44 Configuring Your PBX
admin
2017-08-17 655
43 Installing SNG7 Official Distro
admin
2017-08-17 693
42 OPUS and VP9 Bitrates
admin
2017-08-17 682
41 Capturing SIP and RTP traffic using tcpdump
admin
2017-08-17 652
40 Asterisk Answering Machine Detection (AMD) Configuration
admin
2017-08-17 752
39 Price ,,Install Commercial Modules on CentOS and RHEL based
admin
2017-08-16 725
38 asterisk IVR 쉽게 설정하기
admin
2017-08-16 677
37 Asterisk 가장쉬운 설치 및 설정 사용 방법 이해 할수있게 배우는 순서 안내 설명
admin
2017-08-16 696
36 /sbin/service httpd start stop web start stop
admin
2017-08-16 657
35 asterisk FreePBX 14, Distro 14 & More!
admin
2017-08-16 692
34 asterisk dialplan 설명
admin
2017-08-16 677
33 how-to-freepbx-13-firewall-setup
admin
2017-08-14 672
32 AsterSwitchboard CTI Operator Panel for Asterisk
admin
2017-08-08 682
31 Brand New Sealed Sangoma FreePBX 60 - 75 Users or 30 Calls
admin
2017-08-05 702
30 Asterisk 설치 준비
admin
2015-11-15 1123
29 Asterisk 13 Debian 8
admin
2015-11-13 1139
28 FOIP: T.38 Fax Relay vs. G.711 Fax Pass-Through (Fax Over IP)
admin
2015-09-24 1182
27 Considerations for Using T.38 versus G.711 for Fax over IP file
admin
2015-09-24 1204
26 MP3 to WAV, WMA to WAV, OGG Convert audio to WAV online
admin
2015-05-09 1443
25 FAX over IP sofware
admin
2015-05-05 1379
24 Fax Configuration FREE PBX and asterisk FAX
admin
2015-05-05 1397
23 Asterisk AGI/AMI to ARI Asterisk&FreePbx - IVR setting
admin
2015-05-05 1435
22 A simple IVR and Queue example where customer listens to marketing materials ..
admin
2015-05-05 1431
21 Asterisk A simple IVR
admin
2015-05-05 1455
20 Asterisk tips ivr menu Interactive voice response menus
admin
2015-05-05 1554
19 Setup install Asterisk PBX telephony system | VOIP Tutorial
admin
2015-05-05 1400
18 Asterisk Downloads AsteriskNOW Software PBX
admin
2015-05-05 1401
17 Fax For Asterisk download add on 1 port free IVR prompt G.729
admin
2015-05-05 1425
16 T.38 Fax Gateway Asterisk
admin
2015-05-05 1483
15 Setup FAX on Asterisk with DIDForSale SIP DIDs
admin
2015-05-05 1402
14 FaxServer using Asterisk
admin
2015-05-05 1377
13 fax licenses Asterisk
admin
2015-05-05 1384
12 Configuring an Asterisk server
admin
2015-05-05 1364
11 FreePBX – Custom FAX to email
admin
2015-05-05 1364
10 Incoming Fax Handling
admin
2015-05-05 1484
9 Using Asterisk to Detect and Redirect Fax Calls for Communications Server
admin
2015-05-05 1357
8 Asterisk fax Asterisk and fax calls Fax over IP
admin
2015-05-05 1416
7 Securing Your Asterisk VoIP Server with IPTables
admin
2015-05-05 1598
6 A2Billing v2 Install Guide
admin
2015-05-05 1513
5 Freepbx on Debian (Debian v7, Asterisk v11, Freepbx v2.11)
admin
2015-05-05 1363
4 Asterisk Freepbx Install Guide (CentOS v6, Asterisk v13, Freepbx v12)
admin
2015-05-05 1766
3 Asterisk Quick Start Guide
admin
2015-05-05 1485
2 Installing AsteriskNOW Official Distro
admin
2015-05-05 1388
1 Generic Asterisk SIP Configuration Guide
admin
2015-05-05 1393