Поделиться через


Использование пакета SDK для вызова ACS для передачи данных между вызовами контекстных данных пользователей и пользователей (UUI)

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

Пакет SDK webJS для Службы коммуникации Azure (ACS) предоставляет разработчикам возможность включать пользовательские контекстные данные (включенные в заголовок для вызывающего объекта) при перенаправлении и маршрутизации вызовов от одного человека к другому. Эта информация, также известная как данные UUI или данные UUI, представляет собой небольшую часть данных, вставленную приложением, инициирующим вызов. Данные UUI непрозрачны для конечных пользователей, выполняющих вызов.

Контекстные сведения, поддерживаемые, включают как пользовательские заголовки freeform, так и стандартный заголовок SIP "пользователь — пользователь" (UUI). Кроме того, при получении входящего вызова пользовательские заголовки и UUI включаются в входящие полезные данныеCall.

Все пользовательские данные контекста непрозрачны к протоколам SDK или SIP, а его содержимое не связано с основными функциями.

Разработчики могут передавать этот контекст с помощью пользовательских заголовков, которые состоят из необязательных пар "ключ-значение". Эти пары можно включить в действия AddParticipant или Transfer в вызывающем пакете SDK. После добавления можно считывать полезные данные при перемещении вызова между конечными точками. Эффективно просматривая эти метаданные и связывая его с вызовом, разработчики могут избежать подстановок внешней базы данных и получить информацию о содержимом, доступную в объекте вызова.

Контекст пользовательского вызова можно передать в конечные точки SIP с помощью протокола SIP. Эта передача включает как пользовательские заголовки, так и стандартный заголовок SIP для пользователей (UUI). При маршрутизации входящего вызова из телефонной сети данные из пограничного контроллера сеанса (SBC) в пользовательских заголовках и UUI также включаются в полезные данные события ВходящегоCall.

Важно отметить, что все пользовательские данные контекста остаются прозрачными для вызывающего пакета SDK и не связаны с основными функциями пакета SDK при использовании в протоколах SIP. Ниже приведено руководство по добавлению пользовательских заголовков контекста при использовании пакета SDK WebJS.

Внимание

Чтобы использовать возможность передачи данных пользовательской информации (UUI) с помощью вызывающего пакета SDK, необходимо использовать общедоступную версию пакета SDK WebJS или общедоступную предварительную версию 1.29.1 или более позднюю.

Технические параметры

Вызывающий пакет SDK поддерживает добавление до 5 настраиваемых заголовков SIP и 1000 пользовательских заголовков VOIP. Кроме того, разработчики могут включать выделенный заголовок user-to-User в составе списка заголовков SIP.

Максимальная длина ключа заголовка SIP составляет 64 символов, включая префикс X-MS-Custom. Обратите внимание, что при добавлении заголовка SIP вызывающий пакет SDK автоматически добавит префикс X-MS-Custom(который можно увидеть при проверке заголовка SIP с помощью инспектора пакетов).

Ключ заголовка SIP может состоять из буквенно-цифровых символов и нескольких выбранных символов, которые включают ., !, +*%_~. - Максимальная длина значения заголовка SIP составляет 256 символов. Те же ограничения применяются при настройке заголовков SIP в SBC. Значение заголовка SIP может состоять из буквенно-цифровых символов и нескольких выбранных символов, которые включают =, %~;.+!*_. -

Максимальная длина ключа заголовка VOIP составляет 64 символов. Максимальная длина значения заголовка VOIP составляет 1024 символов.

При добавлении этих пользовательских заголовков в качестве разработчика можно добавить только заголовки SIP, можно включить только заголовки VoIP или оба.

Примечание.

В настоящее время добавление пользовательских заголовков сведений о пользователях поддерживается только при инициировании вызова 1:1. Передача заголовков сведений о пользователях в групповых вызовах в настоящее время не поддерживается. Чтобы обойти это после начала вызова 1:1, вы можете включить дополнительных участников при сохранении сведений о пользователях в рамках вызовов.

Дополнительные сведения об API пользовательского интерфейса контекста см. на странице ресурсов пользовательского api контекста.

Поместите вызов с данными пользователей и пользователем (UUI)

// Setting custom context UUI Headers
const callOptions = {
    customContext: {
        voipHeaders: [
            {key: 'voip-key-1', value: 'voip-value-1'},
            {key: 'voip-key-2', value: 'voip-value-2'}
        ],

        sipHeaders: [
            {key: 'sip-key-1', value: 'sip-value-1'},
            {key: 'sip-key-2', value: 'sip-value-2'}
        ],
        userToUser: 'userToUserHeader',
    },
};
});

Чтение и анализ заголовков сведений о пользователях и пользователях в вызове

Экземпляр callAgent создает событие incomingCall, когда зарегистрированный в системе идентификатор принимает входящий вызов. Чтобы прослушивать это событие и извлекать контекстные сведения, подпишитесь с помощью одного из следующих параметров:

let info = '';
 
callAgent.on("incomingCall", (args) => {
    const incomingCall = args.incomingCall;
    if (incomingCall.customContext) {
        if (incomingCall.customContext.userToUser) {
            info += `userToUser: '${incomingCall.customContext.userToUser}'\n`;
        }
        if (incomingCall.customContext.sipHeaders) {
            incomingCall.customContext.sipHeaders.forEach(header => info += `sip: ${header.key}: '${header.value}'\n`);
        }
        if (incomingCall.customContext.voipHeaders) {
            incomingCall.customContext.voipHeaders.forEach(header => info += `voip: ${header.key}: '${header.value}'\n`);
        }
    }
});

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