如何在Twilio上传递原来的来电显示? (Sip域语音URL配置)

问题描述 投票:0回答:1

简而言之,我有一个Twilio Elastic SIP Trunk并配置我的PBX(Asterisk)通过Twilio上的SIP域进行出站呼叫;登录Twilio时,我可以选择配置SIP域的语音配置URL,这样当拨打电话时,脚本会将呼叫传递到目的地。

无论出于何种原因,它都会在我转发呼叫时传递该人的原始来电显示,但现在它会用我办公室的号码覆盖来电显示;当呼叫被转出时,基本上掩盖原始呼叫者的呼叫者ID;这很烦人,我正试图找出解决它的最佳方法。

我的目标是修复出站拨号,这样当外部转接呼叫时,应显示个人的来电显示,而不是我办公室的号码;

我的SIP Domain的语音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参数;但这会覆盖原来的来电显示;过去我可以简单地调用动词,原始的来电显示会出现;但现在似乎并非如此。

任何正确方向的建议或观点值得赞赏!

php twilio asterisk sip twilio-php
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.