SIP协议

您所在的位置:网站首页 sip注册过程 SIP协议

SIP协议

2023-08-20 02:29| 来源: 网络整理| 查看: 265

注册过程 注册过程图 这里写图片描述 Carol使用记录地址“sip:[email protected]”在SIP注册服务器的chicago.com域注册。chicago.com域的代理服务器将使用Carol的注册,将Carol的记录地址拿到定位服务中查询,找到真实终端地址,然后路由到Carol的真实终端。注册描述 如果用户要发起和另一个用户的会话,SIP必须发现可到达目的用户的当前主机。(代理服务器和重定向服务器——他们负责接收请求,决定要发送请求的用户位置,然后发送到相应位置。)这就需要特定域的地址绑定,这些地址绑定将输入的SIP和SIPS URI(如sip:[email protected])映射到想要的用户更近的一个或者多个URI(如sip:[email protected])。然后代理查询定位服务,找到用户代理。一个用户可能注册多个代理,Register请求可以进行添加、删除和查询绑定(200OK时候会返回绑定列表)。 注册过程头字段的含义 Request-URI:注册服务器指明的定位服务域,不能出现SIPS URI的userinfo和@组件。To:记录地址(一个记录地址可以绑定多个SIP终端),该字段和Request-URI主要不同在于该字段包含用户名(要和用户绑定肯定要加用户名),该字段相当于Key,每次发请求时候的To其实就是这个key,通过这个key来查找绑定的终端。From:如果不是第三方注册,就和To字段保持一致。Call-ID:对于同一用户的同一终端,注册和解绑时候的该字段是一致的。CSeq:每个使用相同Call-ID的请求,每次逐一增加该字段值。Contact:要绑定的SIP终端(可以理解为真实地址),即value,一个To绑定多个Contact。该字段有一个参数expires -expires:表示UA绑定有效时间。单位:秒。如果不提供该参数,则使用expires头字段的值代替。不规范的值视为3600(即一小时)。 Record-Route:该字段必须忽略。 删除绑定 可以通过给Register请求的Contact设置绑定时间为0,则会立即删除绑定。Contact字段为“*”表示用于所有注册,此时Expires头字段只能用0表示,即“*”只能用于解绑 提取绑定 -Register请求成功的响应会包含所有现有绑定。 更新绑定 -根据Contact字段Expires参数进行比较更新过期时间 注册服务器处理Register请求大致过程 检查Request-URI,确定是否可以访问该字段指定域的绑定,如果不能,可以当做代理服务器进行转发。认证UAC判断当前用户是否有权修改记录地址的注册,如果不行,返回403从To字段取出记录地址,如果记录地址不可用于R-U域,那么注册服务器发送404结束。检查Contact依次处理Contact头字段每个联系地址,每个地址按照如下方法更新过期时间 字段有expires参数,此值当做过期时间没有该参数,但是有Expires字段,此值作为过期时间都没有,本地配置默认时间当做请求到期时间

搜索当前绑定列表,如果绑定不存在,暂时添加。如果绑定存在,检查Call-ID值,如果现有绑定的Call-ID值与请求中的Call-ID不同,如果过期时间间隔为0或者有其他更新,必须删除绑定。如果相同,比较CSeq值,如果高于绑定的值,就要进行更新了。

SIP注册流程包分析

下面是两个客户端1和2,客户端都位于139,注册服务器位于168

用户2向注册服务器发起请求 这里写图片描述

-Request-URI:168域(注册服务器域) -Contact:表示要绑定的SIP客户端地址 -Expires:10分钟过期 -To:客户名@168域,From和To一致 -Call-ID:SIP客户端一致时保证该字段一致 -CSeq:1

注册成功响应返回 这里写图片描述

Contact:返回现有绑定列表

用户2向服务器注册另一个客户端地址 这里写图片描述

-Contact:新的客户端地址 -Call-ID:绑定新的客户端地址,所以产生新的该字段 -CSeq:1

用户2注册第二个地址成功的响应 这里写图片描述

Contact:返回现有列表,可以看出来新增了绑定

用户1注册第二个地址(第一个未截取图,所以CSeq是2) 这里写图片描述

用户1注册成功返回响应 这里写图片描述

用户2解绑5060端口的客户端 这里写图片描述

-Call-ID:跟之前的5060端口注册时候一样 -Expires:为0表示解绑 -CSeq:在之前的基础上加1

解绑成功响应 这里写图片描述 -Contact:比之前少了一个绑定地址

最终建立通话时候使用的目的地址To都是地址记录(即key),如sip:[email protected],sip:[email protected],定位服务进行解析查找绑定的实际客户端地址,使用实际地址去建立通话连接,如sip:[email protected]:5060,sip:[email protected]:61509,sip:[email protected]:5060。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3