第三方呼叫控制(3pcc)指的是由第三方控制者在另外兩者之間建立一個會話,由控制者負(fù)責(zé)會話雙方的媒體協(xié)商。3pcc是一種非常靈活的控制方式,在PSTN網(wǎng)中,第三方呼叫控制通常用于會議、接線業(yè)務(wù)(接線員創(chuàng)建一個連接另外雙方的呼叫)。同樣,使用SIP協(xié)議也可以借助3pcc來完成許多業(yè)務(wù),例如點擊撥號、通話過程中放音等等,而且實現(xiàn)起來非常方便。RFC3264中定義了一種提供/應(yīng)答模式,使兩個實體之間可以使用SDP的提供/應(yīng)答(offer/answer)模式進(jìn)行會話協(xié)商。
二、第三方呼叫控制方法
SIP消息可以攜帶SDP消息體。SDP(會話描述協(xié)議)是用來描述與媒體流相關(guān)的參數(shù)以及與會話相關(guān)的信息,其中包括對會話的描述以及媒體類型、數(shù)據(jù)發(fā)送到的端口、傳輸協(xié)議(例如RTP)以及媒體格式(例如RTP載荷格式)的描述。3pcc的實現(xiàn)關(guān)鍵就在于控制者如何在會話雙方之間使用SDP消息協(xié)商即將建立的會話。根據(jù)SIP協(xié)議的機制,可以有下面四種方法實現(xiàn)3pcc。
1.流程Ⅰ
該流程圖中的offer和answer都是SDP消息。下面解釋消息流程。
控制者首先向用戶A發(fā)送一個沒有SDP的INVITE,A的電話振鈴,A應(yīng)答之后,產(chǎn)生的200 OK響應(yīng)中將包含一個ofrerl,攜帶用戶A所希望建立會話的媒體類型、媒體格式、傳輸協(xié)議以及接收媒體流的端口和IP地址?刂普邔碜訟的offerl包含在發(fā)給B的INVITE中,B振鈴應(yīng)答之后產(chǎn)生對rfferl的應(yīng)答answerl。最后控制者向用戶A發(fā)出的ACK中包含answer1作為應(yīng)答。
圖1 3pcc流程Ⅰ
該流程優(yōu)點是非常簡單,不需要控制者產(chǎn)生SDP,不必考慮控制者自身對媒體類型的要求。
圖2 3pcc流程Ⅱ
流程圖中的“黑洞”SDP指的是包含的連接地址是一個無效的連接地址,例如rtp.invalid或者0.0.0.0,也就是想建立一個空的媒體流,因為這個媒體流實際上并沒有媒體或者RTCP包從A流出。
圖2 3pcc流程Ⅱ
流程圖中的“黑洞”SDP指的是包含的連接地址是一個無效的連接地址,例如rtp.invalid或者0.0.0.0,也就是想建立一個空的媒體流,因為這個媒體流實際上并沒有媒體或者RTCP包從A流出。
圖4 3pcc流程Ⅳ
綜上所述,流程I是最簡單且有效的流程。如果控制者預(yù)先知道B是自動應(yīng)答的能夠立即響應(yīng),例如B是媒體服務(wù)器、會議服務(wù)器等等情況下,使用本流程是最好不過了。
圖5 用戶B播放早期放音媒體
四、總結(jié)語
3pcc在多方通信中(例如會議)的應(yīng)用也很廣泛,SIP協(xié)議的3pcc功能應(yīng)用靈活,使用一個控制者可以將多個用戶聯(lián)系起來進(jìn)行通信,方便管理。但是目前3pcc實現(xiàn)上還有一些標(biāo)準(zhǔn)無法統(tǒng)一的問題,例如如何創(chuàng)建一個無效連接地址的SDP,亟待解決。目前我國正在積極的開展關(guān)于SIP協(xié)議對呼叫控制方面標(biāo)準(zhǔn)的制定,第三方呼叫控制作為呼叫控制的一個重要方面,也將成為一個不可或缺的研究重點。