Mobicents容器似乎处理错误响应与我使用过的其他SIP容器不同。情况是:
这将防止初始错误响应向上游传播(因为事务有一个新的目标)。但是,使用Mobicents容器,即使INVITE确实被代理到新的目的地,最初接收到的错误响应仍然在上游传播。我相信这是Mobicents实现中的一个bug --但是如何解决这个问题呢?
代码:
public void doInvite(SipServletRequest req) {
req.getProxy().proxyTo(req.getRequestURI());
}
public void doError(SipServletResponse res) {
Proxy p = res.getProxy();
p.setSupervised(false);
p.proxyTo(...);
// request is proxied, but the error response still passes
// upstream - the retargeting of the transaction (through
// proxying to a new destination ought to prevent that).
}发布于 2015-05-31 23:01:15
您要从哪个其他SIP容器迁移应用程序?你是在做顺序代理还是并行代理?您收到了哪些错误响应?您使用的是哪个版本的容器?您在gist.github.com或pastebin.com上有完整的日志吗?
发布于 2015-06-01 05:03:51
作为一种纯代理解决方案,Mobicents正在执行将错误响应转发回调用发起者的正确行为,因此必须在调用方处理基于错误代码的顺序分叉逻辑。
但是,如果希望mobicents执行此行为,则需要运行mobicents的B2BUA模式,这将使您能够更细粒度地控制独立于两个调用腿入口/出口的行为。
发起人获得一个183调用进度的邀请入口腿,而顺序重试可以处理的出口腿,而没有风险的初始超时发生在入侵。
https://stackoverflow.com/questions/30535395
复制相似问题