asterisk语音信箱voicemail.conf
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
總結
以上是生活随笔為你收集整理的asterisk语音信箱voicemail.conf的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 武大靖送神十四航天员出征 央视:冠军送英
- 下一篇: 狂飙7200Mbps!华为最强单体路由A