在此,對工作上設定環境做一個註記.

 

要讓Asterisk發送SIP 183 Early media的方法.

請在"/etc/asterisk"(預設的asterisk configuration file)下面.

編輯"extensions.conf"檔案.

 

在你預設的Dial plan中加入以下幾行.

exten => s,1,Progress()
exten => s,n,Playback(followme/pls-hold-while-try,noanswer) //Playback(音檔的路徑,noanswer一定要加)
exten => s,n,Dial(SIP/you|time,) //撥號

PS.音檔必須要是 .gsm或是.wav mone(單聲道) 8K(取樣)的檔案(MP3要播也是可以,需要安裝額外的套件)
   音檔轉換,在windows下可以用switch,Linux下可以用sox,使用方式請詢問Google大神.
PS2.音檔請放在asterisk音檔的預設路徑下,一般是"/usr/loacal/etc/asterisk/sound",在playback使用可以不需要加附檔名,但有目錄的路徑必須要加.

接下來使用183 early media的行為有兩種.
一種是要聽完183內容後才會進行撥號,另一種是類是手機的來電答鈴,把鈴聲換成你自訂的音樂.

如果你在extensions.conf中,是使用以下方式:
exten => s,1,Progress()
exten => s,n,Playback(followme/pls-hold-while-try,noanswer) //Playback(音檔的路徑,noanswer一定要加)
exten => s,n,Dial(SIP/you|time|) //撥號,,time是指ring timeout 的時間.
那麼他會把pls-hold-while-try的音檔撥放完,才會撥號到另外一支號碼去.

如果你要使用來電答鈴的方式,必須改成以下的寫法.

1.首先你要到"musiconhold.conf"設定檔中加入以下MOH的設定.
[ring1]
mode=files
directory=/var/lib/asterisk/mohmp3/ring1 //音檔放置的目錄
random=yes

2.接下來在"Extensions.conf"中設定.
exten => s,1,Progress()
exten => s,n,Dial(SIP/you|time|m(ring1)) //m代表使用ring1的MOH來當鈴聲(MOH=Music on hold),time是指ring timeout 的時間.

設定完不要忘記在asterisk中reload configuration file.
以上.

Update:
根據指證,asterisk-1.8.28以後,已經改成用逗號區隔,非 | 了
用以上的方式去設定dial plan會出現錯誤訊息如下:
pbx_exec: The application delimiter is now the comma, not the pipe.

改用逗號處理就可以了
exten => _X.,1,Progress()
exten => _X.,n,Dial(SIP/${EXTEN},30,m(ring1))
arrow
arrow
    文章標籤
    asterisk SIP 183 Early media
    全站熱搜

    sdlc 發表在 痞客邦 留言(2) 人氣()