한국어

IPPBX/GW

온누리070 플레이스토어 다운로드
    acrobits softphone
     온누리 070 카카오 프러스 친구추가온누리 070 카카오 프러스 친구추가친추
     카카오톡 채팅 상담 카카오톡 채팅 상담카톡
    
     라인상담
     라인으로 공유

    
페북공유

   ◎위챗 : speedseoul


  
     PAYPAL
     
     PRICE
     

pixel.gif

    before pay call 0088 from app


Make Your Own IVR with Asterisk

2017.08.26 14:14

admin 조회 수:37905

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.

번호 제목 글쓴이 날짜 조회 수
» Make Your Own IVR with Asterisk admin 2017.08.26 37905
97 Asterisk AGI/AMI to ARI Asterisk&FreePbx - IVR setting admin 2015.05.05 33295
96 라즈베리파이, 아스타리스크(asterisk) PBX(사설교환기) admin 2017.08.23 31368
95 How to Install Asterisk on CentOS 7 easy clean explain 깔금한 쉬운 설명 admin 2017.08.23 30186
94 Fusionpbx v4 Freeswitch v1.6 CentOS v7 Install Guide admin 2017.08.23 28923
93 Asterisk Freepbx Install Guide (CentOS v6, Asterisk v13, Freepbx v12) admin 2015.05.05 28521
92 A2Billing v2 Install Guide admin 2015.05.05 27743
91 Securing Your Asterisk VoIP Server with IPTables admin 2015.05.05 27602
90 A2Billing v2.2 Install Guide CentOS v7 Asterisk v11 v13 seems to work FreePBX v13 admin 2017.08.23 27126
89 Asterisk Quick Start Guide admin 2015.05.05 26750
88 Asterisk fax Asterisk and fax calls Fax over IP admin 2015.05.05 26564
87 List of 5 Open Source Call Center Software Programs admin 2017.08.31 26536
86 Freepbx on Debian (Debian v7, Asterisk v11, Freepbx v2.11) admin 2015.05.05 25991
85 VICIdial Scratch Installation CentOS 7 & MariaDB & Asterisk 11 & Latest VICIdial SVN admin 2017.09.02 25877
84 Asterisk 가장쉬운 설치 및 설정 사용 방법 이해 할수있게 배우는 순서 안내 설명 admin 2017.08.16 25841
83 Speech Recognition on Asterisk: Getting Started admin 2017.08.28 25625
82 Installing AsteriskNOW Official Distro admin 2015.05.05 25406
81 Hosting Cheap VPS Hosting that doesn’t feel cheap admin 2017.08.24 25188
80 Text to speech for asterisk using Google Translate admin 2017.08.24 25149
79 Asterisk tips ivr menu Interactive voice response menus admin 2015.05.05 25092
78 How to build an outbound Call Center with Newfies-Dialer and Asterisk/FreePBX admin 2017.08.31 24787
77 asterisk dialplan 설명 admin 2017.08.16 24768
76 Setup install Asterisk PBX telephony system | VOIP Tutorial admin 2015.05.05 24732
75 Automatic Call Distribution (ACD) Asterisk as Call Center admin 2017.08.31 24705
74 asterisk CRM SUGARCRM SuiteCRM admin 2017.08.24 24675
73 Asterisk Answering Machine Detection (AMD) Configuration admin 2017.09.01 24613
72 Dialplan handler routines allow customization admin 2017.08.26 24557
71 Introducing Asterisk Call Distribution ACD asterisk admin 2017.08.31 24516
70 Playing text to speech inside read function in asterisk admin 2017.08.28 24501
69 Smart Predictive Auto calling Software System: Automatic Phone Calling admin 2017.08.31 24485
68 Setup FAX on Asterisk with DIDForSale SIP DIDs admin 2015.05.05 24474
67 MP3 to WAV, WMA to WAV, OGG Convert audio to WAV online admin 2015.05.09 24425
66 Using Asterisk to Detect and Redirect Fax Calls for Communications Server admin 2015.05.05 24393
65 Fax For Asterisk download add on 1 port free IVR prompt G.729 admin 2015.05.05 24379
64 How to install and setup Asterisk 14 (PBX) on CentOS 7 admin 2017.08.23 24373
63 AGI asterisk gateway interface synopsis admin 2017.08.26 24358
62 Installing SNG7 Official Distro admin 2017.08.17 24288
61 Asterisk Answering Machine Detection (AMD) Configuration admin 2017.08.17 24268
60 iptables for asterisk simple example configuration admin 2017.08.31 24266
59 Incoming Fax Handling admin 2015.05.05 24241
58 Setup Asterisk 13 with FreePBX 13 in CentOS 7 admin 2017.08.24 24223
57 T.38 Fax Gateway Asterisk admin 2015.05.05 24197
56 Price ,,Install Commercial Modules on CentOS and RHEL based admin 2017.08.16 24137
55 FAX over IP sofware admin 2015.05.05 24096
54 초보) Asterisk , AsteriskNow 무엇인가? 무슨차이인가? 시작 배우기 쉽게 이해 공부 사용 admin 2017.08.29 24080
53 Installing FreePBX 14 on Debian 8.8 These instructions work fine admin 2017.08.29 24058
52 우분투 Mumble VoIP 음성채팅서버 구축 admin 2017.08.18 24053
51 fax licenses Asterisk admin 2015.05.05 24018
50 WombatDialer is highly scalable, multi-server, works with your existing Asterisk PBX. admin 2017.08.31 24014
49 How to Install Asterisk 13 on Ubuntu 16.04 from Source admin 2017.08.23 24012
48 Asterisk A simple IVR admin 2015.05.05 24008
47 음성통화 서버 Asterisk + FreePBX / 통화 시연해보기 admin 2017.08.18 24000
46 Brand New Sealed Sangoma FreePBX 60 - 75 Users or 30 Calls admin 2017.08.05 23968
45 User Control Panel (UCP) asterisk freepbx admin 2017.08.17 23956
44 Generic Asterisk SIP Configuration Guide admin 2015.05.05 23956
43 Fax Configuration FREE PBX and asterisk FAX admin 2015.05.05 23955
42 Asterisk Freepbx Install Guide (CentOS v7, Asterisk v13, Freepbx v13) admin 2017.08.23 23953
41 FaxServer using Asterisk admin 2015.05.05 23949
40 A simple IVR and Queue example where customer listens to marketing materials .. admin 2015.05.05 23946
39 FreePBX – Custom FAX to email admin 2015.05.05 23898
38 Asterisk 설치 준비 admin 2015.11.15 23892
37 HOW TO INSTALL FREEPBX ON CENTOS 7 admin 2017.08.24 23887
36 asterisk FreePBX 14, Distro 14 & More! admin 2017.08.16 23872
35 Insert into dialplan Asterisk admin 2017.08.26 23841
34 Considerations for Using T.38 versus G.711 for Fax over IP file admin 2015.09.24 23841
33 TwistedWave Online A browser-based audio editor admin 2017.08.25 23760
32 Top 10 greater worker admin 2017.08.26 23735
31 Asterisk Downloads AsteriskNOW Software PBX admin 2015.05.05 23733
30 asterisk IVR 쉽게 설정하기 admin 2017.08.16 23632
29 Configuring an Asterisk server admin 2015.05.05 23623
28 FOIP: T.38 Fax Relay vs. G.711 Fax Pass-Through (Fax Over IP) admin 2015.09.24 23621
27 OPUS and VP9 Bitrates admin 2017.08.17 23618
26 SUGAR CRM admin 2017.08.23 23606
25 asterisk Chapter 6. Dialplan Basics admin 2017.08.25 23592
24 Capturing SIP and RTP traffic using tcpdump admin 2017.08.17 23580
23 Asterisk based auto dialer test and verified by 300+ concurrent. admin 2017.08.31 23540
22 Text to Speech User Guide admin 2017.08.24 23528
21 thirdlane PBX price admin 2017.08.23 23525
20 github A2Billing is commercially supported by Star2Billing admin 2017.08.26 23497
19 AsterSwitchboard CTI Operator Panel for Asterisk admin 2017.08.08 23458
18 Asterisk/IVR/PBX/VoIP/Contact center/Voicebroadcast engineer admin 2017.08.25 23451
17 asterisk freepbx TTS Engine Custom - Amazon Polly - 24 languages admin 2017.08.24 23435
16 download Installing+AsteriskNOW admin 2017.08.25 23396
15 FreePBX 12 – Getting Started Guide admin 2017.08.29 23386
14 User Control Panel (UCP) 14+ admin 2017.08.23 23382
13 NAT 와 VoIP 시그널과 RTP 전송 영향 NAT와 방화벽/STUN/TURN/ICE/SBC admin 2017.08.19 23378
12 Asterisk 13 Debian 8 admin 2015.11.13 23321
11 /sbin/service httpd start stop web start stop admin 2017.08.16 23309
10 Google letter agi admin 2017.08.26 23300
9 IVR actions asterisk admin 2017.08.31 23254
8 asterisk XactView V3-CRM Widget admin 2017.08.24 23210
7 RPi Text to Speech (Speech Synthesis) admin 2017.08.24 23151
6 Asterisk dialolan detail explan good easy clean admin 2017.08.26 23013
5 how-to-freepbx-13-firewall-setup admin 2017.08.14 23012
4 Configuring Your PBX admin 2017.08.17 22970
3 /dev/mapper/ubuntu--vg-root filling up admin 2019.04.08 14860
2 changing SIP drivers to CHAN_PJSIP Please err 에러 admin 2019.06.21 8430
1 php memory and filesize increase upload wav admin 2019.06.25 7401