【发布时间】:2020-12-17 23:57:16
【问题描述】:
在我的一生中,我无法让 Twilio 在 Flask.redirect 中执行 twiml 指令。当我通过 Postman 执行查询时,我看不到任何错误,所以我错过了什么?我还可以在 Flask 的控制台输出中看到重定向。
预期的行为是,当呼出呼叫被应答时(CallStatus == 'in-progress'),呼叫被重定向到问候消息。真正发生的是通话持续 5 秒——在 dial() 中定义以确保 Twilio 有足够的时间做出反应——然后挂断。
我什至尝试将 100 秒的很长的停顿动词加入到 greeting() 中返回的响应中,但这被忽略了。
那么...我错过了什么?任何见解将不胜感激。
@app.route("/call/dail/<number>", methods=['POST'])
def dial(number):
call = client.calls.create(
status_callback='http://<tunnel>.ngrok.io/call/status_update',
status_callback_method='GET',
status_callback_event=['initiated', 'answered', 'completed'],
twiml='<Response><Pause length="5"/></Response>',
to=number,
from_=from_number
)
return call.sid
@app.route("/call/status_update", methods=['GET'])
def call_status_update():
called_number = request.values.get("Called")
callsid = request.values.get("CallSid")
callstatus = request.values.get("CallStatus")
if callstatus == 'in-progress':
return redirect(url_for('greeting'))
return "Waiting for someone to pickup..."
@app.route("/call/greeting", methods=['GET', 'POST'])
def greeting():
response = VoiceResponse()
wait_message = 'This is a greeting.'
response.say(wait_message)
return Response(str(response), 200, mimetype="application/xml")
【问题讨论】:
标签: python flask twilio twilio-twiml