SIP协议

SIP会话初始协议(Session Initiation Protocol) 是一个控制发起、修改和终结交互式多媒体会话的信令协议。

SIP的六种基本方法:

在这里插入图片描述

另外,还有一些扩展方法SUBSCRIBE、NOTIFY、MESSAGE、REFER、INFO等。

SIP必须包含的头域:

在这里插入图片描述

SIP响应消息状态码:

 1xx 组的响应为临时状态,表明呼叫进展的情况;
 2xx 表明请求已被成功收到、理解和接受;
 3xx 为重定向,表明SIP请求需要转向到另一个UAS处理;
 4xx 表明请求失败,这种失败一般是由客户端或网络引起的,如密码错误、空号等,客户端应该重新修改请求,重新发送;
 5xx 为服务器内部错误,表明服务器出错,不能响应合法的请求;
 6xx 为全局性错误,如 600 Busy Everywhere。

SIP注册流程:

在这里插入图片描述

描述:

(1) Alice向FreeSWITCH发起注册请求。
(2) FreeSWITCH返回401消息,向Alice发起Challenge(挑战)。
(3) Alice将用户密码与收到Challenge信息进行计算后,把计算结果附加到注册请求上重新注册。
(4) FreeSWITCH收到新的注册请求后,对信息解密认证,如果认证通过返回200 OK,告诉Alice注册成功,并将Alice的联系地址记录下来。如果认证失败返回403 Forbidden或其他消息。

 UA间直接呼叫流程:

在这里插入图片描述

描述:

 Bob向Alice发送INVITE消息请求建立SIP会话。
 Alice收到INVITE消息后,回复100 Trying消息,告知Bob已经收到消息,正在处理。
 Alice的电话振铃,并回复给Bob 180 Ringing消息,Bob收到此消息播放回铃音,以提示Bob对方正在振铃。
 Alice接听电话,向Bob发送200 OK消息。
 Bob收到200 OK消息后,发送ACK确认消息。
 使用RTP协议传输语音数据进行通话。
 Alice挂断电话,发送BYE消息给Bob。
 Bob收到BYE消息后,发送200 OK,至此通话结束。

通过B2BUA(freeSWITCH)呼叫流程:

在这里插入图片描述

在这里插入图片描述

(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 一个事务

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值