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/ ;