我遇到的情况是我的sip客户端发送一个没有IP地址的呼叫ID取消注册。 呼叫ID:ZbTZ3VwsZoknVtlvROGGsOO8pt0hpFi。 此消息导致200 OK响应的循环,因为来自同一客户端的下一个注册消息的via头被更改。
情况如下
取消注册:LanClient --->代理 - >服务器
响应
重复:
100尝试:服务器 - >代理 - xx-> LanClient
200 Ok:服务器 - >代理 - xx-> Lanclient
转到
当一个注销消息(即expires = 0的注册消息)进入服务器时,Via头包含我们代理的WAN IP而不是LAN客户端IP。这导致来自服务器的响应转到WAN IP而不是局域网IP。
我很好奇的是,在服务器注册的多个客户端中,只有问题客户端消息具有没有IP地址的Call-ID字段。 我知道我们可以拥有没有IP地址的呼叫ID。如何拥有IP或者在呼叫ID中拥有IP会对我的情况产生影响......
答案 0 :(得分:1)
Call-Id
标头的值只是一个字符串,至少从请求的接收者的角度来看。
当客户注销时,应使用与注册时相同的Call-Id。
我不理解Via标题部分。显然,连续的REGISTER请求(以及其他消息)具有不同的Via头,因为每个事务的分支参数都是新的。