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

你可能感兴趣的:(服务器,手机,终端)