如何在SIP参考方法中使用来电显示而不是"s"?



我正在为通过SIP进行自动调用的脚本工作,并遇到了呼叫者ID的问题。

脚本运行很简单:

  1. 通过邀请方法访问客户的电话(例如, 1234567890(
  2. 当客户接听电话时,使用参考方法将呼叫转移给其个人经理。
  3. 经理通过与客户建立的对话框接收来电。

在步骤2-3上,管理器始终从称为s@1.2.3.4的联系人接收呼叫(其中1.2.3.4是我们的SIP服务器的IP地址(。如何设置客户电话而不是s@1.2.3.4

我使用的参考请求如下:

REFER sip:+1234567890@1.2.3.4:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.1:5100;rport;branch=z9hG4bK160892
From: <sip:100@192.168.1.1>;tag=29899
To: <sip:+1234567890@1.2.3.4:5060>
Call-ID: 28990ec994a682147cf87eda75f97664@192.168.1.1
CSeq: 22 REFER
Contact: <sip:100@192.168.1.1:5100>
Max-Forwards: 70
Refer-to: sip:111@1.2.3.4
Referred-By: <sip:+1234567890@1.2.3.4:5060>
Content-Length: 0

这里100是呼叫机器人的SIP ID,192.168.1.1是机器人的IP,111是经理的SIP ID。

我尝试使用这样的参考:

Refer-to: <sip:111@1.2.3.4?Call-ID=28990ec994a682147cf87eda75f97664@192.168.1.1&From=%3Csip%3A%2B1234567890%401.2.3.4%3A5060%3E&Contact=%3Csip%3A%2B1234567890%401.2.3.4%3A5060%3E>
Refer-to: <sip:111@1.2.3.4?Call-ID="69ca6b4e1874aa07569ee234cf746a3c@192.168.1.1"&From="<sip:+1234567890@1.2.3.4:5060>"&Contact="<sip:+1234567890@1.2.3.4:5060>">
Refer-to: <sip:111@1.2.3.4;method=INVITE?Call-ID="d71d3cc87f88eb1522859296889d39fb@192.168.1.1"&From="sip:+1234567890@1.2.3.4:5060"&Contact="<sip:+1234567890@1.2.3.4:5060>">

但没有我预期的事情,即将到来的经理电话的呼叫者ID仍然是s@1.2.3.4。我们需要正确的呼叫者ID才能获取通话记录。

使用的SIP软件:Kerio操作员(基于星号(。

我可以使用什么参考或其他标题来发送正确的呼叫者ID?

首先,关于请求:

  • 引用的标题应包含推荐人的sip uri,而不是裁判的sip uri。
  • 参考请求应在现有对话框中发送。看来您在任何对话框的外部发送参考请求(NO提供的标签(。

从您的描述中,我得出您使用B2B SIP服务器。这意味着,当客户的电话( 1234567890@1.2.3.4(收到参考请求时,结果邀请请求将发送到SIP服务器(s@1.2.3.4(。然后,SIP服务器将创建一个新的邀请请求,并将其发送到经理的电话(111@1.2.3.4(。

SIP服务器到管理员手机的邀请请求将包含以下值:

  • 到标头 -> 111@1.2.3.4
  • 来自标题 -> 1234567890@1.2.3.4
  • 联系标头 -> s@1.2.3.4

然后,经理的电话必须将"从标头值"用作呼叫者ID,而不是联系头的值。

您可能要检查

  • 如果邀请请求包含正确的标题值
  • 如果经理的电话使用右标头确定呼叫者ID。

我希望这会有所帮助。

最新更新