- 作者:james.zhu(james.zhu@hiastar.com) www.hiastar.com 微信公眾號:asterisk-cn
- Asterisk課堂-如何通過(guò)源代碼安裝方式安裝Asteisk/dahdi
- Asterisk課堂-系統部署環(huán)境要求
- Asterisk課堂-Asterisk技術(shù)架構
- Asterisk課堂-撥號規則基礎
- Asterisk課堂-創(chuàng )建第一個(gè)撥號規則
- Asterisk課堂-撥號規則中的Contexts
- Asterisk課堂-撥號規則中變量的使用
- Asterisk課堂-撥號規則中的Extensions用法
- Asterisk課堂-撥號規則中匹配模式
- Asterisk課堂-IAX2 介紹
- Asterisk課堂-IAX2 呼叫流程
- Asterisk課堂-SIP介紹
- Asterisk課堂-SIP呼叫流程
視頻中講解了SIP的呼叫流程,大家可以通過(guò)觀(guān)看視頻了解更多:
接下來(lái),我們嘗試使用稍微通俗一點(diǎn)的語(yǔ)言給大家介紹一下呼叫流程中幾個(gè)主要的部分:
呼叫流程圖:這里我們假設用戶(hù)已經(jīng)搭建好了兩臺Asterisk服務(wù)器,雙方的分機可以成功注冊,服務(wù)器之間可以通過(guò)SIP trunk 互通,雙方使用同一語(yǔ)音編碼,雙方服務(wù)器終端都在同一網(wǎng)段。我們測試的流程是從電話(huà) 1 通過(guò)Server A 呼叫到Server B上的電話(huà) 2。

發(fā)起呼叫流程是通過(guò)幾個(gè)協(xié)商過(guò)程來(lái)反復進(jìn)行的,這里我們忽略了具體的編碼協(xié)商,支持能力等等問(wèn)題。電話(huà) 1 首先發(fā)起呼叫,電話(huà) 1 第一次發(fā)送 INVITE 信息,asterisk A 回復 401,告訴電話(huà) 1 發(fā)安全認證消息,我不會(huì )隨便讓你呼叫的。 然后 電話(huà) 1 發(fā)送ACK。好吧 ,我發(fā)送安全信息給你。然后電話(huà) 1 再發(fā)送 INVITE消息,攜帶安全信息認證。Asterisk A 收到電話(huà) 1 消息以后,Asterisk A 通知電話(huà) 1 已經(jīng)收到 電話(huà) 1 消息,同時(shí)Server A 通過(guò)撥號規則判斷電話(huà)的呼叫路由狀態(tài),發(fā)現此電話(huà)是呼叫到Server B,于是對Server B 發(fā)出 INVITE消息,告訴Server B,兄弟,這個(gè)電話(huà)是打到你那里的。Server B 收到了Server A的 INVITE消息以后,馬上回復 Server A 一個(gè) 100 Trying, 大哥等等,我需要找我系統里面的的電話(huà) 2。同時(shí),Server B 對電話(huà) 2 發(fā)出一個(gè)INVITE 消息,電話(huà) 2 收到了INVITE 以后,也馬上回復Server B 一個(gè)100 Tyinging, 電話(huà) 2 表示我收到Server B 大哥的呼叫了,同時(shí)電話(huà) 2 振鈴,電話(huà)終端播放一個(gè)振鈴音,提醒用戶(hù)電話(huà)2 振鈴了,快接電話(huà)。然后 電話(huà) 2 發(fā)出一個(gè) 180 Ringing 回復到Server B,然后到 Server A,最后到了 電話(huà) 1。 電話(huà) 1 會(huì )聽(tīng)到一個(gè)回鈴音。緊接著(zhù)電話(huà) 2 發(fā)送 200 OK,電話(huà) 1 回復 ACK。電話(huà) 2 收到ACK 以后,說(shuō)明雙方都無(wú)其他問(wèn)題。雙方正式建立了RTP的互通,開(kāi)始了語(yǔ)音傳輸。

掛機過(guò)程。如果雙方通話(huà)結束,雙方任意一方可以?huà)鞕C,發(fā)送 BYE 消息以后,對端發(fā)送 200 OK。到此,雙方通話(huà)結束。

在整個(gè)呼叫過(guò)程中,我們簡(jiǎn)單介紹了呼叫發(fā)起,呼叫協(xié)商,查詢(xún)路由,發(fā)送不同消息的整個(gè)流程,最后到掛機結束。在呼叫流程中,提醒用戶(hù)一定要注意觀(guān)察呼叫過(guò)程中每個(gè)終端,服務(wù)器發(fā)送的信息內容。另外,這里忽略了語(yǔ)音編碼的協(xié)商問(wèn)題,網(wǎng)絡(luò )NAT問(wèn)題,撥號規則的呼叫路由問(wèn)題。這些問(wèn)題需要在實(shí)際環(huán)境中做進(jìn)一步的分析。如果用戶(hù)希望了解更多SIP呼叫流程的技術(shù)細節,建議用戶(hù)結合用戶(hù)通過(guò)實(shí)際呼叫環(huán)境來(lái)抓包分析。