首页 > 解决方案 > Twilio API:将连接转移到转发号码?

问题描述

我打了一个出站电话,并根据 Twilio 呼叫的自动消息,它通过连接呼叫我的电话。

这是拨打电话的脚本。

import os
from twilio.rest import Client


account_sid = "xxxx"
auth_token = "xxxx"
client = Client(account_sid, auth_token)

call = client.calls.create( url='http://myhost.com/rec.php',to='+1234',from_='+9876')

print(call.sid)

拨打电话,操作脚本发送 TwiML 收集响应。这里是rec.php

echo '<Response>
  <Gather input="speech"
        partialResultCallback="http://myhost.com/partial.php"
        action="http://myhost.com/finalresult.php">
  </Gather>
</Response>

我有部分页面记录了文本。但是,当我转接电话时,我的电话会响一秒钟,然后断开。调试器中也没有错误。

这是partial.php

if(contains("To continue in English", $_REQUEST['UnstableSpeechResult'])){

    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
          <Response>
           <Dial>+myPhoneNumber</Dial>
          </Response>";
}

这是最终结果,我认为电话完成后会调用它?我不知道。

if(contains("To continue in English", $_POST['SpeechResult'])){
        echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
                <Response>
                        <Dial>+myPhoneNumber</Dial>
                </Response>";

}

标签: twiliotwilio-phptwilio-twiml

解决方案


根据文档,partialResultCallback不处理 TwiML。

Twilio 对您的 partialResultCallback 所做的 webhook 是异步的。他们不接受任何 TwiML 作为响应。如果你想基于这个部分结果采取更多的行动,你需要使用 REST API 来修改调用。

鉴于上述情况,不确定您的电话是如何响铃的。您可以提供的更多详细信息将有助于解决问题。


推荐阅读