我只是對SIP如何運作感到困惑,但我的不然. 在此之后,我下載了一個基于SIP的開源VOIP應用程序,并在SIP代理上注冊這兩部手機,讓他們互相通話,這非常有效. 我對SIP如何在蜂窩網(wǎng)絡上工作感到困惑,SIP是一個p2p協(xié)議,SIP代理只是用于重定向.這兩部手機在VOIP會話中如何相互連接?為什么這個連接沒有被操作符阻止?有人可以向我解釋一下嗎?先感謝您! 更新:我剛嘗試在AT& T和SPRINT網(wǎng)絡之間發(fā)送UDP數(shù)據(jù)包,它不起作用;( 解決方法: 在基本SIP中,端點媒體流量通常以P2P方式直接在彼此之間進行通信.他們這樣做是在SIP SDP協(xié)商中給予彼此地址/端口. 在“完美”的網(wǎng)絡世界中,這可以很好地工作,因為所有端點可以在彼此之間直接對話. 我們知道,事實并非如此. 在大多數(shù)情況下,IPv4世界的主要障礙是NAT. 人們提出的第一個解決方案是STUN.STUN將為您提供您在NAT后面使用的“公共”IP地址,SIP堆棧將在SIP / SDP數(shù)據(jù)包中使用該IP地址.只要hole punching有效,這就有效. 人們想出的下一個解決方案是TURN.TURN是UDP代理并且允許客戶端(例如SIP客戶端)從公共網(wǎng)絡(即因特網(wǎng))分配和使用專用網(wǎng)絡上的IP地址/端口.它應該適用于所有情況,但可能會在TURN服務器上產(chǎn)生大量網(wǎng)絡開銷.它不如P2P連接那么高效.使用TURN的好處是,雙方都不需要支持它才能工作.因此,當您在互聯(lián)網(wǎng)上的軟電話與內(nèi)部網(wǎng)絡上的硬件SIP設備之間進行通話時,這是很好的. 人們提出的下一個解決方案是ICE.兩個SIP端點都需要支持ICE.它的工作原理是擴展SDP協(xié)議,允許它在SDP協(xié)商中添加所有可能的連接(所有本地網(wǎng)絡適配器,STUN提供的公共地址和優(yōu)先順序的TURN分配地址).然后一方通過列出的連接并嘗試建立連接.這允許兩個連接“嘗試”連接P2P并回退到TURN連接,如果沒有其他工作.它還應該在任何網(wǎng)絡環(huán)境中工作到任何網(wǎng)絡環(huán)境,并在SIP端點之間找到最有效的網(wǎng)絡路徑. ICE的缺點是兩個SIP端點都需要支持ICE才能工作. (另外,ICE / TURN / STUN現(xiàn)在是WEBRTC協(xié)議的要求,因為Web瀏覽器出于同樣的原因在彼此之間進行通信) 其他可能的解決方案是讓你在中間有一些“智能”sip代理,如果另一方不支持它,可能會在一方假裝ICE.如果需要轉(zhuǎn)碼,則另一種是擁有某種媒體網(wǎng)關(guān)或B2BUA,這將與TURN tho具有相同的問題. 我建議您盡可能使用STUN,TURN和ICE設置SIP客戶端,這將增加SIP呼叫實際工作的可能性. 至于為什么你的案例現(xiàn)在不起作用,它需要網(wǎng)絡和/或SIP日志來了解確切的障礙是什么. 來源:https://www./content-4-266451.html |
|