Udostępnij przez


Przekaż dane informacji użytkownika do użytkownika (UUI) w nagłówku.

W tym artykule opisano sposób przekazywania informacji od użytkownika do użytkownika (UUI) w nagłówku podczas kierowania połączeń za pomocą SDK usługi Microsoft Azure Communication Services. Ta funkcja umożliwia użytkownikom przekazywanie metadanych dotyczących wywołania, adresata lub innych informacji istotnych dla ich aplikacji lub logiki biznesowej.

Zestaw SDK webJS usług Azure Communication Services umożliwia deweloperom dołączanie niestandardowych danych kontekstowych (dołączonych jako nagłówek do obiektu wywołującego) podczas kierowania i routingu wywołań od jednej osoby do innej. Te informacje, znane również jako dane interfejsu użytkownika (UUI, user-to-user information) lub dane interfejsu użytkownika sterowania wywołaniami, są małym elementem danych wstawionym przez aplikację inicjującą wywołanie. Dane UUI są nieprzezroczyste dla użytkowników końcowych wykonujących połączenie.

Obsługiwane informacje kontekstowe obejmują zarówno nagłówki niestandardowe typu freeform, jak i standardowy nagłówek UUI SIP. Ponadto po odebraniu wywołania przychodzącego nagłówki niestandardowe i interfejs użytkownika są uwzględniane w ładunku incomingCall .

Wszystkie niestandardowe dane kontekstowe są niewidoczne dla zestawu SDK do wykonywania połączeń lub protokołów SIP, a ich zawartość nie jest powiązana z żadnymi podstawowymi funkcjami.

Deweloperzy mogą przekazywać ten kontekst przy użyciu nagłówków niestandardowych, które składają się z opcjonalnych par klucz-wartość. Te pary można uwzględnić w akcjach AddParticipant lub Transfer w zestawie SDK wywołującym. Po dodaniu możesz odczytać ładunek danych, gdy połączenie przechodzi między punktami końcowymi. Efektywnie wyszukując te metadane i kojarząc je z wywołaniem, deweloperzy mogą unikać wyszukiwania zewnętrznej bazy danych i łatwo udostępniać informacje o zawartości w obiekcie wywołania.

Niestandardowy kontekst wywołania można przesyłać do punktów końcowych SIP przy użyciu protokołu SIP. Ta transmisja obejmuje zarówno niestandardowe nagłówki, jak i standardowy nagłówek UUI SIP. Gdy połączenie przychodzące jest kierowane z sieci telefonii, dane z kontrolera granic sesji (SBC) w nagłówkach niestandardowych i interfejsie użytkownika są również uwzględniane w ładunku zdarzenia IncomingCall.

Należy pamiętać, że wszystkie dane kontekstowe niestandardowe pozostają niewidoczne dla zestawu SDK wywołującego i nie są powiązane z żadnymi podstawowymi funkcjami zestawu SDK w przypadku użycia w protokołach SIP. Oto samouczek ułatwiający dodawanie niestandardowych nagłówków kontekstu podczas korzystania z zestawu WebJS SDK.

Ważne

Aby przekazać dane UUI za pomocą zestawu SDK do wywoływania, musisz użyć wersji GA lub publicznej wersji zapoznawczej WebJS SDK lub nowszej.

Parametry techniczne

Zestaw SDK wywołujący obsługuje dodawanie do pięciu niestandardowych nagłówków SIP (5) i 1000 niestandardowych nagłówków VOIP. Ponadto deweloperzy mogą dołączać dedykowany nagłówek User-To-User w ramach listy nagłówków SIP.

Maksymalna długość klucza nagłówka SIP wynosi 64 znaki, w tym prefiks X-MS-Custom. Po dodaniu nagłówka SIP do zestawu SDK do wywoływania, automatycznie dodaje prefiks X-MS-Custom-, który można zobaczyć, sprawdzając nagłówek SIP za pomocą inspektora pakietów.

Klucz nagłówka SIP może składać się z znaków alfanumerycznych i kilku wybranych symboli, takich jak ., , !, %*_+, . ~- Maksymalna długość wartości nagłówka SIP wynosi 256 znaków. Te same ograniczenia mają zastosowanie podczas konfigurowania nagłówków SIP na kontrolerze granic sesji (SBC). Wartość nagłówka SIP może składać się z znaków alfanumerycznych i kilku wybranych symboli, takich jak =, ;.!%*_+~-.

Maksymalna długość klucza nagłówka VOIP wynosi 64 znaki. Maksymalna długość wartości nagłówka VOIP wynosi 1024 znaki.

Podczas dodawania tych niestandardowych nagłówków jako dewelopera możesz dodać tylko nagłówki SIP, tylko nagłówki VoIP lub oba te nagłówki można uwzględnić.

Uwaga / Notatka

Podczas wysyłania nagłówków SIP zalecamy kodowanie wartości nagłówków jako adresy URL. Nawet jeśli wartości zawierają tylko prawidłowe znaki, pośrednie systemy mogą nie przeanalizować ich poprawnie, chyba że są zakodowane jako URL.

Uwaga / Notatka

Obecnie dodawanie niestandardowych nagłówków informacji użytkownik do użytkownika jest obsługiwane tylko podczas inicjowania wywołania 1:1. Przekazywanie nagłówków Informacje o użytkowniku do użytkownika w wywołaniach grup nie jest obecnie obsługiwane. Aby obejść to ograniczenie po uruchomieniu połączenia 1:1, możesz dodać uczestników przy zachowaniu informacji między użytkownikami w ramach wywołań.

Aby uzyskać szczegółowe informacje na temat niestandardowego interfejsu API kontekstu, zobacz zasób niestandardowego interfejsu API kontekstu.

Umieszczanie wywołania przy użyciu danych UUI (User-to-User Information)

// 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',
    },
};
});

Odczytywanie i analizowanie nagłówków informacji użytkownik-użytkownik w wywołaniu

Wystąpienie callAgent emituje zdarzenie incomingCall, gdy zalogowana tożsamość odbiera połączenie przychodzące. Aby nasłuchiwać tego zdarzenia i wyodrębnić informacje kontekstowe, subskrybuj przy użyciu jednej z następujących opcji:

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`);
        }
    }
});

Dalsze kroki