我正试着用我的笔记本电脑(运行Twilio)用python 3拨号,并进行语音对话。这是最简单的用例。
下面是我在笔记本上运行的python代码。
def test_voice_command_inline(self):
'''calls landline from laptop via twilio'''
twilio_client = twilio.rest.Client(self.twilio_account_sid,
self.twilio_auth_token)
vps_url = self.get_vps_url()
twilio_voice_call = twilio_client.calls.create(
from_=self.twilio_phone_number,
to=self.land_line_number,
url=vps_url
)当我运行这段代码时,我的电话线响了,然后我回答它。电话接通了。接下来,Twilio提示我按一个键来“执行我的代码”(也就是web钩子)。
既然我已经有了一个连接电话,我就不需要网钩了。我只想开始说话。然而,Twilio 需要 me放入一个webhook url,返回TwiML来指导调用流。当TwiML完成处理后,调用被挂起。我不需要一个钩子,但我需要一个。
我尝试了web钩子代码中的各种内容,试图让已经连接的调用继续进行。我尝试从我的web钩子中返回空白的TwiML,这会导致立即挂起。我还试着从网钩里面拨电话号码。由于rest已经连接了呼叫,试图从web钩子重拨号码会导致繁忙状态(Twilio控制台)。看看我可以在web钩子中使用的所有TwiML动词,没有一个看上去适合我的需要。
我一定是错过了一些简单的东西。为什么我不能用上面的代码在我的笔记本电脑和我的电话线(或者其他电话)之间打个电话呢?
发布于 2018-02-27 11:19:21
两位开发人员在这里传道。
当您使用使用REST进行出站调用时,Twilio正在我们的服务器和to号码之间设置一个调用。您提供的from号码只是呼叫的callerId。
为了将您使用REST拨打的电话连接到另一个电话,您需要从您的TwiML twiml_url中返回刻度盘另一个号码。目前,您的TwiML只是一个空的<Response>,但是应该是这样的:
<Response>
<Dial><Number>OTHER_NUMBER</Number></Dial>
</Response>如果您希望Python代码是动态的,那么它也可以由Python代码写出。这就是你使用你提到的VoiceResponse的地方。重要的是,您正在进行的调用的第二阶段应该由从您的URL返回的TwiML控制。
如果这有帮助的话请告诉我。
https://stackoverflow.com/questions/48995859
复制相似问题