一種基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種語(yǔ)音監(jiān)聽(tīng)的技術(shù)領(lǐng)域,特別是涉及一種基于對(duì)稱(chēng)型網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translat1n, NAT)的網(wǎng)絡(luò)電話(Voice over Internet Protocol,VoIP)語(yǔ)音監(jiān)聽(tīng)方法及系統(tǒng)。
【背景技術(shù)】
[0002]在現(xiàn)有的Internet網(wǎng)絡(luò)環(huán)境中,大多數(shù)設(shè)備都處于防火墻或NAT之后。在進(jìn)行P2P通信之前,需要進(jìn)行檢測(cè)以確認(rèn)設(shè)備之間能否進(jìn)行P2P通信以及如何通信。這種技術(shù)稱(chēng)為NAT穿透(NAT Traversal)。最常見(jiàn)的NAT穿透是基于UDP的技術(shù),而VoIP通話大多采用會(huì)話發(fā)起協(xié)議(Sess1n Initiat1n Protocol,SIP)UDP 技術(shù)。
[0003]NAT對(duì)待UDP的實(shí)現(xiàn)方式有4種,當(dāng)通信雙方處于非對(duì)稱(chēng)型NAT,即完全錐形NAT (Full Cone NAT)、限制錐形 NAT (Restricted Cone NAT)、端口限制錐形 NAT (PortRestricted Cone NAT)時(shí),采用STUN方案實(shí)現(xiàn)P2P通話;當(dāng)通信雙方處于對(duì)稱(chēng)型NAT (Symmetric NAT)時(shí),采用TURN方案,即中繼模式,實(shí)現(xiàn)NAT會(huì)話穿透。
[0004]大多數(shù)情況下,設(shè)備處于NAT之后,而且設(shè)備本身并不知道NAT的類(lèi)型,以及NAT后的公網(wǎng)地址。在通話之前,通信雙方會(huì)通過(guò)STUN/TURN服務(wù)器進(jìn)行公網(wǎng)地址收集,并且進(jìn)行一系列的連通性檢查。如果通信雙方或者一方處于對(duì)稱(chēng)型NAT之后,通信雙方只有通過(guò)中繼服務(wù)器才能進(jìn)行通話,即媒體流需要經(jīng)過(guò)STUN/TURN服務(wù)器進(jìn)行中轉(zhuǎn)。
[0005]監(jiān)聽(tīng)方可以直接接入Internet,也可以處于某種NAT之后。SIP服務(wù)器除了處理SIP消息之外,還需要對(duì)被監(jiān)聽(tīng)方進(jìn)行權(quán)限設(shè)置。監(jiān)聽(tīng)方在發(fā)起邀請(qǐng)(invite)之前,需要和STUN/TURN服務(wù)器進(jìn)行報(bào)文交互,收集公網(wǎng)地址并記錄在SDP消息里。當(dāng)SIP服務(wù)器收到了被監(jiān)聽(tīng)方發(fā)起的invite請(qǐng)求,先向被監(jiān)聽(tīng)方回復(fù)480,然后告知STUN/TURN服務(wù)器監(jiān)聽(tīng)方和被監(jiān)聽(tīng)方的IP地址。被監(jiān)聽(tīng)方收到480后,重新進(jìn)行地址收集,在與STUN/TURN服務(wù)器的報(bào)文交互中,STUN/TURN服務(wù)器將監(jiān)聽(tīng)方的公網(wǎng)IP地址發(fā)送給被監(jiān)聽(tīng)方,而不是STUN/TURN服務(wù)器的本地地址。被監(jiān)聽(tīng)方收集完地址后,再次向SIP服務(wù)器發(fā)送invite報(bào)文,SIP服務(wù)器查找數(shù)據(jù)庫(kù)后進(jìn)行轉(zhuǎn)發(fā),通信對(duì)方的流程和被監(jiān)聽(tīng)方一樣。這樣雙方在進(jìn)行連通性檢查的時(shí)候,將中繼的服務(wù)器地址指向了監(jiān)聽(tīng)方,監(jiān)聽(tīng)方獲取了被監(jiān)聽(tīng)方的通話內(nèi)容,實(shí)現(xiàn)了呼叫監(jiān)聽(tīng)。
[0006]目前,大多數(shù)VoIP監(jiān)聽(tīng)方法都是基于P2P通信的,即通信雙方或者直接接入Internet,或者處于非對(duì)稱(chēng)型NAT之后。
[0007]如專(zhuān)利申請(qǐng)?zhí)枮?00910088577.1、發(fā)明名稱(chēng)為《一種互聯(lián)網(wǎng)協(xié)議語(yǔ)音呼叫的監(jiān)聽(tīng)方法及設(shè)備》的中國(guó)發(fā)明專(zhuān)利公開(kāi)一種互聯(lián)網(wǎng)協(xié)議語(yǔ)音VoIP呼叫的監(jiān)聽(tīng)方法,包括:會(huì)話初始協(xié)議SIP服務(wù)器接收第一客戶(hù)端發(fā)送的對(duì)第二客戶(hù)端的監(jiān)聽(tīng)請(qǐng)求,所述第二客戶(hù)端與第三客戶(hù)端之間建立有VoIP語(yǔ)音呼叫;SIP服務(wù)器根據(jù)所述監(jiān)聽(tīng)請(qǐng)求,向第二、第三客戶(hù)端分別發(fā)送第一媒體更新請(qǐng)求,所述第一媒體更新請(qǐng)求用于指示第二、第三客戶(hù)端將所述VoIP語(yǔ)音呼叫的媒體目的地址修改為所述第一客戶(hù)端;SIP服務(wù)器接收第二、第三客戶(hù)端返回的攜帶有各自媒體接收地址的響應(yīng)報(bào)文,從所述響應(yīng)報(bào)文中獲取第二、第三客戶(hù)端的媒體接收地址,并向所述第一客戶(hù)端發(fā)送包含有第二、第三客戶(hù)端的媒體接收地址的報(bào)文。
[0008]再如申請(qǐng)?zhí)枮?01110206729.0、發(fā)明名稱(chēng)為《V0IP電話監(jiān)聽(tīng)系統(tǒng)及監(jiān)聽(tīng)方法》的中國(guó)發(fā)明專(zhuān)利公開(kāi)一種VOIP電話監(jiān)聽(tīng)系統(tǒng),包括:監(jiān)聽(tīng)端VOIP網(wǎng)關(guān),用于提供監(jiān)聽(tīng)權(quán)限表,將通過(guò)注冊(cè)驗(yàn)證后的電話號(hào)碼添加至監(jiān)聽(tīng)權(quán)限表中,當(dāng)需要利用監(jiān)聽(tīng)權(quán)限表中的某個(gè)電話號(hào)碼作為監(jiān)聽(tīng)號(hào)碼時(shí),利用該號(hào)碼向被監(jiān)聽(tīng)端VOIP網(wǎng)關(guān)發(fā)送監(jiān)聽(tīng)請(qǐng)求;被監(jiān)聽(tīng)端VOIP網(wǎng)關(guān),用于接收監(jiān)聽(tīng)端VOIP網(wǎng)關(guān)發(fā)送來(lái)的監(jiān)聽(tīng)請(qǐng)求,建立監(jiān)聽(tīng)連接;所述監(jiān)聽(tīng)端VOIP網(wǎng)關(guān)包括:監(jiān)聽(tīng)號(hào)碼注冊(cè)模塊,用于建立監(jiān)聽(tīng)權(quán)限表,對(duì)有監(jiān)聽(tīng)需求的電話號(hào)碼進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)后,將其添加至監(jiān)聽(tīng)權(quán)限表中,使其獲得監(jiān)聽(tīng)權(quán)限;監(jiān)聽(tīng)請(qǐng)求發(fā)送模塊,用于判斷呼叫號(hào)碼是否具有監(jiān)聽(tīng)權(quán)限,如果有監(jiān)聽(tīng)權(quán)限則向被監(jiān)聽(tīng)端VOIP網(wǎng)關(guān)發(fā)送監(jiān)聽(tīng)請(qǐng)求,如果無(wú)監(jiān)聽(tīng)權(quán)限則不予處理;外線監(jiān)聽(tīng)服務(wù)模塊:用于將需要使用監(jiān)聽(tīng)服務(wù)的外線號(hào)碼與監(jiān)聽(tīng)權(quán)限表中具有監(jiān)聽(tīng)權(quán)限的電話號(hào)碼建立映射關(guān)系,并在外線號(hào)碼發(fā)起監(jiān)聽(tīng)請(qǐng)求時(shí),以映射關(guān)系中對(duì)應(yīng)的具有監(jiān)聽(tīng)權(quán)限的電話號(hào)碼作為主叫號(hào)碼請(qǐng)求監(jiān)聽(tīng);和/或超時(shí)注銷(xiāo)模塊:對(duì)監(jiān)聽(tīng)權(quán)限表中的電話號(hào)碼進(jìn)行計(jì)時(shí)監(jiān)控,若某個(gè)電話號(hào)碼從獲得監(jiān)聽(tīng)權(quán)限開(kāi)始一定時(shí)間內(nèi)仍未使用,則注銷(xiāo)該電話號(hào)碼的監(jiān)聽(tīng)權(quán)限。
[0009]然而,現(xiàn)有的VoIP監(jiān)聽(tīng)方法一般都是在核心控制方,在核心控制方設(shè)置監(jiān)聽(tīng)處理裝置,雖然不會(huì)增加網(wǎng)絡(luò)復(fù)雜度,但會(huì)增加核心控制方的負(fù)載和復(fù)雜度,也會(huì)增加成本投入。還有一些方法通過(guò)發(fā)送SIP信令的方式改變?cè)O(shè)備媒體通信端口,將語(yǔ)音媒體流導(dǎo)向監(jiān)聽(tīng)設(shè)備,雖然不會(huì)增加SIP服務(wù)器的負(fù)載,但在通話過(guò)程中突然改變通信端口,容易被察覺(jué);而且當(dāng)被監(jiān)聽(tīng)方處于對(duì)稱(chēng)型NAT的環(huán)境下時(shí),改變通信端口是無(wú)法將媒體流導(dǎo)向監(jiān)聽(tīng)設(shè)備的。
【發(fā)明內(nèi)容】
[0010]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法及系統(tǒng),被監(jiān)聽(tīng)設(shè)備處于對(duì)稱(chēng)型NAT之后,只需在VoIP服務(wù)器和STUN/TURN服務(wù)器之間進(jìn)行兩次報(bào)文交互,既不改變被監(jiān)聽(tīng)設(shè)備的信令流程,也無(wú)需在STUN/TURN服務(wù)器上增加額外裝置,即可實(shí)現(xiàn)VoIP語(yǔ)音監(jiān)聽(tīng),而且不會(huì)被察覺(jué)。
[0011]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)系統(tǒng)包括VoIP服務(wù)器、作為被監(jiān)聽(tīng)設(shè)備的SIP客戶(hù)端、STUN/TURN服務(wù)器和監(jiān)聽(tīng)設(shè)備;所述STUN/TURN服務(wù)器用于與所述SIP客戶(hù)端進(jìn)行兩次STUN報(bào)文交互,反饋地址信息至所述SIP客戶(hù)端;其中,第一次STUN報(bào)文交互時(shí),反饋所述SIP客戶(hù)端NAT之后的地址信息以及所述STUN/TURN服務(wù)器的地址信息至所述SIP客戶(hù)端;第二次STUN報(bào)文交互時(shí),反饋所述監(jiān)聽(tīng)設(shè)備的地址信息至所述SIP客戶(hù)端;所述SIP客戶(hù)端用于將兩次與STUN/TURN服務(wù)器進(jìn)行STUN報(bào)文交互所獲取的地址信息分別封裝在SDP報(bào)文里,向VoIP服務(wù)器發(fā)出第一邀請(qǐng)請(qǐng)求和第二邀請(qǐng)請(qǐng)求;所述VoIP服務(wù)器用于配置SIP客戶(hù)端的監(jiān)聽(tīng)權(quán)限列表,根據(jù)接收到的所述第一邀請(qǐng)請(qǐng)求查看所述監(jiān)聽(tīng)權(quán)限列表,在判斷所述SIP客戶(hù)端需要被監(jiān)控時(shí),通知所述STUN/TURN服務(wù)器啟動(dòng)監(jiān)聽(tīng)流程,并將所述監(jiān)聽(tīng)設(shè)備的地址信息和所述SIP客戶(hù)端NAT之后的地址信息發(fā)送至所述STUN/TURN服務(wù)器;根據(jù)接收到的所述第二邀請(qǐng)請(qǐng)求,與所述SIP客戶(hù)端進(jìn)行SIP信令交互來(lái)實(shí)現(xiàn)連通性檢查;所述監(jiān)聽(tīng)設(shè)備用于作為所述SIP客戶(hù)端的VoIP語(yǔ)音流的中繼服務(wù)器來(lái)進(jìn)行監(jiān)聽(tīng)。
[0012]根據(jù)上述的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)系統(tǒng),其中:所述地址信息包括IP地址和端口信息。
[0013]根據(jù)上述的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)系統(tǒng),其中:所述SIP客戶(hù)端通過(guò)與所述STUN/TURN服務(wù)器進(jìn)行STUN報(bào)文交互來(lái)收集所述SIP客戶(hù)端NAT之后的地址信息以及所述STUN/TURN服務(wù)器的地址信息,并封裝在SDP報(bào)文里,向所述VoIP服務(wù)器發(fā)出第一邀請(qǐng)請(qǐng)求。
[0014]根據(jù)上述的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)系統(tǒng),其中:所述SIP客戶(hù)端通過(guò)與所述STUN/TURN服務(wù)器進(jìn)行STUN報(bào)文交互來(lái)收集所述監(jiān)聽(tīng)設(shè)備的地址信息,并封裝在SDP報(bào)文里,向所述VoIP服務(wù)器發(fā)出所述第二邀請(qǐng)請(qǐng)求。
[0015]根據(jù)上述的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)系統(tǒng),其中:所述VoIP服務(wù)器采用SIP協(xié)議結(jié)構(gòu)。
[0016]同時(shí),本發(fā)明還提供一種基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法,包括以下步驟:
[0017]步驟S1、VoIP服務(wù)器設(shè)置SIP客戶(hù)端的監(jiān)聽(tīng)權(quán)限;
[0018]步驟S2、VoIP服務(wù)器接收SIP客戶(hù)端發(fā)送來(lái)的第一邀請(qǐng)請(qǐng)求,所述第一邀請(qǐng)請(qǐng)求由SIP客戶(hù)端與STUN/TURN服務(wù)器進(jìn)行STUN報(bào)文交互所獲取的SIP客戶(hù)端NAT之后的地址信息以及STUN/TURN服務(wù)器地址信息封裝在SDP報(bào)文中形成的;
[0019]步驟S3、VoIP服務(wù)器根據(jù)設(shè)置的SIP客戶(hù)端的監(jiān)聽(tīng)權(quán)限,判斷所述SIP客戶(hù)端需要被監(jiān)控,并向所述SIP客戶(hù)端發(fā)出反饋信息;
[0020]步驟S4、VoIP服務(wù)器通知STUN/TURN服務(wù)器啟動(dòng)監(jiān)聽(tīng)流程,并將監(jiān)聽(tīng)設(shè)備的地址信息和SIP客戶(hù)端NAT之后的地址信息發(fā)送至STUN/TURN服務(wù)器;
[0021]步驟S5、VoIP服務(wù)器接收SIP客戶(hù)端發(fā)送來(lái)的第二邀請(qǐng)請(qǐng)求,所述第二邀請(qǐng)請(qǐng)求由SIP客戶(hù)端與STUN/TURN服務(wù)器進(jìn)行STUN報(bào)文交互所獲取的監(jiān)聽(tīng)設(shè)備的地址信息封裝在SDP報(bào)文中形成的;
[0022]步驟S6、VoIP服務(wù)器與SIP客戶(hù)端之間進(jìn)行SIP信令交互來(lái)實(shí)現(xiàn)連通性檢查,使得監(jiān)聽(tīng)設(shè)備作為SIP客戶(hù)端的VoIP語(yǔ)音流的中繼服務(wù)器來(lái)進(jìn)行監(jiān)聽(tīng)。
[0023]根據(jù)上述的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法,其中:所述地址信息包括IP地址和端口信息。
[0024]根據(jù)上述的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法,其中:所述步驟S3中,所述VoIP服務(wù)器向SIP客戶(hù)端發(fā)出的反饋信息為響應(yīng)狀態(tài)碼480。
[0025]根據(jù)上述的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法,其中:所述VoIP服務(wù)器采用SIP協(xié)議結(jié)構(gòu)。
[0026]根據(jù)上述的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法,其中:所述監(jiān)聽(tīng)設(shè)備的地址配置在所述VoIP服務(wù)器上。
[0027]如上所述,本發(fā)明的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法及系統(tǒng),具有以下有益效果:
[0028](I)不會(huì)增加額外的網(wǎng)絡(luò)負(fù)擔(dān);
[0029](2)不會(huì)增加監(jiān)聽(tīng)設(shè)備的負(fù)載;
[0030](3)既不用改變被監(jiān)聽(tīng)設(shè)備的信令流程,也無(wú)需在服務(wù)器上增加額外裝置,即可實(shí)現(xiàn)VoIP語(yǔ)音監(jiān)聽(tīng),而且不會(huì)被察覺(jué);
[0031](4)VoIP語(yǔ)音監(jiān)聽(tīng)過(guò)程從語(yǔ)音發(fā)起即被執(zhí)行,通話過(guò)程中不會(huì)更改媒體信息。
【附圖說(shuō)明】
[0032]圖1顯示為本發(fā)明的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)系統(tǒng)的結(jié)構(gòu)示意圖;
[0033]圖2顯示為本發(fā)明的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法的流程圖;
[0034]圖3顯示為本發(fā)明的基于對(duì)稱(chēng)型NAT的VoIP語(yǔ)音監(jiān)聽(tīng)方法的框架結(jié)構(gòu)示意圖。
[0035]元件標(biāo)號(hào)說(shuō)明
[0036]I VoIP 服務(wù)器
[0037]2 SIP 客戶(hù)端
[0038]3 STUN/TURN 服務(wù)器
[0039]4監(jiān)聽(tīng)設(shè)備
【具體實(shí)施方式】
[0040]以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書(shū)所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說(shuō)明書(shū)中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒(méi)有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。
[004