- 作者:james.zhu(james.zhu@hiastar.com) www.hiastar.com 微信公眾號(hào):asterisk-cn
- Asterisk課堂-如何通過(guò)源代碼安裝方式安裝Asteisk/dahdi
- Asterisk課堂-系統(tǒng)部署環(huán)境要求
- Asterisk課堂-Asterisk技術(shù)架構(gòu)
- Asterisk課堂-撥號(hào)規(guī)則基礎(chǔ)
- Asterisk課堂-創(chuàng)建第一個(gè)撥號(hào)規(guī)則
- Asterisk課堂-撥號(hào)規(guī)則中的Contexts
- Asterisk課堂-撥號(hào)規(guī)則中變量的使用
- Asterisk課堂-撥號(hào)規(guī)則中的Extensions用法
- Asterisk課堂-撥號(hào)規(guī)則中匹配模式
- Asterisk課堂-IAX2 介紹
- Asterisk課堂-IAX2 呼叫流程
- Asterisk課堂-SIP介紹
- Asterisk課堂-SIP呼叫流程
視頻中講解了SIP的呼叫流程,大家可以通過(guò)觀看視頻了解更多:
接下來(lái),我們嘗試使用稍微通俗一點(diǎn)的語(yǔ)言給大家介紹一下呼叫流程中幾個(gè)主要的部分:
呼叫流程圖:這里我們假設(shè)用戶已經(jīng)搭建好了兩臺(tái)Asterisk服務(wù)器,雙方的分機(jī)可以成功注冊(cè),服務(wù)器之間可以通過(guò)SIP trunk 互通,雙方使用同一語(yǔ)音編碼,雙方服務(wù)器終端都在同一網(wǎng)段。我們測(cè)試的流程是從電話 1 通過(guò)Server A 呼叫到Server B上的電話 2。
發(fā)起呼叫流程是通過(guò)幾個(gè)協(xié)商過(guò)程來(lái)反復(fù)進(jìn)行的,這里我們忽略了具體的編碼協(xié)商,支持能力等等問(wèn)題。電話 1 首先發(fā)起呼叫,電話 1 第一次發(fā)送 INVITE 信息,asterisk A 回復(fù) 401,告訴電話 1 發(fā)安全認(rèn)證消息,我不會(huì)隨便讓你呼叫的。 然后 電話 1 發(fā)送ACK。好吧 ,我發(fā)送安全信息給你。然后電話 1 再發(fā)送 INVITE消息,攜帶安全信息認(rèn)證。Asterisk A 收到電話 1 消息以后,Asterisk A 通知電話 1 已經(jīng)收到 電話 1 消息,同時(shí)Server A 通過(guò)撥號(hào)規(guī)則判斷電話的呼叫路由狀態(tài),發(fā)現(xiàn)此電話是呼叫到Server B,于是對(duì)Server B 發(fā)出 INVITE消息,告訴Server B,兄弟,這個(gè)電話是打到你那里的。Server B 收到了Server A的 INVITE消息以后,馬上回復(fù) Server A 一個(gè) 100 Trying, 大哥等等,我需要找我系統(tǒng)里面的的電話 2。同時(shí),Server B 對(duì)電話 2 發(fā)出一個(gè)INVITE 消息,電話 2 收到了INVITE 以后,也馬上回復(fù)Server B 一個(gè)100 Tyinging, 電話 2 表示我收到Server B 大哥的呼叫了,同時(shí)電話 2 振鈴,電話終端播放一個(gè)振鈴音,提醒用戶電話2 振鈴了,快接電話。然后 電話 2 發(fā)出一個(gè) 180 Ringing 回復(fù)到Server B,然后到 Server A,最后到了 電話 1。 電話 1 會(huì)聽到一個(gè)回鈴音。緊接著電話 2 發(fā)送 200 OK,電話 1 回復(fù) ACK。電話 2 收到ACK 以后,說(shuō)明雙方都無(wú)其他問(wèn)題。雙方正式建立了RTP的互通,開始了語(yǔ)音傳輸。
掛機(jī)過(guò)程。如果雙方通話結(jié)束,雙方任意一方可以掛機(jī),發(fā)送 BYE 消息以后,對(duì)端發(fā)送 200 OK。到此,雙方通話結(jié)束。
在整個(gè)呼叫過(guò)程中,我們簡(jiǎn)單介紹了呼叫發(fā)起,呼叫協(xié)商,查詢路由,發(fā)送不同消息的整個(gè)流程,最后到掛機(jī)結(jié)束。在呼叫流程中,提醒用戶一定要注意觀察呼叫過(guò)程中每個(gè)終端,服務(wù)器發(fā)送的信息內(nèi)容。另外,這里忽略了語(yǔ)音編碼的協(xié)商問(wèn)題,網(wǎng)絡(luò)NAT問(wèn)題,撥號(hào)規(guī)則的呼叫路由問(wèn)題。這些問(wèn)題需要在實(shí)際環(huán)境中做進(jìn)一步的分析。如果用戶希望了解更多SIP呼叫流程的技術(shù)細(xì)節(jié),建議用戶結(jié)合用戶通過(guò)實(shí)際呼叫環(huán)境來(lái)抓包分析。