您的位置:首页 > 其它

SIP注册过程

2012-12-31 16:39 441 查看
SIP的注册过程很容易理解。首先我有一个号码,但我的号码可以移动的话,那服务器如何才能找到我呢?SIP的注册机制将sip终端的位置报告给注册服务器。这里的注册服务器仅仅是一个逻辑角色。并不一定是独立的物理实体。他可以和代理服务器是同一物理设备。

SIP终端如何发现代理服务器。也就是说它是怎么知道向那一台注册服务器注册,而且他又是如何知道这一台注册服务器的IP地址的呢?

这在sip中有详细介绍。关于发现注册服务器。可以使用多播,UA应当使用通用的SIP服务器定位机制。

在分析注册之前要知道:SIP的URI格式,它是类似于email的地址格式的。在这里一个SIP电话的号码是固定的,他是否是对应多个SIP URI呢?这不是SIP规定的,应该是服务商自行规定的吧。

一个SIP URI对应了一个域,也即服务提供商的域。UA 应该使用通用的SIP 服务器定位机制,将主机部分的记录地址作为请求的

Request-URI 和地址。例如,UA 为用户“sip:carol@chicago.com”将REGISTER 请求寻址到

“sip:chicago.com”。有了服务提供商的域名,当然可以解析到域名的IP。也即找到了注册服务器。这是最通用的注册服务器定位机制。

接下来看一个注册请求:

REGISTER sip:127.0.0.1 SIP/2.0  
//服务器所在的域,因为服务器和客户端在同一台电脑下。将服务器的域名设置为了127.0.0.1。

Via: SIP/2.0/ ;branch=z9hG4bK-d8754z-1433645714336457-1---d8754z-;rport

Max-Forwards: 70

Contact: <sip:bob;rinstance=994e586a994e586a>

To: <sip:bob@127.0.0.1> 
//我理解的是为哪一个用户注册的。是一个完整的SIP用户的SIP URI。因为发出注册请求的并不一定是SIP用户本身。所以要有from头域

From: <sip:bob@127.0.0.1>;tag=85400e47      //谁发起的注册,就是谁的SIP URI,tag是干嘛使得?//该字符串用于身份鉴别,具体如何使用,还不是很理解。还希望指点

Call-ID: OWM3MTM4ZjE1NDBjNTJjZTc2OWVjZGIxMjM3NmI4NTE. //我理解的是同一个SIP客户端的call-id是相同的。因为同一个sip客户端会间隔一定的时间就注册一次。在注册服务器里面用户的注册信息保留一定的时间,保存的时间并不是SIP规定的。

CSeq: 1 REGISTER  //CSeq 值保证REGISTER 请求适当的排序。对于每个使用相同的Call-ID 的REGISTER 请求,UA 必须逐一增加Cseq 值。

Expires: 70   //注册绑定时间为70s。

Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, UPDATE, INFO, MESSAGE

Content-Length: 0

 

以上注册请求中,其中绿色字体的头域为必选的。

这是客户端的请求注册信息。注册服务器给予处理注册。

服务器的处理注册请求将在下一节中讲述

欢迎大家讨论啊。

QQ:1371176690

lyyslsw1230@163.com

87649598 (SIP协议栈resiprocate讨论群)。

欢迎大家一起讨论啊。

87649598876495988764959887649598

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  resiprocate SIP