Kamailio在分叉邀请后并发呼叫



我使用的是Kamailio代理4.0.4版。我有两个UAC (Bob1, Bob2)注册了相同的URI。然后第三个UAC (Alice)向代理发送一个INVITE。两个uac都收到此邀请并接受呼叫。Kamailio现在取消了第二个(Bob2),并将第一个(Bob1)的200ok转发给Alice。

然而,我需要得到Bob1和Bob2对Alice的200个Ok响应。然后,Alice想要同时与它们交谈。

这在kamailio中可能吗?我怎样才能防止第二个200 Ok被取消?

在有状态模式下路由时(通过tm模块),Kamailio在收到200ok时取消所有其他活动分支。即使您认为同时生成两个200ok,也很可能一个接一个地处理它们,因此一个分支被取消。

你应该能够通过无状态路由实现你想要的。使用forward()函数而不是使用tm模块中的函数来发送请求。逻辑应该是这样的:

  • 设置r-uri ($ru)为第一个目的地
  • 向前()
  • 设置r-uri ($ru)到第二个目标
  • 向前()

如果目的地是通过查找("location")设置的,第一个将进入r-uri,您可以执行forward()。对于第二步,您必须通过$branch(…)变量获取其详细信息,并设置r-uri以及与下一跳相关的其他属性。

相关内容

  • 没有找到相关文章

最新更新