Sipdroid实现SIP(二): 呼叫请求

INVITE

许多介绍sip的文章没有介绍如下几点细节:html

重传, Timer A, Bspa

Transaction的有限状态机, 记录当前Transactin的进展状况.net

与INVITE消息相关的行为(Client侧行为)当SIP实体(包括UA和Proxy)发送INVITE消息 后,不管是可靠传送仍是不可靠传送,实体都会启动 Transaction保护,启动定时器B(Timer B=64*T1,若是T1=500ms,则此定时器为32S)。
在不可靠传送的状况下,实体同时会启动T1定时器(500ms),若是T1终结了没有收到任何响应消息,实体将会重发INVITE消息,之后的间隔分别为2T1,4T1,8T1,16T1,32T1,在此期间,若是收到响应消息,实体将会终止重发行为。
当定时器B(Timer B=64T1)终结时,若是实体仍然没有收到响应消息,实体将终止该呼叫请求。

根据rfc3261的这个文档解释,若是你的时延超过32s后那么任何一个事务都没法完成而致使你没法使用sip上的任何业务.
视频

摘自: https://zhidao.baidu.com/question/492010821261136492.htmlhtm

SDP

当INVITE OK, 两个UA终端之间开始音视频流传输时, SIP消息INVITE的"message body"里将携带SDP消息, 描述具体通讯内容. 在Sipdroid中SDP消息的实现是SessionDescription类.blog

会话描述的功能:事务

类SessionDescription将根据SDP协议格式化(处理)SIP消息体.ip

会话描述的基本内容:文档

会话等级描述(描述能够应用于整个会话和全部媒体流);get

0或者更多的媒体等级描述(描述仅只用于一种媒体流).

会话描述的详细内容:

会话等级描述以"v="开始, 直到第一个媒体流等级小节;

媒体流描述以"m="开始, 直到下一个媒体流描述, 或者本节描述的结束;

总体来讲, 会话等级值对全部媒体流都是默认的除非被新值覆盖.

 

参考资料

 [1]. SIP中一个INVITE消息的发起过程: http://blog.csdn.net/argpunk/article/details/7722880

相关文章
相关标签/搜索