如何识别sip电话的两条腿?

时间:2013-01-29 10:36:05

标签: sip

我正在开发一个SIP呼叫跟踪应用程序。我使用Tag ID字段连接两个呼叫支路
 一个电话。但有时标签ID不一样。

我所做的是 -

标记ID与相应的呼叫ID相关联。

我是否需要考虑其他字段来识别呼叫的双腿(对话)。

enter image description here  以上是带有标记ID的1次调用的例子。不同的颜色用于两条腿。唯一相似之处我在标签ID中有一个数字 3568450037 10.10.10.120 是服务器IP。

我必须找到呼叫支路之间的强大连接。请帮我...  请告诉我一些解决这个问题的链接..

谢谢你...

2 个答案:

答案 0 :(得分:2)

Call-ID,From标签和To标签都是用于识别对话框的。来自SIP RFC chapter on Dialogs。唯一的技巧是匹配本地和远程标签,即呼叫一端的To标头标签与呼叫另一端的From标头标签匹配,反之亦然。

  

在每个UA上标识一个对话框,其中包含对话框ID      Call-ID值,本地标签和远程标签。每个对话框ID      参与对话的UA是不一样的。具体来说,是当地的      一个UA上的标记与对等UA上的远程标记相同。该      标签是不透明的标记,有助于生成独特的标记      对话框ID。

<强>更新

使用包含IP地址和标记的表进行编辑后,会涉及两个完全独立的调用,每个调用都有自己的对话框。我想你的问题更多的是如何从两个不同的调用中匹配两个不同的对话框,而不是试图匹配对话框内的事务/请求。

SIP标头中实际上没有任何内容可用于匹配两个独立的SIP对话框,以便知道呼叫已被桥接在一起。我假设您正在使用B2BUA,因为它是桥接呼叫的唯一常见SIP元素。匹配对话框的一种方法是查看INVITE请求和响应中携带的SDP。至少你可以得到每条腿发送和接收的端口号并以这种方式匹配它们。

答案 1 :(得分:0)

答案有点晚,但如果它能帮助其他人:

如果您是编写B2BUA应用程序的人,您可以对其进行修改,以便为每条腿上具有相同标识符的消息添加标题,然后该标识符不仅标识一条腿而且标识整个呼叫。

有一个信息性的IETF文件提出了这样的: http://tools.ietf.org/html/draft-kaplan-dispatch-session-id-03