//主要介绍和SIP有关的知识要点,帮助自己和可能有需要的人入门。
0.important references
非常有用的站点
Experience:
1.
STATUS:代决
DESCRIPTION: 如果在内网需要向外网的服务器进行注册,那么我们要注册的不是我们的内网地址,而是我们的网关地址,在CONTACT头域中要填网关地址。但是我们第一次注册的时候并不知道网关地址,我们通过服务器回的200知道,接着我们取消第一次注册发生的绑定(contact头域中填的expire = 0),再用网关地址注册。
问题是,这个流程是怎么回事?RFC文档到底是怎么说的?
如果服务器端可以根据他所看到的网关地址进行绑定,那么客户端就不需要这么做了。一开始我认为是有这样的机制的,但是至少对于SER来说,不是这样的。
2.NAT穿越问题:
四种NAT类型:
STUN和TURN的区别在于TURN服务器作为媒体流的中转站。
SBC。。。
3.路由规则(关于BYE无法发送到目的的原因),
INVITE里填写CONTACT?
内网的UAC发起INVITE的时候,在contact里填写网关的地址,然后UAS收到INVITE的时候,根据contact,
request-uri里填写内网对应的网关地址。这是目前做的workaround。
记住:VIA域是让UAS知道把response发送到哪里,而record-route是为了更新UA的route set,以便后续的request可以更加“快捷“的发送。
RFC3261 16.2.1的例子。
阅读(1604) | 评论(0) | 转发(0) |