Call-ID: 34a5d553192cc35@ 15.34.3.1 Call-ID: 44fer23ei4291dekfer34231232 i: 35866383092031257@port34.carrier.com
6.1.4 Contact(联系)标题头
Contact标题头用于传递一个用以识别资源请求或者请求发起人的URI,这依靠它是否存在于一个请求或者应答中。一旦收到一个Contact标题头,它所包含的URI可以被缓冲并且被同一个会话中将来的一个请求所用。例如:在一个呼叫绕开代理服务器直接到被呼叫用户的会话期间,Contact标题头用在针对INVITE请求应答一个200 OK来确认ACK消息等等的将来请求。然而,在用户代理中存在较早地路由报头字段的请求或缺省的代理路由配置可以不用考虑Contact标题头。当一个Contact URI用于一个请求URI时,除method参数外的的其他URI参数都是有效的,而method参数将被忽视。
Contact标题头必须存在于INVITE请求和针对这个邀请的200 OK的应答中。有时,直接到用户代理的Contact URI可以不必解析。例如:一个处于防火墙 ALG(Application Layer Gateway)后面的UA需要使用Contact URI 来决定防火墙 ALG(Application Layer Gateway)的地址。否则,由于防火墙阻止任何直接到来的SIP请求,因此通过利用UA的URI的Contact可能导致呼叫失败。Contact标题头可能同时存在于1xx,2xx,3xx,和485的应答中。唯一一个用在REGISTER请求的Contact的标题头用来删除全部已经存在的登记信息,它有着专用的格式:Contact:*和Expires:0一起使用。 除表格4.3中列出的可以用在注册请求的标题头以外,所有Contact标题头都不允许使用通配符。Contact 标题头值中还可以引入一个显示名称,当Contact 头字段包含一个显示名称的时候,即使显示名称为空,带有所有的URI 参数的URI 应放于三角括号<>中,否则,URI 后面的参数都认为是头字段参数而不是URI 参数。