与Raspberry Pi进行电话交谈

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

我目前正在尝试构建一个 Python 应用程序,允许从我的 Raspberry Pi 拨打我的手机。理想情况下,该应用程序应允许在电话用户和连接到 Jabra 扬声器的 raspberry 用户之间创建双向交互式对话(作为标准电话呼叫)。 我首先按照外呼教程进行操作:

def make_call():
    account_sid = "ACXXX" 
    auth_token = "07XXX" 

    client = Client(account_sid, auth_token)
    call = client.calls.create( 
                            url="https://handler.twilio.com/twiml/EHXXXX", 
                            to="+123456789", 
                            from_="+987654321"
                          )

上面的代码让我的手机响铃,所以我猜我的 Twilio 帐户已正确设置。然而,当我接听电话时,电话突然停止了。 从文档中,我还尝试将我的 TwiML 指令更改为:

在通话过程中,您可以使用 TwiML 的动词将当前呼叫者连接到另一方。 下面的例子展示了最基本的用法:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial>415-123-4567</Dial>
</Response>

如果拨打 415-123-4567 的一方接听电话,则双方可以进行通信,直至一方挂断电话。

这会给我的手机创建一个新的呼叫,要求我结束第一个呼叫来接听第二个呼叫,但仍然直接挂断。 我的用例可能存在什么问题? Twilio 本身是否处理双向对话?该解决方案是否比这更复杂,需要我从 Jabra 中提取音频并将其传输到 Twilio(反之亦然)? 预先感谢您的帮助!

python raspberry-pi twilio twilio-api
1个回答
0
投票

您的呼叫正在断开,因为 TwiML 指令已成功完成。如果您想避免这种情况,可以使用

<Pause />
标签来延迟断开连接事件。

这将为您提供更多 使用 Python 修改正在进行的调用的新指令:

# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client


# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)

call = client.calls('CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
             .update(twiml='<Response><Say>Ahoy there</Say></Response>')

print(call.to)
© www.soinside.com 2019 - 2024. All rights reserved.