Основные понятия входящих вызовов

Службы коммуникации Azure служба автоматизации вызовов позволяет разработчикам создавать приложения, которые могут выполнять и принимать звонки. Он использует подписки Сетки событий для доставки IncomingCall событий, что делает его важным для настройки среды для получения этих уведомлений для приложения для перенаправления или ответа на вызов эффективно. Поэтому понимание основных принципов входящих вызовов важно для использования полного потенциала автоматизации вызовов Службы коммуникации Azure.

Сценарии вызова

Перед настройкой среды важно понимать сценарии, которые могут активировать IncomingCall событие. Чтобы активировать IncomingCall событие, необходимо выполнить вызов к Службы коммуникации Azure удостоверению или номеру ТСОП, связанному с вашим ресурсом Службы коммуникации Azure. Ниже приведены примеры этих ресурсов:

  1. Удостоверение Службы коммуникации Azure
  2. Номер телефона ТСОП, принадлежащий ресурсу Службы коммуникации Azure

В этих примерах следующие сценарии активируют событие, отправленное в сетку IncomingCall событий:

Источник Назначение Сценарии
удостоверение Службы коммуникации Azure удостоверение Службы коммуникации Azure Вызов, перенаправление, добавление участника, передача
удостоверение Службы коммуникации Azure Номер ТСОП, принадлежащий ресурсу Службы коммуникации Azure Вызов, перенаправление, добавление участника, передача
Общедоступная ТСОП Номер ТСОП, принадлежащий ресурсу Службы коммуникации Azure Вызов, перенаправление, добавление участника, передача

Примечание.

Важно понимать, что удостоверение Службы коммуникации Azure может представлять пользователя или приложение. Хотя платформа не имеет встроенной функции для явного назначения удостоверения пользователю или приложению, ваше приложение или поддерживающая инфраструктура может выполнить это. Дополнительные сведения об этом разделе см. в руководстве по концепциям удостоверений.

Регистрация поставщика ресурсов Сетки событий

Если вы ранее не использовали сетку событий в подписке Azure, может потребоваться зарегистрировать поставщика ресурсов Сетки событий. Чтобы зарегистрировать поставщика, выполните следующие действия.

  1. Переход на портал Azure.
  2. В меню слева выберите Подписки.
  3. Выберите подписку, используемую для сетки событий.
  4. В разделе Параметры выберите Поставщики ресурсов.
  5. Найдите Microsoft.EventGrid.
  6. Если поставщик ресурсов не зарегистрирован, выберите "Зарегистрировать".

Получение уведомления о входящих вызовах из сетки событий

В Службы коммуникации Azure получение IncomingCall уведомления осуществляется через подписку Сетки событий. Как получатель уведомления, вы можете выбрать способ его обработки. Так как API автоматизации вызовов использует обратные вызовы веб-перехватчика для событий, обычно используется подписка "Сетка событий Webhook". Однако служба предлагает различные типы подписок, и у вас есть свобода выбрать наиболее подходящий вариант для ваших потребностей.

Эта архитектура имеет следующие преимущества:

Пример полезных данных события и дополнительные сведения о других событиях вызова, опубликованных в службе "Сетка событий", см. в этом руководстве.

Ниже приведен пример подписки веб-перехватчика сетки событий, в которой фильтр типов событий прослушивает только IncomingCall событие.

Image showing IncomingCall subscription.

Параметры маршрутизации звонков с помощью службы автоматизации вызовов и сетки событий

В службе автоматизации вызовов и сетке событий маршрутизация вызовов может быть адаптирована к конкретным потребностям. Используя расширенные фильтры в подписке Сетки событий, вы можете подписаться на IncomingCall уведомление, относящееся к определенному исходному или целевому номеру телефона или идентификатору Службы коммуникации Azure. Затем это уведомление можно направить в конечную точку, например подписку на веб-перехватчик. С помощью пакета SDK службы автоматизации вызовов приложение конечной точки может принять решение перенаправить вызов на другое удостоверение Службы коммуникации Azure или ТСОП.

Примечание.

Чтобы убедиться, что приложение получает только необходимые события, рекомендуется настроить фильтрацию в сетке событий. Это особенно важно в сценариях, которые создают IncomingCall события, например перенаправление входящего вызова ТСОП в конечную точку Службы коммуникации Azure. Если фильтр не используется, подписка сетки событий получает два IncomingCall события — один для вызова ТСОП и один для пользователя Службы коммуникации Azure, даже если вы намерены получать только первое уведомление. Пренебрежение к обработке таких сценариев с помощью фильтров или других механизмов в приложении может привести к бесконечным циклам и другому нежелательному поведению.

Ниже приведен пример расширенного фильтра в подписке сетки событий, data.to.PhoneNumber.Value просматривающей строку, начиная с номера телефона ТСОП "+18005551212".

Image showing Event Grid advanced filter.

Назначение чисел

При использовании IncomingCall уведомления в Службы коммуникации Azure у вас есть возможность связать любое определенное число с любой конечной точкой. Например, если вы получили номер +14255551212 телефона ТСОП и хотите назначить его пользователю с удостоверением 375f0e2f-e8db-4449-9bf7-2054b02e42b4 в приложении, следует сохранить сопоставление этого номера с удостоверением. IncomingCall При отправке уведомления, соответствующего номеру телефона в поле, можно вызвать Redirect API и указать удостоверение пользователя. Другими словами, можно управлять назначением номеров в приложении и маршруте или ответить на вызовы во время выполнения.

Рекомендации

  1. Чтобы служба "Сетка событий" доставляла события в конечную точку веб-перехватчика и не позволяет злоумышленникам заполнять конечную точку событиями, необходимо доказать владение вашей конечной точкой. Чтобы устранить все проблемы с получением событий, убедитесь, что настроенный веб-перехватчик проверяется с помощью обработки SubscriptionValidationEvent. Дополнительные сведения см. в этом руководстве.

  2. При получении входящего события вызова, если приложению не удается ответить с кодом состояния 200Ok в сетку событий в течение требуемого интервала времени, сетка событий использует экспоненциальную повторную попытку обратного выхода для отправки события еще раз. Тем не менее, входящий вызов только звонит в течение 30 секунд, и ответ на звонок после этого времени не будет эффективным. Чтобы предотвратить повторные попытки для истекших или устаревших вызовов, рекомендуется задать политику повторных попыток в качестве максимальной попытки доставки событий на 2 и время трансляции до 1 минуты. Эти параметры можно найти на вкладке "Дополнительные функции" подписки на события. Дополнительные сведения о повторных попытках см. здесь.

  3. Мы рекомендуем включить ведение журнала для ресурса Сетки событий для отслеживания событий, которые не доставляются. Для этого перейдите к системной теме на вкладке "События" ресурса коммуникации и включите ведение журнала из параметров диагностики. Журналы сбоев можно найти в таблице AegDeliveryFailureLogs.

    AegDeliveryFailureLogs
    | limit 10 
    | where Message has "incomingCall"
    

Следующие шаги