简而言之,我有一个Twilio弹性SIP中继,并配置了PBX(星号)以通过Twilio上的SIP域进行出站呼叫。登录Twilio时,我可以选择配置SIP域的语音配置URL,以便在拨出呼叫时,脚本会将呼叫传递到目的地。
无论出于何种原因,当我转接呼叫时,它都会传递该人的原始呼叫者ID,但现在它一直用我的办公室号码覆盖该呼叫者ID;当呼叫转移出去时,实质上是掩盖了原始呼叫者的呼叫者ID;这很烦人,我正在尝试找出解决问题的最佳方法。
我的目标是解决拨出电话的拨号问题,这样当外部转移呼叫时,应该显示个人的呼叫者ID,而不是我办公室的电话号码;
我的SIP域的语音URI的Twiml配置看起来像这样:
<?php
echo header('content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
$to=$_REQUEST['To'];
$callerId=$_REQUEST["callerId"];
/** Extracting user name **/
$pos1 = strpos($to,":");
$pos2 = strpos($to,"@");
$tosip=substr($to,$pos1+1,$pos2-$pos1-1);
if(strlen($tosip) == 3)
{
/**Extracting sip endpoint**/
$pos2 = strpos($to,":",strpos($to,":")+1);
$tosip=substr($to,$pos1+1,$pos2-$pos1-1);
?>
<Response>
<Dial>
<Sip>
<?php echo $tosip; ?>
</Sip>
</Dial>
</Response>
<?php } else { if(substr($tosip,0,2)=="00") $tosip=substr($tosip,2,strlen($tosip)-1); if(substr($tosip,0,3)=="011") $tosip=substr($tosip,3,strlen($tosip)-1); ?>
<Response>
<Dial callerId="<?php echo $callerId; ?>" >
<?php echo $tosip; ?>
</Dial>
</Response>
<?php } ?>
要成功转接电话,我必须将CallerId的$ GET参数设为我的办公室号码;但这会覆盖原始的呼叫者ID;过去我可以简单地称谓动词,而原来的呼叫者ID就会出现;但现在看来并非如此。
任何建议或指向正确方向的人都表示赞赏!
答案 0 :(得分:0)
这将是一个问题。可编程语音SIP域在拨出公共交换电话网(PSTN)时,要求您的帐户中的CallerID为verified Caller ID或Twilio电话号码。
将入站CallerID转发到出站目的地的功能仅在呼叫转发上下文中有效(例如,呼叫从PSTN进入Twilio,然后使用Dial动词将其转发到PSTN)。
“当您在响应Twilio的入站呼叫请求时,被叫方会将入站呼叫者的号码视为caller ID。”