我是靠谱客的博主 典雅台灯,最近开发中收集的这篇文章主要介绍SIP协议注册流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 注册时,客户端与服务器交互的数据包如下:

 

 

1.1 UAC->UAS 

UACUAS注册,下面是具体注册消息

 

From字段:指明该REGISTER请求消息由UASIP地址:192.169.1.102)控制的UAC发起的。

To字段:指明REGISTER请求接收方的地址。此时REGISTER请求的接收方为IP地址为192.169.1.230的UAS。(这个值和To头域的值相同,除非这个请求是第三方发起的注册请求。)

Call-ID字段:UAC发出的给某个注册服务器(registrar)的所有注册请求都应该有相同的Call-ID头域值。如果相同的客户端用了不同的Call-ID值,注册服务器(registrar)就不能检测是否一个REGISTER请求由于延时的关系导致了故障。

Cseq字段:Cseq值保证了REGISTER请求的正确顺序。一个UA为每一个具备相同的Call-IDREGISTER请求顺序递增这个Cseq字段。

Contact字段:在REGISTER请求中的Contact字段指明用户可达位置。

Expires字段:表示该登记生存期为600s

Content-Length字段:表明此请求消息消息体的长度为空,即此消息不带会话描述。

 

1.2 UAS->UAC

UAS返回401 Unauthorized(无权限)响应,表明要求对UAC进行用户认证,并且通过WWW-Authenticate字段携带UAS支持的认证方式,产生本次认证的nonce

 

 

1.3 UAC->UAS

UAC将服务器发送过来的nonce,以及releam, user等信息一起通过“MD5”做hashUAC重新向UAS发起注册请求,携带WWW-Authorization字段。

 

 

1.4 UAS->UAC

UAS收到UAC的注册请求,首先检查NONCE的正确性,如果和在401 Unauthorized响应中产生的NONCE相同,则通过。否则,直接返回失败。然后,UAS会根据NONCE、用户名、密码(服务器端可以根据本地用户信息获取用户的密码)、URI等采用和终端相同的算法生成RESPONSE,并且对此RESPONSE和请求消息中的RESPONSE进行比较,如果二者一致则用户认证成功,否则认证失败。此时,UAS返回200 OK响应消息,表明终端认证成功。

 

最后

以上就是典雅台灯为你收集整理的SIP协议注册流程的全部内容,希望文章能够帮你解决SIP协议注册流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部