Sipdroid解惑之SIP和RTP的關係?

最剛開始看Sipdroid的時候,從RFC3261的協議中我大致是這樣認爲的:

發送視頻和音頻也是需要經過SIP協議封裝的,這2天在研究Sipdroid中音視頻通話那塊的時候,我發現我完全的理解錯了。

SIP協議其實不難,就那麼幾個,註冊消息,會話邀請消息,結束通話消息等等。

RTP也不難,頭部12個字節是RTP頭部消息,包含了RTP的基本消息,頭部有一個payload的有效荷載長度信息,就是咱們需要傳遞和接受的音頻和視頻數據包的有效長度。

那麼SIP和RTP到底是哈關係呢?

其實沒哈關係,SIP和RTP是相互獨立的兩個功能塊,SIP消息和服務器通信,告訴服務器雙邊通信的狀態,當雙邊都進入通話和視頻的過程中,那麼就完全的走RTP了,RTP採用數據報包的方法,兩臺手機同時connect(ip,port);只要一個send,一個receiver就行了,數據就完成傳輸了。

什麼是數據報包?請參見下面的文章:
http://www.shouyanwang.org/thread-4-1-1.html

通過SIP和RTP這2個東東,又充分了說明了,Sipdroid高內聚低耦合的特點。

但是還是有疑問的,這個設計到很多方面的東西:

1.數據報包的ip和端口是服務器返回的,還是手機設置裏面用的?

2.2個手機終端進行SIP通話,那麼這2個手機終端用的同一個數據報包的IP和port,還是多個公用,如果是多個共用,那麼是怎麼確保數據的發送是一對一通過中所需要的。

請這方面的高手幫忙解答下,本人不勝感激

轉自http://www.shouyanwang.org/thread-56-1-1.html

發佈了14 篇原創文章 · 獲贊 3 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章