Получать уведомления при получении звонка twilio - PullRequest
1 голос
/ 23 ноября 2011

Я создаю приложение twilio и хотел бы получать уведомления при получении вызова с использованием twilio.Я использую Python API для вызова, например, так:

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

Это все работает отлично.Я получаю уведомление, когда вызов сделан, POST к twiml_url и POST к status_url, когда вызов заканчивается.В обоих этих случаях мне передают CallStatus , в первом со значением 'звонок' , во втором 'завершено'

Теперь я прочитал документы по API и знаю, что они говорят, что это ожидаемое поведение.

Что мне интересно, так это то, есть ли способ получить аналогичные удары для других CallStatus изменений?Согласно Twilio, все следующие возможные значения для CallStatus :

в очереди , звонок , в процессе , выполнено , не выполнено , занято или нет ответа

Кажется бессмысленным иметь всеразные CallStatus пока не предоставляют для них обратные вызовы.

В конечном счете, я пытаюсь определить, когда происходит звонок.Единственный способ сделать это сейчас - периодически опрашивать и вручную проверять, изменился ли CallStatus - вряд ли здорово.

1 Ответ

1 голос
/ 24 октября 2015

Рикки из Twilio здесь. Мы добавили в наш API совершенно новую функцию, которая меня очень радует: Call Progress Events . Это позволяет разработчику передавать список событий об их вызове, таких как вызов или завершение, о которых они хотят получать уведомления с помощью своего вызова. Я думаю, что это может немного помочь в этом случае, потому что вы могли бы сказать 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, этот пример в документации позволит вам увидеть, как использовать Call Progress Events с PHP, C #, Ruby, Node.js, Java или - если вам нравится пинать Это стиль командной строки - команда curl.

...