發送視頻和音頻也是需要經過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,還是多個公用,如果是多個共用,那麼是怎麼確保數據的發送是一對一通過中所需要的。
請這方面的高手幫忙解答下,本人不勝感激