如何在Sofia SIP中更改SIP BYE消息的目的地
让我先描述一下我的问题。我将Sofia SIP用于电话应用程序,我使用的SIP代理位于NAT后面。这意味着来自代理的传入邀请具有作为联系人标头的内部代理IP(例如10.0.0.1)。这意味着当我从我的应用程序挂断电话时,Sofia会自动将IP 10.0.0.1设置为BYE消息的目的地,正如您所想象的,IP 10.0.1是不可路由的,因此它会失败 所以我想做的是将BYE消息的目的地更改为“外部”代理IP地址。问题是Sofia似乎不允许我更改SIP消息的目的地;它总是使用收到邀请时获得的联系人。以下是我尝试过的:如何在Sofia SIP中更改SIP BYE消息的目的地,sip,sofia-sip,Sip,Sofia Sip,让我先描述一下我的问题。我将Sofia SIP用于电话应用程序,我使用的SIP代理位于NAT后面。这意味着来自代理的传入邀请具有作为联系人标头的内部代理IP(例如10.0.0.1)。这意味着当我从我的应用程序挂断电话时,Sofia会自动将IP 10.0.0.1设置为BYE消息的目的地,正如您所想象的,IP 10.0.1是不可路由的,因此它会失败 所以我想做的是将BYE消息的目的地更改为“外部”代理IP地址。问题是Sofia似乎不允许我更改SIP消息的目的地;它总是使用收到邀请时获得的联系人。以下
AntonisBYE是一个in-dialog请求,因此它应该跟随路由头(如果它们存在的话)。我只对Sofia略为熟悉,但如果您将实际收到邀请的IP:port添加到您这边的routeset中,并在您发送未来的in-dialog请求时将其添加到路由头列表中,Sofia应该首先按路由头进行路由,然后是RURI(通常来自另一方的联系人).非常感谢您的回答;目前,我找到了一种解决方法,将出站代理传递给Sofia中的nua_create。一旦我有空闲时间,我也会尝试测试一下,让你知道它是否有效