1

私は twilio アプリを構築していて、twilio を使用して発信された通話がピックアップされたときに通知を受け取りたいと考えています。次のように、Python API を使用して呼び出しを行います。

call = client.calls.create(to=number,
                           from_="15555555555",
                           url=twiml_url,
                           status_callback=status_url)

これはすべてうまくいきます。通話が終了すると、twiml_url への POST と status_url への POST によって、通話が行われたときに通知を受け取ります。これらのケースの両方で、最初の値が'ringing'で、2 番目の値が'completed'のCallStatusが渡されます。

今、私は API ドキュメントを読み、これが期待される動作であると彼らが言っていることを知っています。

私が疑問に思っているのは、他のCallStatusの変更に対して同様のキックを得る方法があるかどうかです。Twilio によると、次のすべてがCallStatusの可能な値です。

待機中、呼び出し中、進行中完了失敗ビジー、または応答なし

さまざまなCal​​lStatusをすべて持っているのに、それらにコールバックを提供していないのは、ちょっと無意味に思えます。

最終的に、私が達成しようとしているのは、電話がいつ取られるかを検出することです。現在これを行う唯一の方法は、 CallStatusが変更されたかどうかを定期的にポーリングして手動で確認することです。

4

1 に答える 1

1

Twilio の Ricky です。Call Progress Eventsと呼ばれる非常に嬉しい新機能を API に追加しました。これにより、開発者は呼び出しに関するイベントのリスト (呼び出し中や完了など) を渡して、呼び出しに関する通知を受け取ることができます。このコードを使用して、呼び出しが応答されたときに通知するように API に指示できるため、このユースケースで少し役立つと思います。

call = client.calls.create(
    url="http://demo.twilio.com/docs/voice.xml",
    to="+14155551212",
    from_="+18668675309",
    method="GET",
    status_callback="https://www.myapp.com/events",
    status_callback_method="POST",
    status_events=["answered"],
)

Python を使用していない場合は、ドキュメントのこの例で、 PHP、C#、Ruby、Node.js、Java で Call Progress Events を使用する方法を確認できます。または、コマンド ライン スタイルをキックしたい場合は、curl コマンドを使用する方法を確認できます。

于 2015-10-23T22:09:44.553 に答える