注册功能主要是向注册服务器的地址记录增加、删除或是查询一个或是多个终端的实际联系地址。这样,当一个request消息发 送到代理服务器的时候,就用request消息的request-URI去与地址记录进行匹配,如果匹配上,找出实际联系地址,转发request消息到这个实际地址上。
注册消息必须包含如下这些头域:
request-URI:指明了要向那个服务器进行注册
to:指明了要注册到的地址记录中的“逻辑”URI内容,to与request-uri的内容不同,多了一个用户名称;
from:指明了注册的发起人,和to相同,除了这个注册消息是第三方代理发起的外;
call-id:所有UAC发出的register请求都要是同一个call-id
Cseq:
contact:下面有介绍
增加绑定:
增加绑定就是在注册服务器上,增加一个“逻辑”地址记录与实际地址记录的映射对。增加绑定成功后,就可以发送后续请求,去更新或是删除这个绑定。需要注意的是,注册并不是每一次都需要重新进行绑定,大部分时间注册都是用来更新绑定的。
在发去注册请求的时候,可以在包含一个过期参数,这个参数指明了这个绑定的实际地址的有效期是多少。这个可以通过expires头域来完成。
contact头域中可以有有多个值,这说明想要把多个实际地址与To头域中的逻辑地址记录相关联。如果contact头域中没有值,那么表示的是不需要更新,所以第一次进行绑定的时候,contact头域是不可缺少的。之后如果不想更改绑定那么可以没有contact头域。当发送一个request的时候,无论有没有contact头域UAS应答中都会包含一个完整的