Twilio Studio REST API - 暂停和发送DTMF代码

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

我试图通过REST API添加暂停和DTMF音调(类似于Dial an extension using DTMF tones after a pause / Twilio Studio)。我正在使用python帮助程序库。我已经尝试过与上面提到的相同的解决方案,但是我遇到了错误而且我不确定为什么。

这有效[成功运行Studio流程],但没有提供添加暂停或音调的方法(据我所知):

from twilio.rest import Client
import configuration as configuration

account_sid = configuration.account_sid
auth_token = configuration.auth_token
client = Client(account_sid, auth_token)

execution = client.studio \
                  .flows(configuration.flow_sid) \
                  .executions \
                  .create(to=configuration.test_number, from_=configuration.twlio_number)

print(execution.sid)

这让我在日志中出现了401错误(有趣的是,当我使用与Autopilot基本相同的概念时我没有错误...但是客户希望播放人声而不是机器人语音阅读文本而Autopilot没有截至目前的选项)。它确实发出了呼叫但是立即声明〜'抱歉发生了应用程序错误'。

from twilio.rest import Client
import configuration as configuration
#This version calls a known number just to test it.  Called via CLI.

account_sid = configuration.account_sid
auth_token = configuration.auth_token

client = Client(account_sid, auth_token)
call = client.calls.create(
                        record=True,
                        send_digits= configuration.insurance_digits,
                        url='https://studio.twilio.com/v1/Flows/'+configuration.flow_sid+'/Executions',
                        to= configuration.test_number,
                        from_= configuration.twlio_number
                    )

print(call.sid)

我对解决方案持开放态度 - 要么为执行选项添加音调/暂停(第一个块),要么让调用选项(第二个块)实际工作。真相被告知让第二个选项正常工作是我的偏好。

python twilio-api twilio-studio
1个回答
0
投票

这就是我最终做到的方式 - 不确定是否有更好的方法。我使用了client.studio(第一块代码),因为我知道它至少有效。

  1. 录制 - 这很简单 - 只需在小部件上设置Record Call = true即可。作为传入REST请求的一部分,不需要传递参数。
  2. 发送数字。稍微多一些。

A.首先,我传递了digits的参数作为create语句的一部分。

    execution = client.studio \
                  .flows(configuration.flow_sid) \
                  .executions \
                  .create(parameters={'digits':configuration.insurance_digits},to=configuration.test_number, from_=configuration.twlio_number)

B.然后我在拨出电话后添加了一个功能小部件。此小部件获取一个函数参数,其中key为digit,value = {{trigger.message.digits}}。请注意,在此功能窗口小部件被跳过后,还需要一个新的窗口小部件(请参阅https://support.twilio.com/hc/en-us/articles/360019580493)。

C.最后有一个简单的函数接收数字并创建TwiML并使用传递的变量来设置正确的音调。 digits=event.digits给了我需要说的内容,然后就是那里的TwiML。函数的结尾需要重定向回你的流程,所以像twiml.redirect('https://webhooks.twilio.com/v1/Accounts/ACxxxxxxxxxxxxx/Flows/FWxxxxxxxxxxxxxxxxxx?FlowEvent=audioComplete');

如果有更简单的方法让我知道,但这允许我将DTMF音调作为变量传递,以及我的电话号码变量。

© www.soinside.com 2019 - 2024. All rights reserved.