@小刘要快乐
基础知识点
1.SIP:会话发起协议,VOIP信令协议,目的是在IP网络中实现电话功能,即软电话功能。SIP协议是纯文本协议(消息体全部由代码自定义显示),通常UDP承载,端口号:5060.
2.SIP组成
请求行 or 状态行
消息头
正文
3.SIP消息分类:请求消息和响应消息
请求消息:request invite,ack,options,bye,cancel,register
响应消息:response 1XX,2XX,3XX,4XX,5XX,6XX响应消息
4.请求行方法
method:方法说明
register:注册联系信息
invite:发起会话请求
ack:invite请求的响应确认
cancel:取消请求
bye:终结绘画
options:查询服务器能力
5.状态行状态码
1XX:临时响应,表示请求消息正被处理
2XX: 成功响应,表示请求已被成功接收完全理解并接收
3XX:重定向响应,表示需采取进一步完成请求
4XX:客户机错误,表示请求消息中包含语法错误信息或服务器无法完成客户机请求
5XX:服务器 cuowu,表示服务器无法合法完成请求
6XX:全局故障,表示任何服务器都无法完成该请求
常用的状态码举例
100:tying 试呼叫
180:Ringing 振铃
181:CAll is being forwarded 呼叫正在前转
200:ok 成功响应
302:moved temporarily 临时迁移
400:错误请求
401:unauthorized 未授权
403:forbidden 禁止
404:用户不存在
408:请求超时
480:无人接听
486:线路忙
504:服务器超时
600:全忙
组网图
各种流程
注册流程
基本呼叫建立流程
(对方忙报文)
正常呼叫流程
被叫无应答1
被叫无应答2
验证环节
正常呼叫+释放
invite:发起会话请求
prack:除了100 Trying之外的所有临时应答消息
状态:100 trying
状态:180 响铃
状态:200OK
bye:挂断
被叫忙呼+释放
被叫无应答1
被叫无应答2
语音编码形式
在invite报文中可以查看
注册服务器(registrar)返回一个200(OK)应答。这个应答必须包含Contact头域,并且这个头域的值中列举了所有当前绑定的注册信息。每一个Contact值都必须包含一个”expires”参数,用来标志还有多久这个绑定信息就过期了。应答也必须包含一个Date头域。