asterisk语音信箱voicemail.conf

来源:互联网 发布:js页面点击弹出编辑框 编辑:程序博客网 时间:2024/04/30 00:04

参考资料:http://wangdejing1974.bokee.com/viewdiary.14016373.html

 

asterisk 里面配置voicemail首先需要在voicemail.conf里面配置mailbox,mailbox的格式如下配置:
voicemail.conf:
[testmail]  ;context
edwin=>1234, edwin chen, edwin@testmail.com    ;edwin:用户名,1234:密码,edwinchen :全名 ,最后一个mail地址。

然后在extension.conf里面配置拨号的信息:
例子:
exten => 2001,1,Answer()
exten => 2001,2,Dial(iax2/edwin,5)
exten => 2001,3,GoToIf($[$(DIALSTATUS)=CHANUNAVAIL]?7)
exten => 2001,4,GoTOIf($[$(DIALSTATUS)=BUSY]?9)
exten => 2001,5,VoiceMail(edwin@testmail)    ;testmail指明了voicemail的定义
exten => 2001,6,GoTO(2001,10)
exten => 2001,7,VoiceMail(uedwin@testmail)
exten => 2001,8,GoTo(2001,10)
exten => 2001,9,VoiceMail(bedwin@testmail)
exten => 2001,10,Hangup()

呼叫2001这个号码,edwin这个帐号会响铃,然后会检测用户状态,无效的话会跳到第七步,并进入voicemail留言;用户忙会跳到第9步并进入voicemail;如果用户5秒钟之内没有接电话,也会进入voicemail留言。
注意mailbox用户名不能以‘s’,‘u’或者‘b’开头。

收听voicemail的留言信息可以在extension.conf里面配置:
[edwintest]
exten => 9999,1,Answer()
exten => 9999,2,VoiceMailMain() ;进入总的voicemail菜单
exten => 9999,3,Hangup()

exten => 9999,1,Answer()
exten => 9999,2,VoiceMailMain(@testmail) ;进入testmail这个邮箱的菜单
exten => 9999,3,Hangup()

exten => 9999,1,Answer()
exten => 9999,2,VoiceMailMain(edwin@testmail) ;进入edwin@testmail这个邮箱的菜单,此时直接输入密码即可
exten => 9999,3,Hangup()

 

//////////////////////////////////////////////////////////////////////////////

后记:

  哈哈,经过测试,终于搞通了,上次犯了一些低级错误,原因是对sip.conf及extensions.conf的理解不正确,关于这点,在我的blog中整理了asterisk的工作机制。
下面总结一下voicemail的测试过程:


首先需要在sip.conf定义用户,使得可打入asterisk。
我定义的是:
[1112]
type=friend
host=dynamic
context=voicemail

然后在voicemail.conf中定义mailbox,我的定义如下:
[testvoicemail]
1122=>1234, I am 1122, root@localhost
其中1122是用户名,1234是密码,而I am 1122是全名,最后就是一个mail地址;

 

最后在extension.conf中配置拨号方案:
[voicemail]
exten => 1122,1,Answer()
exten => 1122,n,VoiceMail(1122@testvoicemail)
exten => 1122,n,Hangup()
exten => 9999,1,Answer()
;exten => 9999,2,VoiceMailMain()
;exten => 9999,2,VoiceMailMain(@testvoicemail)
exten => 9999,2,VoiceMailMain(1122@testvoicemail)
exten => 9999,3,Hangup()

这样,当用户拨1122号码时就会进行语音留言,而当拨9999时就会听到语音留言内容。


需要注意的是进入语音留言有三种方式:
1、进入总的voicemail菜单,需要依次输入语音信箱、用户名及密码;
exten => 9999,2,VoiceMailMain()
2、进入testvoicemail这个邮箱的菜单,需要依次输入用户名及密码;
exten => 9999,2,VoiceMailMain(@testvoicemail)
3、进入1122@testvoicemail这个邮箱的菜单,只需要输入密码;
exten => 9999,2,VoiceMailMain(1122@testvoicemail)

 

  另外文档中提到有一个s extension用来处理没有指定extension的呼叫,但我试了多次,均不行,配置如下:

exten => s,1,Answer()
exten => s,2,Playback(/tmp/asterisk-recording)
exten => s,3,Hangup

exten => 1111,1,Wait(2)
exten => 1111,2,Record(/tmp/asterisk-recording:gsm)
exten => 1111,3,Hangup

如果拨打1111,则会进入录音,但拨其它号码均不行。配置应没有错误啊,不知是不是需要对应zap端口,我对应的是SIP端口。???

 

 

 

 

 

我的代码:

voicemail.conf:

[12345]  
12345 => 12345,12345,12345@12345.com


extension.conf:

exten =>2001,1,Answer()
exten =>2001,2,Dial(iax2/12345,5)
;exten =>2001,3,GoToIf($[$(DIALSTATUS)=CHANUNAVAIL]?5)
;exten =>2001,4,GoToIf($[$(DIALSTATUS)=BUSY]?7)
exten =>2001,3,SayDigits(2001)
exten =>2001,4,VoiceMail(12345@12345)
exten =>2001,5,SayDigits(22222222)
;exten =>2001,6,GoTo(2001,10)
;exten =>2001,7,VoiceMail(12345@12345)
;exten =>2001,8,GoTo(2001,10)
;exten =>2001,9,VoiceMail(12345@12345)
exten =>2001,6,Hangup()


;exten =>9999,1,Answer()
;exten =>9999,2,SayDigits(77777777)
;exten =>9999,3,VoiceMailMain()
;exten =>9999,4,Hangup()

;exten =>9999,1,Answer()
;exten =>9999,2,SayDigits(88888888)
;exten =>9999,3,VoiceMailMain(@12345)
;exten =>9999,4,Hangup()

exten =>9999,1,Answer()
exten =>9999,2,SayDigits(99999999)
exten =>9999,3,VoiceMailMain(12345@12345)
exten =>9999,4,Hangup()

 

语音文件存放路径:/var/spool/asterisk/voicemail

原创粉丝点击