2014-02-24 48 views
0

我已閱讀過有關SIP和RTP數據包流,但以SIP會話啓動時客戶端到客戶端之間有關RTP數據包流邏輯的問題結束。 我在Ubuntu(12.04)平臺上運行的Kamailio(V 4.0.4)服務器也是爲DNS和DHCP服務器配置的。 而以下是我的測試臺調校:關於RTP數據包流的查詢

                Kamailio server 
                  (DNS+ DHCP+Kamailio) 
                     | 
           Router <----------------------------> Switch<----------------------------> Router 
            |                  | 
           clientA <--------------------- RTP(audio/video) ? --------------------> client B 

現在,當建立SIP會話(SIP數據包必須經過的所有路由器和交換機達到Kamailio服務器),RTP會話將客戶A和B之間啓動B.但客戶對客戶的意義是什麼? 什麼是客戶端之間到達目的地的RTP數據包路徑? RTP數據包是否必須通過路由器並切換到目標客戶端? (即客戶端A --->路由器1 ---->交換機----->路由器2 ----->客戶機B)? 如果我將客戶端A和客戶端B連接到相同的路由器會怎麼樣?

PS:我還沒有配置任何媒體繼電器(RTPproxy /媒體代理)

請大家幫我澄清這一切疑慮。

任何人的幫助將不勝感激。

問候,

南迪尼

回答

0

在一個 「正常」 的SIP呼叫媒體RTP直接獲取客戶端之間發送。如果你嗅探SIP流量,你可以看到它的發展方向。

SIP INVITE dialog中,INVITE消息的正文通常採用'SDP'格式。你可以看到這是它的SDP格式,因爲SIP消息應該包括類似:

內容類型:應用/ SDP

的INVITE消息通常包含了被稱爲SDP供給,以及200 OK響應(當它來)通常會包含SDP答案。

example: - > 10.1.1.11:49174

[Offer] 

    v=0 
    o=alice 2890844526 2890844526 IN IP4 10.1.1.10 
    s= 
    c=IN IP4 10.1.1.10 
    t=0 0 
    m=audio 49170 RTP/AVP 0 8 97 
    a=rtpmap:0 PCMU/8000 
    a=rtpmap:8 PCMA/8000 
    a=rtpmap:97 iLBC/8000 

[Answer] 

    v=0 
    o=bob 2808844564 2808844564 IN IP4 10.1.1.11 
    s= 
    c=IN IP4 10.1.1.11 
    t=0 0 
    m=audio 49174 RTP/AVP 0 
    a=rtpmap:0 PCMU/8000 

在此要約/應答音頻媒體將發送/

10.1.1.10:49170 <之間收到

這將只是一個音頻編解碼器,它將被編碼爲G711u格式(PCMU 8hz)。

如果您問的是網絡流量在兩個端點之間傳輸的精度如何。這將很大程度上取決於心理網絡。從邏輯上講,它只是向每個地址發送數據包,而不是通過任何「服務器」。

+0

親愛的肖恩鮑威爾,謝謝你的回覆 – Nandini

+0

雅我接受你的答案,但我特別想知道RTP數據包從一個客戶端到另一個客戶端的流動情況(如你所說:10.1.1.10:49170 <--> 10.1.1.11:49174)就像我上面提到的設置一樣。當客戶端註冊到SIP服務器時,一旦SIP建立了信令路徑,則RTP將採取另一條路徑在客戶端之間傳輸媒體。所以在這種情況下,如果客戶端連接了不同的節點(WAP),這個RTP數據包將到達其他最終客戶端(以實現客戶端 - 客戶端連接)的路徑是什麼?或單一的WAP? – Nandini

+0

你的要求與SIP/RTP沒有真正的聯繫,而是聯網。你基本上問的是什麼時候從'a'發送數據包到'b'是如何到達那裏的。也許你需要閱讀OSI網絡模型。 http://en.wikipedia.org/wiki/OSI_model真的沒有人回答你的問題,它將高度依賴於你的確切網絡。唯一會混淆上述答案的其他情況是,如果一個或多個sip端點位於NAT路由器的後面,那麼在這種情況下,STUN,TURN和ICE可以發揮作用。 –