因此,在本章節(jié)我們會(huì)介紹一下音樂等待中的SDP修改過程,同時(shí)介紹以下各種INVITE概念和區(qū)別。
1、大家都經(jīng)常使用到SIP物理電話的Hold 鍵,這個(gè)功能鍵會(huì)觸發(fā)一個(gè)事件讓對(duì)端處于音樂等待狀態(tài)。如果用戶第一次按Hold鍵以后,雙方的通話會(huì)被置于一個(gè)音樂等待的狀態(tài),語音流停止發(fā)送,對(duì)端可以聽到一個(gè)音樂等待的提示音。一定時(shí)間后,再次按Hold鍵會(huì)重新創(chuàng)建一個(gè)session來進(jìn)行進(jìn)行雙方的通話。雙方之間的SDP消息會(huì)發(fā)生更新以支持啟動(dòng)或者重新啟動(dòng)新session的功能需求。

以上圖例說明了客戶A和客戶B之間的SDP交互消息情況。大家需要注意兩次Hold按鍵以后的SDP的不同。

在下面的內(nèi)容中我們重點(diǎn)介紹啟動(dòng)Hold事件的流程和重新觸發(fā)Hold事件的流程。
2、在正常的環(huán)境中,客戶A一直保持和客戶B的通話,因?yàn)槠渌脑颍赡芸蛻鬉會(huì)按Hold鍵觸發(fā)一個(gè)SDP的修改事件,同時(shí)一個(gè)PBX會(huì)發(fā)送一個(gè)消息到客戶B,客戶B則返回一個(gè)消息,IPPBX會(huì)斷開這個(gè)session,同時(shí)可以對(duì)客戶B發(fā)送一個(gè)音樂等待。PBX使用這個(gè)語音等待功能對(duì)客戶B播放音樂,具體音樂文件有PBX設(shè)置。

在以上的舉例中,我們可以看到。首先 客戶A按了Hold鍵,然后觸發(fā)了一個(gè)音樂等待的要求,SDP中的a為sendonly,PBX 會(huì)發(fā)送一個(gè)消息到客戶B,客戶在SDP中返回一個(gè)recvonly , PBX會(huì)停止雙方的語音流,然后對(duì)客戶B播放一個(gè)音樂等待文件,提示用戶處于音樂等待時(shí)間。音樂等待的文件用戶可以自己自定義,在PBX中獲得支持。
3、一段時(shí)間后,客戶A按Hold鍵以后,重新觸發(fā)一個(gè)事件,發(fā)送重新建立session的消息(a=sendrecv),PBX會(huì)重新發(fā)送一個(gè)消息到客戶B,客戶B重新發(fā)送消息,帶了一個(gè)新的SDP消息a=sendrecv,然后重新創(chuàng)建一個(gè)新的session來繼續(xù)進(jìn)行通話流程。

以上圖例是結(jié)合置于音樂等待的狀態(tài)來繼續(xù)說明的。因?yàn)橐郧翱蛻鬉觸發(fā)了Hold語音等待,現(xiàn)在重新再次按Hold以后,SDP的a會(huì)更新到sendrecv, 同時(shí)通知PBX,PBX會(huì)通知客戶B。客戶B回復(fù)了一個(gè)SDP消息帶了a=sendrecv的新的狀態(tài)消息,PBX重新啟動(dòng)一個(gè)新的會(huì)話,雙方通話重新開始。
4、INVITE 可能是我們用戶經(jīng)常看到的一種消息內(nèi)容,很多時(shí)候可能比較迷惑。這里的INVITE包括:原始的Original INVITE,Resent INVITE和reINVITE三種。
Original INVITE 是用戶發(fā)起的INVITE消息。
Resent INVITE仍然是以前的INVITE,包含了以前的Call-ID和以前的CSeq(),通常是100 trying 還沒有收到,然后發(fā)送到Proxy的INVITE。
reINVITE 是用來修改目前存在session呼叫參數(shù)或等待處理的呼叫參數(shù)。它使用當(dāng)前的Call-ID,因?yàn)檫@是一個(gè)新的request,所以使用一個(gè)新的CSeq id。

在以上章節(jié)中我們主要介紹了MoH(音樂等待中的SDP狀態(tài)修改),包括啟動(dòng)Hold,再次觸發(fā)新的會(huì)話。在這些過程中,SDP的狀態(tài)是完全不同的。另外,我們也簡單介紹了幾個(gè)INVITE的區(qū)別。希望通過本章節(jié)的介紹,大家對(duì)音樂等待中的SDP修改更新有更多的了解。當(dāng)然,用戶需要結(jié)合實(shí)際的環(huán)境做進(jìn)一步的測試。例如,用戶可以安裝FreePBX,配合兩臺(tái)話機(jī)做一個(gè)類似的實(shí)驗(yàn)。
關(guān)注公眾號(hào):asterisk-cn 獲得更多有價(jià)值的行業(yè)技術(shù)分享,訪問論壇:www.issabel.cn/forum 獲得技術(shù)幫助。