SIP会话初始协议(Session Initiation Protocol) 是一个控制发起、修改和终结交互式多媒体会话的信令协议。
SIP的六种基本方法:
另外,还有一些扩展方法SUBSCRIBE、NOTIFY、MESSAGE、REFER、INFO等。
SIP必须包含的头域:
SIP响应消息状态码:
复制代码
1
2
3
4
5
6
71xx 组的响应为临时状态,表明呼叫进展的情况; 2xx 表明请求已被成功收到、理解和接受; 3xx 为重定向,表明SIP请求需要转向到另一个UAS处理; 4xx 表明请求失败,这种失败一般是由客户端或网络引起的,如密码错误、空号等,客户端应该重新修改请求,重新发送; 5xx 为服务器内部错误,表明服务器出错,不能响应合法的请求; 6xx 为全局性错误,如 600 Busy Everywhere。
SIP注册流程:
描述:
复制代码
1
2
3
4
5(1) Alice向FreeSWITCH发起注册请求。 (2) FreeSWITCH返回401消息,向Alice发起Challenge(挑战)。 (3) Alice将用户密码与收到Challenge信息进行计算后,把计算结果附加到注册请求上重新注册。 (4) FreeSWITCH收到新的注册请求后,对信息解密认证,如果认证通过返回200 OK,告诉Alice注册成功,并将Alice的联系地址记录下来。如果认证失败返回403 Forbidden或其他消息。
UA间直接呼叫流程:
描述:
复制代码
1
2
3
4
5
6
7
8
9(1) Bob向Alice发送INVITE消息请求建立SIP会话。 (2) Alice收到INVITE消息后,回复100 Trying消息,告知Bob已经收到消息,正在处理。 (3) Alice的电话振铃,并回复给Bob 180 Ringing消息,Bob收到此消息播放回铃音,以提示Bob对方正在振铃。 (4) Alice接听电话,向Bob发送200 OK消息。 (5) Bob收到200 OK消息后,发送ACK确认消息。 (6) 使用RTP协议传输语音数据进行通话。 (7) Alice挂断电话,发送BYE消息给Bob。 (8) Bob收到BYE消息后,发送200 OK,至此通话结束。
通过B2BUA(freeSWITCH)呼叫流程:
描述:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21(1) Bob向FreeSWITCH发送INVITE消息,请求建立一个呼叫。 (2) FreeSWITCH收到INVITE消息,回复100 Trying告诉Bob已经收到消息,正在处理。 (3) FreeSWITCH发现不知道Bob是谁,所以向Bob发送407 Authentication Required 消息请求认证。 (4) Bob收到407消息后,回复ack确认已经收到。 (5) Bob重新发送带有认证信息的INVITE消息,请求建立呼叫。 (6) FreeSWITCH收到带认证信息的INVITE消息,回复100 Trying告诉Bob已经收到消息,正在处理。(Bob和FreeSWITCH的通道已经建立,称为一个Channel,a-lag建立成功) (7) FreeSWITCH知道Bob要呼叫Alice,此时去查找路由(拨号计划diaplan)和本地数据库,得到Alice的联系地址(Contact)。 (8) FreeSWITCH新启动一个UA去连接Alice,发送INVITE消息,同时携带着a-lag的的某些信息(如:来电显示等) (9) Alice端收到INVITE,向FreeSWITCH回复100 Trying消息,告知FreeSWITCH已经正常接收INVITE消息。 (10) Alice的话机振铃并向FreeSWITCH发送180 Ringing消息,通知FreeSWITCH Alice的话机已经振铃。 (11) FreeSWITCH收到Alice的180消息后,可以选择直接给Bob回180消息,也可以选择给Bob回183消息。(180消息由Bob自身产生回铃音,183消息由FreeSWITCH通过RTP发送回铃音给Bob,所以183消息这种技术支持的就是彩铃。) 默认是给Bob发送183消息。 (12) Bob收到183消息后开始播放回铃音,此时Alice振铃,Bob播放回铃音。 (13) 当Alice接起电话后,会发送200 OK给FreeSWITCH。 (14) FreeSWITCH收到Alice发送的200 OK之后,回送ACK,同时FreeSWITCH立即向Bob发送200 OK消息。 (15) Bob收到200 OK之后,会话已经建立,同时会回送ACK给FreeSWITCH。 (16) Bob和Alice通过RTP协议进行通话。 (17) Alice挂机,向FreeSWITCH发送BYE消息。 (18) FreeSWITCH收到BYE消息之后,回送200 OK,释放b-lag。 (19) 同时FreeSWITCH给Bob发送BYE消息,消息中包含挂机原因等内容。 (20) Bob收到消息之后,回送200 OK,FreeSWITCH收到200 OK后,释放a-lag。至此通话结束。
INVITE - 200 - ACK 三次握手
INVITE - 1xx - 200 一个事务
BYE - 200 一个事务
最后
以上就是秀丽黑米最近收集整理的关于SIP协议简单介绍的全部内容,更多相关SIP协议简单介绍内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复