资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
一个简单的 Asterisk 自动话务台例子这是一个简单的 Asterisk 自动话务台的例子。我是根据 Asterisk: The Definitive Guide中例子改写的。如有什么疑问,请给我邮件:bljbqq.com。相互讨论,共同进步。这个文档只是介绍简单的话务台的制作过程,一些细节,由于时间有限,并没有详细介绍,请勿见怪。1. 创建菜单首先要设定好菜单的流程,包括:欢迎信息主菜单信息拨 0 转人工拨 1 找销售部拨 2 找支持拨 3 介绍地址超时处理井号进入目录挂机退出2. 创建对应的语音文件首先要创建对应的语音文件。语音文件的格式是:16bit 单声道, 8000Hz 的 WAV 文件。我使用 Audacity 2.0.2 来直接录制这一格式的语音文件。Audacity 是一个免费的软件,下载地址是:http:/audacity.sourceforge.net/我是通过 360 软件管家找到这个软件的。这个软件可以录音,选择录音片段,导出相应文件。录音前要选好单声道和采样频率。按照上面说的,录制下面语音文件:Sample prompt Filename欢迎来到中国银行。 daygreeting.wav欢迎来到中国银行,我们下班了。 nightgreeting.wav如果你知道你需要拨打的分机,请直接输入。销售部,请拨1;服务支持请拨 2,公司目录,请拨井号;公司地址和传真,请拨 3;重复当前选项,请拨 9;等待或拨 0 转人工。 mainmenu.wav我们在为你转接到销售组,请不要挂机。 holdwhileweconnect.wav我们在为你转接到支持组,请不要挂机。holdwhileweconnect_support.wav我们的地址是:广州市天河区天河北路中信大厦 28 楼。我们的传真机号码是 020-88888888。 faxandaddress.wav转人工,请稍候。 transfertoreception.wav不能解读你的输入信息,请重试。 invalid.wav把做好的文件保存到/var/lib/asterisk/sounds/aa 目录中,具体如下:rootkernel aa# ls /var/lib/asterisk/sounds/aa/daygreeting.wav invalid.wavfaxandaddress.wav mainmenu.wavholdwhileweconnect_support.wav nightgreeting.wavholdwhileweconnect.wav transfertoreception.wav3. 创建拨号规则我把 SIP 创建的帐号的 context 都指定到 jluotest,当拨打 1000 号的时候进入main_menu。进入 main_menu 后,首先会执行 s 开头的拨号规则,这样就会播出欢迎辞和主菜单内容。欢迎辞会根据时间不同而不同。generalstatic=yeswriteprotect=noautofallthrough=yesclearglobalvars=noextenpatternmatchnew=noglobalsCONSOLE = Console/dspIAXINFO = guestTRUNK = DAHDI/G2TRUNKMSD = 1FEATURES =DIALOPTIONS =RINGTIME = 20FOLLOWMEOPTIONS =PAGING_HEADER = Intercommain_menuexten = #,1,Verbose(1, Caller $CALLERID(all) is entering the directory)exten = #,2,Directory(default)exten = 0,1,Verbose(1, Caller $CALLERID(all) is calling the operator)exten = 0,2,Dial(SIP/2134)exten = 1,1,Verbose(1, Caller $CALLERID(all) has entered the sales queue)exten = 1,2,Playback(aa/holdwhileweconnect)exten = 1,3,Queue(jluo)exten = 2,1,Verbose(1, Caller $CALLERID(all) has entered the service queue)exten = 2,2,Playback(aa/holdwhileweconnect_support)exten = 2,3,Queue(jluo)exten = 3,1,Verbose(1, Caller $CALLERID(all) has requested address and fax info)exten = 3,2,Playback(aa/faxandaddress)exten = 3,3,Goto(s,menuprompt)exten = i,1,Verbose(1, Caller $CALLERID(all) has entered an invalid selection)exten = i,2,Playback(invalid)exten = i,3,Goto(s,menuprompt)exten = s,1,Verbose(1, Caller $CALLERID(all) has entered the auto attendant)exten = s,2,Answer()exten = s,3,Set(TIMEOUT(digit)=10)exten = s,4,Wait(1)exten = s,5,GotoIfTime(9:00-17:00,mon-fri,*,*?daygreeting:afterhoursgreeting)exten = s,6(afterhoursgreeting),Background(aa/nightgreeting)exten = s,7,Goto(menuprompt)exten = s,8(daygreeting),Background(aa/daygreeting)exten = s,9,Goto(menuprompt)exten = s,10(menuprompt),Background(aa/mainmenu)exten = s,11,WaitExten(4)exten = s,12,Goto(0,1)exten = t,1,Verbose(1, Caller $CALLERID(all) has timed out)exten = t,2,Goto(0,1)exten = _2XXX,1,Verbose(1,Call $CALLERID(all) to an extension starting with 1)exten = _2XXX,2,Dial(SIP/$EXTEN)jluotestexten = 1000,1,Goto(main_menu,s,1)exten = 123,1,Answer()exten = 123,2,Playback(aa/mainmenu)exten = 123,4,Wait(4)exten = 123,5,Hangup()exten = 200,1,Answer()exten = 200,2,Playback(hello-world)exten = 200,3,Hangup()exten = 201,1,Answer()exten = 201,2,Set(MagicNumber=42)exten = 201,3,SayNumber($MagicNumber)exten = 201,4,Waite(3)exten = 201,5,Hangup()exten = 202,1,Answer()exten = 202,2,SayDigits($EXTEN:1)exten = 203,1,Meetme(1234)exten = 2133,hint,SIP/2133exten = 500,1,AGI(hello-world.sh)exten = 6000,1,Queue(jluo)exten = _2XXX,1,Dial(SIP/$EXTEN)exten = _2XXX,2,Hangup()4. 队列配置在上面的拨号规则中,使用到了队列。Asterisk 可以定义出若干条队列,每条队列中有若干个成员。拨号规则可以使用 Queue 应用来拨打队列,队列自动选择空闲的用户,建立一个通道,实现语音通信。相关的配置文件如下:rootkernel # vi /etc/asterisk/queues.confjluomember = SIP/2134music= custom/test上面内容只是文件中的一个节选,主要是把 SIP 帐号 2134 加入到队列中。可以根据实际情况加入实际的用户信息。2134 需要在 sip.conf 中配置。5. Sip.conf 的配置。SIP 帐号是我使用 sip.conf 例子模板做了一点修改创建出来的帐号。大概修改如下:my-codecs(!); a template for my preferred codecs; disallow=allallow = ulawallow = ilbcallow = g729allow = gsmallow = g723; Or, more simply:;allow=!all,ilbc,g729,gsm,g723,ulawulaw-phone(!); and another one for ulaw-only;disallow=allallow = ulawallow = ilbcallow = g729allow = gsmallow = g723; Again, more simply:;allow=!all,ulawjluo(!)context = jluotest; and finally instantiate a few phones; my-codecs, ulaw-phone2133(natted-phone,ulaw-phone,jluo)secret = 21332134(natted-phone,ulaw-phone,jluo)secret = 21342136(public-phone,ulaw-phone,jluo)secret = 2136host = dynamic
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号