SIP协议简介

SIP协议简介

SIP组件SBC 边界会话控制器sip注册过程sip服务器的类型代理服务器重定向服务器背靠背UA服务器常用sip请求方法sip响应状态码sip对话流程图请求与响应报文事务与对话的区别sip底层协议voip总体架构SIP是VoIP的基石,相当于HTTP协议在Web服务器里的角色。如果你熟悉HTTP协议,那么你可以在SIP协议中找到许多和HTTP中熟悉的东西,例如请求头,请求体,响应码之类概念,这是因为SIP协议的设计,很大程度上参考了HTTP协议。

如果想要学习VoIP,那么SIP协议是你务必掌握敲门砖。

SIP组件

UAC: 例如sip终端,软电话,话机UAS: sip服务器UA: ua既可以当做uac也可以当做uas代理服务器重定向服务器注册服务器网关PSTN 公共交换电话网

SBC 边界会话控制器sbc(session border controller)

sip注册过程

下面简化注册逻辑,省略了验证和过期等字段:

对于分机来说,注册服务器的地址是需要设置的分机向注册服务器发请求,说:你好,注册服务器,我是8005,我的地址是200.180.1.1,以后你可以用这个地址联系我。注册服务器回复:好的,注册成功

sip服务器的类型

代理服务器

重定向服务器

背靠背UA服务器背靠背UA服务器有两个作用

隐藏网络拓扑结构有些时候,路由无法到达,只能用背靠背UA服务器

常用sip请求方法比较常用的是下面的

常用的几个是:register, invite, ack, bye, cancel。除了cancel和ack不需要认证外,其余的请求都需要认证。register自不必说,invite和bye是需要认证的。

对于我们不信任的ua,我们不允许他们呼叫。对于未认证的bye,也需要禁止。后者可以防止恶意的bye请求,挂断正常的呼叫。

invite除了re-invite的情况,其余的都属于初始化请求,需要着重关心的。而对于bye这种序列化请求,只需要按照record-route去路由。

sip响应状态码

sip对话流程图

从上图可以看出,从invite请求到200ok之间的信令,都经过了代理服务器。但是200ok之后的ack,确没有经过代理服务器,如果想要所有信令都经过代理服务器,需要在sip消息头record-routing 指定代理服务器的地址

请求与响应报文

事务与对话的区别重点:

从INVITE请求到最终的响应(注意1xx不是最终响应,非1xx的都是最终响应)之间,称为事务。一个事务可以带有多个消息组成,并经过多个ua。ack请求比较特殊,但是ack不是事务。如果被叫接通后,超时未收到主叫方的ack, 会怎样?是否会再次发送200OKtcp三次握手建立连接,sip:invite->200ok->ack,可以理解为三次握手建立对话。bye请求和200ok算作一个事务dialog建立的前提是呼叫接通,如果呼叫没有接通,则没有dialog。dialog可以由三个元素唯一确定。callId, from字段中的tag, to字段中的tag。

sip底层协议

voip总体架构

相关手记

365体育投注网站 cf空白昵称代码大全,这些符号都可以复制
365bet线上网址 海贼王:海军招募如何加强革命军的地位
365bet投注网 低空经济要来了?亿航载人航空器定价239万元,小鹏飞行汽车年底开启预订
365bet线上网址 中国最姐的女人,统治半个娱乐圈
365bet线上网址 冰球世锦赛加拿大队第26次夺冠 俄罗斯7-2美国
365bet投注网 openGL 深度格式 深度测试