Основные понятия входящих вызовов
Службы коммуникации Azure служба автоматизации вызовов позволяет разработчикам создавать приложения, которые могут выполнять и принимать звонки. Он использует подписки Сетки событий для доставки IncomingCall
событий, что делает его важным для настройки среды для получения этих уведомлений для приложения для перенаправления или ответа на вызов эффективно. Поэтому понимание основных принципов входящих вызовов важно для использования полного потенциала автоматизации вызовов Службы коммуникации Azure.
Сценарии вызова
Перед настройкой среды важно понимать сценарии, которые могут активировать IncomingCall
событие. Чтобы активировать IncomingCall
событие, необходимо выполнить вызов к Службы коммуникации Azure удостоверению или номеру ТСОП, связанному с вашим ресурсом Службы коммуникации Azure. Ниже приведены примеры этих ресурсов:
- Удостоверение Службы коммуникации Azure
- Номер телефона ТСОП, принадлежащий ресурсу Службы коммуникации Azure
В этих примерах следующие сценарии активируют событие, отправленное в сетку IncomingCall
событий:
Источник | Назначение | Сценарии |
---|---|---|
удостоверение Службы коммуникации Azure | удостоверение Службы коммуникации Azure | Вызов, перенаправление, добавление участника, передача |
удостоверение Службы коммуникации Azure | Номер ТСОП, принадлежащий ресурсу Службы коммуникации Azure | Вызов, перенаправление, добавление участника, передача |
Общедоступная ТСОП | Номер ТСОП, принадлежащий ресурсу Службы коммуникации Azure | Вызов, перенаправление, добавление участника, передача |
Примечание.
Важно понимать, что удостоверение Службы коммуникации Azure может представлять пользователя или приложение. Хотя платформа не имеет встроенной функции для явного назначения удостоверения пользователю или приложению, ваше приложение или поддерживающая инфраструктура может выполнить это. Дополнительные сведения об этом разделе см. в руководстве по концепциям удостоверений.
Регистрация поставщика ресурсов Сетки событий
Если вы ранее не использовали сетку событий в подписке Azure, может потребоваться зарегистрировать поставщика ресурсов Сетки событий. Чтобы зарегистрировать поставщика, выполните следующие действия.
- Переход на портал Azure.
- В меню слева выберите Подписки.
- Выберите подписку, используемую для сетки событий.
- В разделе Параметры выберите Поставщики ресурсов.
- Найдите Microsoft.EventGrid.
- Если поставщик ресурсов не зарегистрирован, выберите "Зарегистрировать".
Получение уведомления о входящих вызовах из сетки событий
В Службы коммуникации Azure получение IncomingCall
уведомления осуществляется через подписку Сетки событий. Как получатель уведомления, вы можете выбрать способ его обработки. Так как API автоматизации вызовов использует обратные вызовы веб-перехватчика для событий, обычно используется подписка "Сетка событий Webhook". Однако служба предлагает различные типы подписок, и у вас есть свобода выбрать наиболее подходящий вариант для ваших потребностей.
Эта архитектура имеет следующие преимущества:
- С помощью фильтров подписок сетки событий можно направлять
IncomingCall
уведомление в определенные приложения. - Логика назначения номеров ТСОП и маршрутизации может существовать в приложении, а не статически настроена в Сети.
- Как описано в разделе сценариев вызова, приложение может быть уведомлено, даже если пользователи делают звонки между собой. Затем этот сценарий можно объединить вместе с API записи вызовов в соответствии с требованиями соответствия требованиям.
Пример полезных данных события и дополнительные сведения о других событиях вызова, опубликованных в службе "Сетка событий", см. в этом руководстве.
Ниже приведен пример подписки веб-перехватчика сетки событий, в которой фильтр типов событий прослушивает только IncomingCall
событие.
Параметры маршрутизации звонков с помощью службы автоматизации вызовов и сетки событий
В службе автоматизации вызовов и сетке событий маршрутизация вызовов может быть адаптирована к конкретным потребностям. Используя расширенные фильтры в подписке Сетки событий, вы можете подписаться на IncomingCall
уведомление, относящееся к определенному исходному или целевому номеру телефона или идентификатору Службы коммуникации Azure. Затем это уведомление можно направить в конечную точку, например подписку на веб-перехватчик. С помощью пакета SDK службы автоматизации вызовов приложение конечной точки может принять решение перенаправить вызов на другое удостоверение Службы коммуникации Azure или ТСОП.
Примечание.
Чтобы убедиться, что приложение получает только необходимые события, рекомендуется настроить фильтрацию в сетке событий. Это особенно важно в сценариях, которые создают IncomingCall
события, например перенаправление входящего вызова ТСОП в конечную точку Службы коммуникации Azure. Если фильтр не используется, подписка сетки событий получает два IncomingCall
события — один для вызова ТСОП и один для пользователя Службы коммуникации Azure, даже если вы намерены получать только первое уведомление. Пренебрежение к обработке таких сценариев с помощью фильтров или других механизмов в приложении может привести к бесконечным циклам и другому нежелательному поведению.
Ниже приведен пример расширенного фильтра в подписке сетки событий, data.to.PhoneNumber.Value
просматривающей строку, начиная с номера телефона ТСОП "+18005551212".
Назначение чисел
При использовании IncomingCall
уведомления в Службы коммуникации Azure у вас есть возможность связать любое определенное число с любой конечной точкой. Например, если вы получили номер +14255551212
телефона ТСОП и хотите назначить его пользователю с удостоверением 375f0e2f-e8db-4449-9bf7-2054b02e42b4
в приложении, следует сохранить сопоставление этого номера с удостоверением. IncomingCall
При отправке уведомления, соответствующего номеру телефона в поле, можно вызвать Redirect
API и указать удостоверение пользователя. Другими словами, можно управлять назначением номеров в приложении и маршруте или ответить на вызовы во время выполнения.
Рекомендации
Чтобы служба "Сетка событий" доставляла события в конечную точку веб-перехватчика и не позволяет злоумышленникам заполнять конечную точку событиями, необходимо доказать владение вашей конечной точкой. Чтобы устранить все проблемы с получением событий, убедитесь, что настроенный веб-перехватчик проверяется с помощью обработки
SubscriptionValidationEvent
. Дополнительные сведения см. в этом руководстве.При получении входящего события вызова, если приложению не удается ответить с кодом состояния 200Ok в сетку событий в течение требуемого интервала времени, сетка событий использует экспоненциальную повторную попытку обратного выхода для отправки события еще раз. Тем не менее, входящий вызов только звонит в течение 30 секунд, и ответ на звонок после этого времени не будет эффективным. Чтобы предотвратить повторные попытки для истекших или устаревших вызовов, рекомендуется задать политику повторных попыток в качестве максимальной попытки доставки событий на 2 и время трансляции до 1 минуты. Эти параметры можно найти на вкладке "Дополнительные функции" подписки на события. Дополнительные сведения о повторных попытках см. здесь.
Мы рекомендуем включить ведение журнала для ресурса Сетки событий для отслеживания событий, которые не доставляются. Для этого перейдите к системной теме на вкладке "События" ресурса коммуникации и включите ведение журнала из параметров диагностики. Журналы сбоев можно найти в таблице AegDeliveryFailureLogs.
AegDeliveryFailureLogs | limit 10 | where Message has "incomingCall"
Следующие шаги
- Ознакомьтесь с кратким руководством по созданию исходящего вызова.