是否有 Twilio webhook 通知我在排队之前挂断的用户

Is there a Twilio webhook that informs me of users who hang up before being queued

我有一个 'incoming call' 网络挂钩,用于我正在开发的联络中心应用程序,它基本上与呼叫者说几句话 ("Welcome to x company etc.."),然后将它们添加到呼叫队列。

我可以为队列的 'action' 和 'wait' 事件添加更多网络挂钩,这让我可以检查队列中的呼叫进度,但我正在努力找到一种方法来处理在进入队列之前挂断的呼叫。一个例子是,如果有人在系统说话时挂断电话 "Welcome to x company etc.."。

我知道我可以自动将它们添加到队列中并在 'wait url' 网络挂钩中播放欢迎消息,但是此消息会循环重复。

这里是 Twilio 开发人员布道者。

您可以获得有关来电呼叫状态的网络挂接。您只需要为 "Call status changes".

的 phone 号码添加一个 URL

调用完成后,您将获得一个 webhook,以便您跟踪其进度。

或者,就像您说的那样,您可以在 <Enqueue> 通话时将消息作为 waitUrl 的一部分播放。不过,您不必重复它,实际上可以 return TwiML as the response to the waitUrl。例如,TwiML 可以包含 <Redirect>,这样您就可以读出欢迎消息,然后重定向到然后循环播放的音乐播放列表。

如果有帮助请告诉我。

从我这边编码的更简单的方法 here 是使用 while 循环并查询 twilio api 以获取调用 sid

的调用状态
account_sid = os.environ.get('TWILIO_ACCOUNT_SID')
auth_token  = os.environ.get('TWILIO__AUTH_TOKEN')
client = Client(account_sid, auth_token)


while True:
    r = client.calls(sid).fetch()
    c = to_dict(r)
    print(f'{datetime.now().strftime("%Y%m%d_%H%M%S")} from={c["from"]} to={c["to"]}  status={c["status"]}')
    #       ts  .                    .                .

    stop = c["status"] not in ['queued', 'ringing', 'in-progress']  # stop by :completed
    if stop: break

    time.sleep(3)