讀者通過SIP-SDP經(jīng)典示例-呼叫等待是如何實(shí)現(xiàn)的-關(guān)于Call Hold-呼叫等待處理流程-RFC2543和RFC3264兼容性處理,可能已經(jīng)了解了呼叫等待的過程。其實(shí),音樂等待是一個(gè)呼叫等待的高級(jí)功能或者一個(gè)高級(jí)的呼叫等待,只是在呼叫等待過程中,IPPBX對(duì)等待發(fā)進(jìn)行了一段語音播放,等另外一方摁了Hold鍵以后,雙方的SDP重新協(xié)商,IPPBX停止了音樂播放,然后重新創(chuàng)建雙方之間的直接RTP流。以下的圖例說明了呼叫等待的簡單流程,我們這里再回顧一下。
在IPPBX或者B2BUA環(huán)境中,特別是基于開源的Asterisk或者FreeSWITCH開發(fā)的通信服務(wù)中,用戶可以非常靈活自定義很多的音樂文件或者語音文件,支持了非常豐富的特性。如果讀者有興趣的話,可以閱讀筆者關(guān)于
最常用的18個(gè)SIP呼叫業(yè)務(wù)流程詳解完整版,此文章中介紹了關(guān)于呼叫等待,音樂等待等關(guān)于SDP交互的詳解流程。
在音樂等待過程中,音樂等待同時(shí)結(jié)合了IPPBX自定義的音樂播放實(shí)現(xiàn)了對(duì)等待方的處理。讀者可以參考:SIP講座系列-關(guān)于音樂等待中的SDP變化。以下圖例說明了MOH的處理流程。這里用戶特別注意SDP中的a行參數(shù)的變化。
觸發(fā)了呼叫等待,開始執(zhí)行MoH音樂等待。系統(tǒng)然后停止音樂等待,重新創(chuàng)建RTP流,雙方重啟呼叫,a行參數(shù)發(fā)生了變化,重新設(shè)置為sendrecv, 雙方都能支持發(fā)送和接收RTP語音流。
如果讀者需要深入了解MOH的規(guī)范流程,可以參考RFC7088。
參考資料:
https://www.rfc-editor.org/rfc/rfc7088.html
www.asterisk.org.cn
www.asterisk.org
www.dinstar.cn