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