通过命令行运行Twilio Studio Flow时,如何触发呼叫者输入?
解决Twilio Studio Flow CLI执行停滞(等待用户输入)的问题
为啥会卡住?
用twilio api:studio:v2:flows:executions:create创建的Flow执行是后台启动的无头会话,没有绑定真实的通话媒体通道,压根没法接收你的按键输入,所以肯定会卡在等待输入的Widget那儿不动。
怎么破?给你三个实用方案:
方案1:打真实电话调试(最直观)
直接用Twilio CLI发起真实通话,把Flow绑进去,这样你就能在电话里按键输入,完全复现真实场景:
twilio api:calls:create \ --from $FROM \ --to $TO \ --url "https://studio.twilio.com/v2/Flows/$FLOW_SID/ProgrammableVoice"
执行完这个命令,$TO的号码就会接到电话,接通后自动进入你的Flow流程,该按啥按啥就行。
方案2:给Flow加个调试分支(不用打电话)
不想每次都打真实电话?给需要输入的Widget加个调试专属分支:
- 打开Twilio控制台的Studio Flow编辑器
- 找到那个等待输入的Widget(比如“Gather Input on Call”)
- 加个条件分支,比如判断自定义参数里有没有调试标记,或者直接匹配某个预设值
- 调试时用CLI创建执行,带上自定义参数直接触发分支,跳过输入等待:
twilio api:studio:v2:flows:executions:create \ --flow-sid $FLOW_SID \ --from $FROM \ --to $TO \ --parameters '{"debug_input": "你的测试输入值"}'
这样Flow会直接走你预设的调试分支,不用等真实输入就能继续跑流程。
方案3:用Serverless Function自动触发输入(适合自动化测试)
要是需要自动模拟输入,写个简单的Twilio Serverless Function调用API发送DTMF事件:
- 先创建Flow执行,记下返回的
Execution SID - 在Function里调用Studio的Step API,给对应的等待输入步骤传入DTMF参数
- 用CLI调用这个Function,就能自动触发输入,推进流程
这个方法有点复杂,适合需要批量测试的场景,日常调试用前两个就够了。
内容的提问来源于stack exchange,提问作者Vasseurth
相关产品推荐
相关产品推荐

