我正在研究用于通过SIP进行自动呼叫的脚本,但遇到了来电显示问题。
脚本运行非常简单:
在第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:
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 Operator(基于Asterisk)。
我可以使用哪些Refer-To或其他标题发送正确的呼叫者ID?
答案 0 :(得分:0)
首先,有关REFER请求的一些评论:
根据您的描述,我推断您使用的是B2B SIP服务器。这意味着当客户的电话(+1234567890@1.2.3.4)收到REFER请求时,生成的INVITE请求将发送到SIP服务器(s@1.2.3.4)。然后,SIP服务器将创建一个新的INVITE请求并将其发送到经理的电话(111@1.2.3.4)。
从SIP服务器到经理电话的INVITE请求将包含以下值:
然后经理的电话必须使用from标头的值作为呼叫者ID,而不是联系人标头的值。
您可能要检查
我希望这会有所帮助。