1

我正在开发一个 sip 呼叫跟踪应用程序。我已经使用标签 ID 字段来连接呼叫的两个呼叫支路
。但有时标签 ID 会不一样。

我所做的是——

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

是否有任何其他领域我需要考虑识别通话的腿(对话)。

在此处输入图像描述 以上是 1 个带有标签 ID 的调用的示例。两条腿使用不同的颜色。唯一的相似之处是我在标签 ID 中有一个数字3568450037 。10.10.10.120是服务器 ip。

我必须在通话腿之间找到牢固的联系。请帮助我...并请建议我一些链接来解决这个问题..

感谢你...

4

2 回答 2

3

Call-ID、From 标签和 To 标签都是用来识别对话的。来自SIP RFC 关于 Dialogs 的章节。唯一的技巧是匹配本地和远程标记,即调用一端的 To 标头标记与调用另一端的 From 标头标记匹配,反之亦然。

每个 UA 都使用一个对话 ID 来标识一个对话,该对话 ID 由一个 Call-ID 值、一个本地标记和一个远程标记组成。对话中涉及的每个 UA 的对话 ID 都不相同。具体而言,一个UA的本地标签与对端UA的远程标签相同。标签是不透明的标记,有助于生成唯一的对话 ID。

更新:

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

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

于 2013-01-29T10:48:05.137 回答
1

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

如果您是编写 B2BUA 应用程序的人,您可以修改它以在每条支路的消息中添加一个具有相同标识符的标头,然后该标识符不仅标识一条支路,而且标识整个呼叫。

有一个信息 IETF 文件提出了这一点: https ://datatracker.ietf.org/doc/html/draft-kaplan-dispatch-session-id-03

于 2014-08-16T20:05:14.930 回答