Asterisk 学习进阶 2
Asterisk 學習進階-2
這兒只是把添加的用戶配置列出來。
[830]
type=friend?????????????????? ; Friends place calls and receive calls
context=830????????? ; Context for incoming calls from this user
;secret=blahpoly
host=dynamic?????????????? ; This peer register with us
;dtmfmode=rfc2833???????????? ; Choices are inband, rfc2833, or info
username=830???????????????????? ; Username to use in INVITE until peer registers
; Normally you do NOT need to set this parameter
;disallow=all
;allow=ulaw???????????????????? ; dtmfmode=inband only works with ulaw or alaw!
;progressinband=no????????????? ; Polycom phones don't work properly with "never"
?
[808]
type=friend?????????????????? ; Friends place calls and receive calls
context=808????????? ; Context for incoming calls from this user
;secret=blahpoly
host=dynamic?????????????? ; This peer register with us
;dtmfmode=rfc2833???????????? ; Choices are inband, rfc2833, or info
username=808???????????????????? ; Username to use in INVITE until peer registers
; Normally you do NOT need to set this parameter
;disallow=all
;allow=ulaw???????????????????? ; dtmfmode=inband only works with ulaw or alaw!
;progressinband=no????????????? ; Polycom phones don't work properly with "never"
?
主要是定義了一個用戶,號碼分別為808,830。他們所處的撥號規則段分別為808,830。接著添加撥號規則的段。如下:
[830]
exten => s,1,Wait(1)??????????????????? ; Wait a second, just for fun
exten => s,n,Answer?????????????????? ; Answer the line
exten => s,n,Set(TIMEOUT(digit)=5)?? ; Set Digit Timeout to 5 seconds
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
exten => s,n(restart),BackGround(demo-congrats)???? ; Play a congratulatory message
exten => s,n(instruct),BackGround(demo-instruct)???? ; Play some instructions
exten => s,n,WaitExten??????????????? ; Wait for an extension to be dialed.
?
exten => 2,1,BackGround(demo-moreinfo)? ; Give some more information.
exten => 2,n,Goto(s,instruct)
?
exten => 3,1,Set(LANGUAGE()=fr)??????????? ; Set language to french
exten => 3,n,Goto(s,restart)???????? ; Start with the congratulations
?
exten => 1000,1,Goto(default,s,1)
?
exten => 808,1,Goto(default,s,1)
?
exten => 500,1,VoicemailMain()
?
[808]
exten => s,1,Wait(1)??????????????????? ; Wait a second, just for fun
exten => s,n,Answer?????????????????? ; Answer the line
exten => s,n,Set(TIMEOUT(digit)=5)?? ; Set Digit Timeout to 5 seconds
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
exten => s,n(restart),BackGround(demo-congrats)???? ; Play a congratulatory message
exten => s,n(instruct),BackGround(demo-instruct)???? ; Play some instructions
exten => s,n,WaitExten??????????????? ; Wait for an extension to be dialed.
?
exten => 2,1,BackGround(demo-moreinfo)? ; Give some more information.
exten => 2,n,Goto(s,instruct)
?
exten => 3,1,Set(LANGUAGE()=fr)??????????? ; Set language to french
exten => 3,n,Goto(s,restart)???????? ; Start with the congratulations
?
exten => 1000,1,Goto(default,s,1)
?
exten => 600,1,MeetMe(600,i,123456)
?
?
exten => 830,1,Voicemail(830@default)
;exten => 830,1,Dial(SIP/830,3)
exten => _[58]30,2,SayDigits(${EXTERN})
exten => 830,102,Playback(priv-recordintro)
exten => 830,103,Playback(spy-h323)
exten => 830,104,Hangup()
?
為什么撥號規則段加了那么多東西,后面再慢慢解釋。其實對于我們簡單的通話而言,根本不需要那么多,向下面這樣就足夠了。
[808]
exten => s,1,Wait(1)??????????????????? ; Wait a second, just for fun
exten => s,n,Answer?????????????????? ; Answer the line
exten => 830,n,Dial(SIP/830,3)
exten => 830,n,Hangup()
只看這些就簡潔多了吧,而且基本工作正常,解釋一下,客戶端(例如800)在sip里面進行了配置,其屬于808這個context,故他的所有撥號動作都在808里面進行了定義。當用戶呼叫830的時候,他就跳到830這個擴展段,進行撥號。看dial這個函數很清晰,但是他的功能確實強大無比,例如現在我們撥的是sip用戶,萬一我們需要撥打h323用戶怎么辦?那就變成dial(h323/**,),.依此類推,所有的通道都可以采用同樣的格式進行定義。
?????? 這兒當然也可以制定的復雜一些,例如遇忙時候轉語音什么的,在我們的實現中,遇忙跳轉到N+101擴展,我們則定義一個忙轉的擴展,如下
[808]
exten => s,1,Wait(1)??????????????????? ; Wait a second, just for fun
exten => s,2,Answer?????????????????? ; Answer the line
exten => 830,3,Dial(SIP/830,3)
exten => 830,4,Hangup()
exten => 830,104,Voicemail(830@default)
?
這樣遇忙的時候,則會轉移到語音郵件留言,有了上面的基礎,你就可以隨心所欲進行擴充了,還可以組建會議電話,呼叫等待,更多的功能就留給你進行挖掘了。
下面簡單介紹一下語音信箱的配置,語音信箱的配置關鍵兩個文件voicemail.conf和撥號規則文件extensions.conf.
Voicemail.conf 中要增加用于存放語音的郵箱,在asterisk中有專門的語法格式來申明:
Mailbox => password, name, email.
這只是一個最簡單的格式,還有很多選項沒有列出,如果感興趣可以參閱相關文檔,這里只是給出一個概念。Mailbox是郵箱的編號,通常符合關聯設置的擴展號碼。后面的password,name和email的意義就比較清晰了。
例如我們在voicemail的default context申明一個 101 => 123456, jone,?. 然后在相對應的extensions.conf中當用戶忙時或者相應超時調用這個郵箱:
Exten => 101,1,dial(${JONE},10,r)
Exten => 101,2,voicemail(u101@default)
Exten => 101,102,voicemail(b101@default)
接下來就是接收語音郵件了,同樣在extensions.conf中加入一條語句:
Exten => 500,1,voicemailmain(),讓用戶通過撥打500來收聽語音郵件。
原文地址http://hi.baidu.com/zengshengwen/item/d25b274c22c13eed1f19bc19
?
總結
以上是生活随笔為你收集整理的Asterisk 学习进阶 2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可上绿牌 长城“老爷车”圆梦工信部申报:
- 下一篇: 今天端午节 究竟是端午安康还是快乐?网友