1、SIP和PSTN是目前結(jié)合最為緊密的語(yǔ)音呼叫流程,我們分別介紹一下從SIP到PSTN,從PSTN到SIP兩種呼叫的信令和媒體交互的過(guò)程。
SIP呼叫PSTN的流程,通過(guò)DNS或者ENUM查詢號(hào)碼歸屬地,然后發(fā)起呼叫。
圖例中使用的是SS7局端網(wǎng)關(guān):
PSTN 呼叫SIP的流程,圖例中使用的是SS7網(wǎng)關(guān)處理。
SIP呼叫PSTN的呼叫失敗的流程:
SIP呼叫PSTN,SIP信令的跟蹤消息:
SIP-PSTN跟蹤的消息流程如下:
- UA終端對(duì)所注冊(cè)的Proxy 發(fā)起一個(gè)INVITE請(qǐng)求。
- Proxy 回復(fù)了一個(gè)407 authentication 認(rèn)證要求,需要UA 發(fā)送用戶密碼。
- UA 收到 407 響應(yīng),然后發(fā)送一個(gè)ACK通知Proxy。
- UA再次發(fā)送一個(gè)INVITE 到所注冊(cè)的Proxy,并且這次攜帶了UA的用戶密碼。
- Proxy 收到UA發(fā)送的用戶賬號(hào)信息,對(duì)被呼叫方發(fā)送呼叫信息,然后返回UA一個(gè) 100 trying, 通知UA正在呼叫被呼叫方,等待對(duì)方響應(yīng)。
- Proxy對(duì)UA響應(yīng)一個(gè)183 消息,包含對(duì)端的振鈴狀態(tài)信息和早期媒體流。
- Proxy對(duì)UA響應(yīng)200 OK,表示對(duì)端已經(jīng)應(yīng)答此呼叫。
- UA 發(fā)送一個(gè)ACK消息,然后打開媒體,創(chuàng)建媒體路徑。開始正式媒體互通以后,雙方之間的語(yǔ)音正式建立。其中一方掛機(jī),一定時(shí)間后,Proxy發(fā)送Bye消息,結(jié)束呼叫流程。
2、Early Media也叫早期媒體流,這是SIP到PSTN呼叫過(guò)程中經(jīng)常遇到的一個(gè)技術(shù)術(shù)語(yǔ)。在SIP/PSTN網(wǎng)絡(luò)中引入早期媒體流的功能最主要解決兩個(gè)方面的問(wèn)題:
接聽(tīng)前避免呼叫接聽(tīng)時(shí)的前一段語(yǔ)音丟失的問(wèn)題,或提供語(yǔ)音留言等功能服務(wù)。如果增加了早期媒體流的播放,就可以增加了用戶體驗(yàn),用戶不會(huì)感覺(jué)電話被打斷。
有時(shí),呼叫方可以通過(guò)早期媒體流來(lái)訪問(wèn)媒體流中提供的語(yǔ)音IVR或者其他基于DTMF的服務(wù)功能。運(yùn)營(yíng)商或者企業(yè)客戶可以提供其他的服務(wù)類別讓用戶選擇。
簡(jiǎn)單來(lái)說(shuō),就是在雙方“真人”會(huì)話還沒(méi)有正式開始之前,對(duì)呼叫方播放的一個(gè)語(yǔ)音廣播。早期媒體流是一個(gè)非常有用的功能,通常用戶可以通過(guò)自定義的方式,對(duì)呼叫到播放一個(gè)公司語(yǔ)音消息或者其他自定義的語(yǔ)音提示。當(dāng)然,在早期媒體流也支持視頻文件播放,不僅僅是語(yǔ)音文件。早期媒體流可能是被呼叫方發(fā)起也可能是呼叫方發(fā)起。如果是呼叫方發(fā)起的話,可能發(fā)送到是一個(gè)雙音頻的語(yǔ)音。通常,我們說(shuō)的早期媒體流被呼叫方發(fā)起的語(yǔ)音。
根據(jù)上述的描述,用戶也可能遇到一個(gè)“第一句話”的問(wèn)題,如果發(fā)起呼叫的終端是SIP,對(duì)端終端是模擬電話的話,有時(shí)可能丟模擬終端第一部分語(yǔ)音的。如果被呼叫方是模擬終端,接聽(tīng)以后,用戶可能直接拿起電話就開始講話。但是,此時(shí),SIP終端可能還沒(méi)有收到Proxy返回的200 OK消息,也還沒(méi)有發(fā)送ACK消息到Proxy,媒體流的連接路徑并沒(méi)有打開,SIP終端沒(méi)有接收到語(yǔ)音內(nèi)容,所以就丟失了模擬終端第一次講話的語(yǔ)音內(nèi)容(這里,模擬終端講話-How are you today 就丟失了)。在一段時(shí)間后,SIP終端收到200 OK, 然后發(fā)送ACK,媒體通道正式建立以后,雙方才能聽(tīng)到對(duì)方真正的語(yǔ)音交互內(nèi)容。
因?yàn)镽FC3261僅支持了簡(jiǎn)單的早期媒體流處理機(jī)制,除了上面提到的丟失語(yǔ)音以外,可能會(huì)導(dǎo)致其他的問(wèn)題,例如帶寬問(wèn)題和安全問(wèn)題,forking 分拆問(wèn)題。例如,如果呼叫方的INVITE消息經(jīng)過(guò)forked以后,可能最終到達(dá)幾個(gè)不同的終端,幾個(gè)不同的終端同時(shí)對(duì)呼叫方發(fā)送早期媒體流的話,可能導(dǎo)致呼叫方接收失敗或者迷惑。如果早期媒體流是視頻的話,呼叫方終端可能完全不能接收幾個(gè)不同的早期媒體流文件處理。
事實(shí)上,根據(jù)最近的SIP標(biāo)準(zhǔn)和一些技術(shù)研究,早期媒體流的功能實(shí)現(xiàn)有幾個(gè)方面的問(wèn)題需要進(jìn)一步配合各種環(huán)境來(lái)解決,以下三個(gè)方面的因素需要大家最進(jìn)一步的研究:
IPPBX和終端兼容性的問(wèn)題。IPPBX和網(wǎng)關(guān)關(guān)于早期媒體流支持的方式問(wèn)題,例如是否支持Early Offer或Delayed Offer 方式。
Forked INVITEs的問(wèn)題。如果經(jīng)過(guò)了INVITE 經(jīng)過(guò)分拆以后,如何處理不同session返回的消息。這些技術(shù)細(xì)節(jié)涉及到了不同的服務(wù)器或者提供商,所以,早期媒體流會(huì)發(fā)生完全不同的變化。另外,很多SIP服務(wù)器對(duì)按續(xù)處理和并行處理的方式對(duì)早期媒體流有不同的路由策略,這些策略也會(huì)影響早期媒體流的處理。
NAT和防火墻的問(wèn)題。公司防火墻可能對(duì)IP地址和端口做了處理,這樣也會(huì)影響。
在處理早期媒體流媒體丟失的問(wèn)題上,理論上,目前有兩種不同的解決方案,用戶可以自己去做進(jìn)一步的了解:
- Early-Media Solution Model with Disposition-Type: Early- Session
- Early-Media Solution Model with P-Early-Media:Header
以上兩種方式各有其利弊,并且涉及了很多網(wǎng)絡(luò)環(huán)境中的不可確定的因素,這里不做進(jìn)一步的敘述。
4、Early Offer和Delayed Offer是關(guān)于SDP協(xié)商中涉及的一個(gè)發(fā)送協(xié)商方式,簡(jiǎn)單來(lái)說(shuō),由誰(shuí)發(fā)送SDP的問(wèn)題。因?yàn)閮煞N方式通過(guò)不同的流程提供了SDP包含的消息,所以導(dǎo)致兩種方式的SDP協(xié)商機(jī)制也完全不同。以下圖例的終端SDP表示了所支持的編碼能力,此圖例中支持了PCMU,1016,和GSM,視頻編碼包括:H261和H263。
下面,我們看看兩種方式的流程過(guò)程。Early offer 的流程方式:發(fā)起呼叫的終端通過(guò)INVITE攜帶了SDP的消息,包括了支持的語(yǔ)音編碼,接收方選擇其中一種所支持的編碼,然后開始進(jìn)行媒體交互。
Delayed Offer 通常是終端發(fā)起INVITE消息時(shí),SDP沒(méi)有攜帶任何編碼支持能力,由對(duì)端提供編碼支持能力,通知終端使用所支持的編碼,這樣的話,運(yùn)營(yíng)商控制著編碼的支持能力。大家在很多實(shí)際環(huán)境中也經(jīng)常遇到過(guò)類似的場(chǎng)景,為了保證語(yǔ)音質(zhì)量和帶寬的最佳要求,運(yùn)營(yíng)商要求使用G.729來(lái)支持編碼傳輸,終端PBX只能采用G.729 支持服務(wù)。運(yùn)營(yíng)商返回了200 OK,并且說(shuō)明使用的編碼。在圖例中,運(yùn)營(yíng)商通知終端使用G.729, PBX 根據(jù)運(yùn)營(yíng)商要求采用G.729. 最后,媒體創(chuàng)建成功,開始正式語(yǔ)音通話。
除了以上兩種發(fā)送協(xié)商的方式以外,在SDP交互中,還涉及到了 Offer/answer exchanges 的一個(gè)協(xié)商流程,在協(xié)商過(guò)程中涉及了雙方接聽(tīng)呼叫的動(dòng)作順序,業(yè)務(wù)流程變化引起的Updated,這樣也可能導(dǎo)致發(fā)送到SDP消息會(huì)有updated 發(fā)生。具體協(xié)商過(guò)程和指導(dǎo),請(qǐng)用戶參考RFC3264 標(biāo)準(zhǔn)。
5、SIP Gateway負(fù)責(zé)SIP信令到PSTN的交互,媒體流交互的設(shè)備。在以下的圖例中,SIP/SDP會(huì)轉(zhuǎn)換成ISDN/ISUP信令;RTP/RTPC媒體流則會(huì)轉(zhuǎn)換成TDM語(yǔ)音通道。當(dāng)然,目前的E1網(wǎng)關(guān)或者單機(jī)服務(wù)器(帶語(yǔ)音卡)都可以實(shí)現(xiàn)以下SIP Gateway的功能要求。SIP網(wǎng)關(guān)技術(shù)是一個(gè)非常復(fù)雜的技術(shù)要點(diǎn),需要用戶自己去不斷摸索和使用才能獲得比較全面的了解。這里,我們不做更多介紹。
SIP/PSTN 網(wǎng)關(guān)一體機(jī)模式,可以實(shí)現(xiàn)PSTN到SIP的轉(zhuǎn)換。
SIP/網(wǎng)關(guān)模式功能場(chǎng)景:
當(dāng)然,因?yàn)榧夹g(shù)和業(yè)務(wù)的不斷拓展,目前的SIP gateway 也不僅僅局限于SIP和PSTN之間的交互,出現(xiàn)了更多的支持接口,包括現(xiàn)在的5G。以下圖例是一個(gè)目前比較常見(jiàn)的Gateway方式。
以上章節(jié)中,我們介紹了PSTN-SIP的整個(gè)呼叫流程,失敗流程和SIP消息的步驟,然后介紹了早期媒體流的功能和存在的問(wèn)題。在本章節(jié)中也介紹了Offer/Delayed Offer 的區(qū)別和交互流程,最后介紹了SIP網(wǎng)關(guān)的基本功能。
獲得有價(jià)值的行業(yè)技術(shù)分享,請(qǐng)關(guān)注公眾微信號(hào):asterisk,獲得技術(shù)幫助,請(qǐng)?jiān)L問(wèn):www.issabel.cn/forum