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

时间:2019-03-13 14:44:36

标签: python twilio-api twilio-studio

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

这有效[成功运行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)

我愿意接受解决方案-一种将音调/暂停添加到执行选项的方法(第一个块),或者使调用选项的一个方法(第二个块)实际起作用。说实话,让我选择第二种方法是可行的。

1 个答案:

答案 0 :(得分:0)

这就是我最终的方法-不确定是否有更好的方法。我使用了client.studio(第一段代码),因为我知道它至少可以正常工作。

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

A。首先,我在create语句中传递了一个digits参数。

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

B。然后在拨出电话后添加了一个功能小部件。此小部件获取一个功能参数,其中键是数字,值= {{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音调作为变量以及电话号码变量传递。