因為SIP網(wǎng)絡技術存在了很多年,一些終端設備可能僅支持RFC2543,另外一些比較新的終端設備可能同時支持了RFC2543和RFC3264,為了完成成功的呼叫等待,雙方終端通常需要兩種協(xié)議都能支持才能實現(xiàn)。下面的示例是一個關于SIP 呼叫等待中SDP的交互流程(這里假設已正常通話,無NAT問題),通過SDP的交互雙方實現(xiàn)呼叫等待和重啟呼叫的流程。

在以上的處理流程中,事實上,呼叫方執(zhí)行呼叫等待時在SDP中修改了c行的地址, 地址為0.0.0.0,這個流程是根據(jù)RFC2543來實現(xiàn)的。通過修改c行地址為0.0.0.0 表示不再接收媒體流。但是,這個處理方式在RFC3264中是一種不再推薦的處理方式,因為這樣處理的話,它不能支持RTCP對媒體流的控制。另外,如果使用IPv6的話,可能會破壞和源媒體的連接。RFC3264支持了拓展方式,它支持了四種不同的a行的屬性設置。如果呼叫方需要重啟已處于呼叫等待狀態(tài)的呼叫,摁Hold 按鍵,發(fā)送SDP的a=sendrecv重新開啟雙向媒體流,開始正常通話處理。
參考資料:
- www.dinstar.cn
- https://www.rfc-editor.org/rfc/rfc3264.html
- www.asterisk.org.cn