Zdieľať cez


Integrujte vytáčacie programy tretích strán s inteligenciou konverzácie Dynamics 365 (ukážka)

[Tento článok je predbežnou dokumentáciou a môže sa zmeniť.]

Vďaka tejto integrácii môžu používatelia Dynamics 365 používať vytáčacie programy poskytované telefónnymi spoločnosťami tretích strán, ako je Twilio Flex, na uskutočňovanie a prijímanie telefonických hovorov v Dynamics 365 a získavať prehľady generované AI v reálnom čase a bohatú analýzu svojich hovorov po hovore. . Získajte viac informácií o konverzačnej inteligencii Dynamics 365

Dôležité

  • Toto je ukážková funkcia.
  • Funkcie ukážky nie sú určené na produkčné účely a môžu mať obmedzenú funkčnosť. Na tieto funkcie sa vzťahujú dodatočné podmienky používania a sú k dispozícii pred oficiálnym vydaním, aby zákazníci mohli získať skorý prístup a poskytnúť spätnú väzbu.

Ako funguje integrácia

Na vysokej úrovni sa integrácia skladá z troch častí:

  1. Zaregistrujte poskytovateľa: Zaregistrujte podrobnosti poskytovateľa a získajte zaznamenanie zoznamu používateľov pomocou rozhrania API konverzácie.

  2. Rozdeľovanie médií: Rozdeľovanie zvukového toku do záznamníkov inteligencie konverzácie pomocou protokolu SIPREC.

  3. Odosielanie udalostí v reálnom čase: Ak chcete povoliť prepis a prehľad hovorov v reálnom čase, odošlite udalosti používateľského rozhrania z používateľského rozhrania klienta poskytovateľa do spravodajstva konverzácie Dynamics 365.

Príklad integrácie medzi konverzačnou inteligenciou Dynamics 365 a poskytovateľom telefónnych služieb tretej strany, Twilio Flex, nájdete v časti Integrácia Twilio Flex s konverzačnou inteligenciou Dynamics 365.

Nasledujúci diagram znázorňuje, ako integrácia funguje:

Diagram zobrazujúci integračný tok

Krok 1: Zaregistrujte poskytovateľa

  1. Vytvorte Microsoft Entra aplikáciu ID.

  2. Pridať povolenie rozhrania API na nahrávanie médií:

    1. V Microsoft Entra aplikácii ID, ktorú ste vytvorili, prejdite na Povolenia rozhrania API.

    2. Vyberte Pridať povolenie.

    3. V časti API používa moja organizácia vyhľadajte Media Recording for Dynamics 365 Sales a vyberte ho: Snímka obrazovky s možnosťou nahrávania médií

    4. Pridajte Users.Read.All povolenie a vyberte Pridať povolenie

    Poznámka

    Uistite sa, že ste získali súhlas správcu na povolenie, aby ste mohli volať rozhranie API pre inteligenciu konverzácie v kontexte aplikácie. Prečítajte si viac o povoleniach a súhlase.

  3. Získajte token na spustenie rozhrania Conversation Intelligence API pomocou aplikácie vytvorenej v predchádzajúcej časti:

    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token -d 'client_id=<your app id>' -d 'grant_type=client_credentials' -d 'scope=f448d7e5-e313-4f90-a3eb-5dbb3277e4b3/.default' -d 'client_secret=<your app secret>'

    Parameter scope určuje ID aplikácie aplikácie Conversation intelligence. Túto hodnotu nemeňte.

    Ďalšie informácie o príkaze curl nájdete v časti Získať Microsoft Entra ID tokeny pre principálov služieb.

  4. Ak chcete zaregistrovať poskytovateľa služieb tretej strany, zavolajte nasledujúce rozhranie API konverzácie:
    POST /api/v1.0/providers/tenants

    V tele požiadavky zadajte nasledujúce parametre:

    • orgID: Uveďte ID organizácie Dynamics 365.

    • Typ: Určite „vlastné“ pre vytáčacie programy tretích strán.

    • hosting: Uveďte typ hostingu poskytovateľa telefónnych služieb. Napríklad „cloud“ alebo „lokálny“.

    • AccountId: Uveďte ID účtu poskytovateľa telefónnych služieb.

    • CerfificateSubjectName a CertificateIssuer: Uveďte podrobnosti certifikátu poskytovateľa telefónnej služby.

    • SourceIPNetwork: Uveďte IP adresu klienta SIPREC. Ak nechcete obmedziť adresu IP, zadajte „0.0.0.0“.
      Nasledujúci úryvok je príkladom tela požiadavky:

      
      {
         "orgId": "ad3dca46-962a-4895-9f85-d25f3828781f",
         "Type": "custom",
         "hosting": "cloud",
         "displayName": "Test Custom Provider",
         "AuthenticationDetails": 
         {
             "AccountId":"adxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
             "CertificateSubjectName": "certSubject",
             "CertificateIssuer": "issuer",
             "SourceIPNetwork": "0.0.0.0"
         }
      }
      

    Ďalšie informácie o rozhraní API nájdete v dokumentácii Swagger.

  5. Zavolaním nasledujúceho rozhrania API pre inteligenciu konverzácií získate zoznam používateľov, ktorí sa majú zaznamenať:
    GET /api/v1.0/providers/users

Keď správca Dynamics 365 Sales vytvorí politiku nahrávania, poskytovateľ môže použiť tento koncový bod na filtrovanie médií, ktoré budú rozdelené do záznamov inteligencie konverzácie.

Krok 2: Rozdeľte médiá (integrácia SIPREC)

Nahrávače konverzácie Intelligence implementujú štandardný protokol SIPREC.

Komunikácia je zabezpečená pomocou protokolov SIPS (port 5061) a SRTP. Autentifikácia sa vykonáva pomocou mTLS v pripojení správ SIPS a je založená na certifikáte poskytnutom API – čo znamená, že poskytovateľ musí byť zaregistrovaný, aby mohol nájomca vytvoriť SIPS pripojenie.

Nasledujúca snímka obrazovky ilustruje komunikáciu medzi klientom SIPREC a serverom SIPREC:

Snímka obrazovky vzorovej komunikácie medzi klientom SIPREC a serverom SIPREC.

Nasledujúce metadáta sú potrebné na spravodajstvo konverzácie:

Hlavičky:

Názov hlavičky Popis Príklad hodnoty
Call-ID Jedinečný identifikátor hovoru. Toto ID sa používa na koreláciu signálov SIP a akcií používateľa, ako je spustenie/zastavenie nahrávania. efxxxxxxxxxxxxx
X-AccountId Jedinečný identifikátor účtu, do ktorého hovor patrí. Toto ID sa používa na autentifikáciu a autorizáciu. Ide o rovnaké ID účtu zaregistrované v rozhraní API pre nájomníka. ACxxxxxxxxxxxxxxxxxxxxxxx

Metadáta

Názov kľúča metadát Popis Príklad hodnoty
Rola Označuje, či ide o prichádzajúci alebo odchádzajúce hovor pre predajcu. ["prichádzajúci odchádzajúci"]
Zobrazovaný názov volajúceho Zobrazované meno volajúceho. Ak nie je k dispozícii, zobrazí sa telefónne číslo. Kenny Smith
CalleeDisplayName Zobrazované meno príjemcu. Ak nie je k dispozícii, zobrazí sa telefónne číslo. Alex Baker

Tu sú príklady pozvánok a správ na rozlúčku s požadovanými hlavičkami a metadátami:

INVITE správa:

INVITE sip:SRS@media.recording.dynamics.com:5061;transport=tls SIP/2.0 
Via: SIP/2.0/TLS 84.172.x.x:5061;branch=z9hG4bK4fa2.cdabfe83d76d3c41987802096d3b342a.0;received=172.16.x.x;rport=40334 
Via: SIP/2.0/UDP 172.25.x.x:5060;rport=5060;branch=z9hG4bK917ce574-0345-4c3d-9b63-d98c2c57dbe6_c3356d0b_599-10236398515455707148 
To: <sip:SRS@media.recording.dynamics.com:5061;transport=tls> 
From: <sip:SRC@sip.provider.com>;tag=66790678_c3356d0b_917ce574-0345-4c3d-9b63-d98c2c57dbe6 
Call-ID: efab0870bc597cb3fb56010921e2f57f 
CSeq: 1 INVITE 
Contact: <sip:SRC@172.25.x.x:5060;transport=udp>;+sip.src 
Max-Forwards: 67 
Record-Route: <sip:84.172.x.x:5061;transport=tls;r2=on;lr>,<sip:84.172.x.x;r2=on;lr> 
User-Agent: provider Gateway 
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,NOTIFY 
Require: siprec 
Content-Length: 3194 
Content-Type: multipart/mixed;boundary=\"----=_Part_1253_283419664.1674116473425\" 
Min-SE: 35 
X-AccountId: ACxxxxxxxxxxxxxxxxxxxx 
------=_Part_1253_283419664.1674116473425 

Content-Type: application/sdp 
v=0 
o=root 1176539620 1176539620 IN IP4 172.18.x.x 
s=provider Media Gateway 
c=IN IP4 84.172.x.x 
t=0 0 
m=audio 15352 RTP/SAVP 0 8 101 
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:<Encryption_key>
a=rtpmap:0 PCMU/8000 
a=rtpmap:8 PCMA/8000 
a=rtpmap:101 telephone-event/8000 
a=fmtp:101 0-16 
a=ptime:20 
a=maxptime:20 
a=sendonly 
a=label:inbound 
m=audio 16022 RTP/SAVP 0 8 101 
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:<Encryption_key> 
a=rtpmap:0 PCMU/8000 
a=rtpmap:8 PCMA/8000 
a=rtpmap:101 telephone-event/8000 
a=fmtp:101 0-16 
a=ptime:20 
a=maxptime:20 
a=sendonly 
a=label:outbound 
------=_Part_1253_283419664.1674116473425 

Content-Type: application/rs-metadata+xml 
Content-Disposition: recording-session 
<?xml version=\"1.0\" encoding=\"UTF-8\"?> 
<recording xmlns='urn:ietf:params:xml:ns:recording:1'> 
    <datamode>complete</datamode> 
    <session session_id=\"Wd/putWgTWCW2z1lI5Db9w==\"> 
            <ExtensionParameters  xmlns=\"http://provider.com/siprec\"> 
                    <Parameter name=\"Role\" value=\"inbound\"/> 
                    <Parameter name=\"CallerDisplayName\" value=\"Kiana Anderson\"/> 
                    <Parameter name=\"CalleeDisplayName\" value=\"Tomas Richardson\"/> 
            </ExtensionParameters> 
    </session> 
        <participant participant_id=\"bXCloPcETS6P/kfeeJtiow==\"> 
            <nameID aor=\"EE5C7EF0\"/> 
        </participant> 
        <participant participant_id=\"3nPi8XzBSzWrtSLlkU8Gjw==\"> 
            <nameID aor=\"230908\"/> 
        </participant> 
        <stream stream_id=\"9xff8FcdRUaJCSTxWFbV9g==\" session_id=\"Wd/putWgTWCW2z1lI5Db9w==\"><label>inbound</label></stream> 
        <stream stream_id=\"f/Qezx4jTMqiWSB1vW7oJA==\" session_id=\"Wd/putWgTWCW2z1lI5Db9w==\"><label>outbound</label></stream> 
    <sessionrecordingassoc session_id=\"Wd/putWgTWCW2z1lI5Db9w==\"> 
        <associate-time>2023-01-19T08:21:13.382512Z</associate-time> 
    </sessionrecordingassoc> 
        <participantsessionassoc participant_id=\"bXCloPcETS6P/kfeeJtiow==\" session_id=\"Wd/putWgTWCW2z1lI5Db9w==\"> 
            <associate-time>2023-01-19T08:21:13.382512Z</associate-time> 
        </participantsessionassoc> 
        <participantsessionassoc participant_id=\"3nPi8XzBSzWrtSLlkU8Gjw==\" session_id=\"Wd/putWgTWCW2z1lI5Db9w==\"> 
            <associate-time>2023-01-19T08:21:13.382512Z</associate-time> 
        </participantsessionassoc> 
        <participantstreamassoc participant_id=\"bXCloPcETS6P/kfeeJtiow==\"> 
                <send>9xff8FcdRUaJCSTxWFbV9g==</send> 
                <recv>f/Qezx4jTMqiWSB1vW7oJA==</recv> 
        </participantstreamassoc> 
        <participantstreamassoc participant_id=\"3nPi8XzBSzWrtSLlkU8Gjw==\"> 
                <send>f/Qezx4jTMqiWSB1vW7oJA==</send> 
                <recv>9xff8FcdRUaJCSTxWFbV9g==</recv> 
        </participantstreamassoc> 
</recording> 
------=_Part_1253_283419664.1674116473425--

Správa BYE:

BYE sip:SRS@media.recording.dynamics.com:5061;transport=tls SIP/2.0 
Via: SIP/2.0/TLS 84.172.x.x:5061;branch=z9hG4bK1fa2.d03c36b567136fcfae84281e926cda62.0;received=172.16.x.x;rport=40334 
Via: SIP/2.0/UDP 172.25.x.x:5060;rport=5060;received=84.144.x.x;branch=z9hG4bK917ce574-0345-4c3d-9b63-d98c2c57dbe6_c3356d0b_600-2513288074170844985 
To: <sip:SRS@media.recording.dynamics.com:5061;transport=tls>;tag=OXFWHPJQTL 
From: <sip:SRC@sip.provider.com>;tag=66790678_c3356d0b_917ce574-0345-4c3d-9b63-d98c2c57dbe6 
Call-ID: efab0870bc597cb3fb56010921e2f57f 
CSeq: 2 BYE 
Max-Forwards: 68 
User-Agent: provider Gateway 
Require: siprec 
Content-Length: 901 
Content-Type: multipart/mixed;boundary=\"----=_Part_29418_1017575873.1674116842924\" 
X-AccountId: ACxxxxxxxxxxxxx 

Podporované koncové body a oblasti rekordéra

V nasledujúcej tabuľke sú uvedené podporované koncové body rekordéra a ich oblasti. Rekordéry, ktoré chcete používať, môžete nakonfigurovať v nastaveniach poskytovateľa telefónnej služby. Ak sa chcete dozvedieť, ako sa to robí pre Twilio Flex, pozrite si Krok 2: Nainštalujte konektor SIPREC a smerujte hovory do Dynamics 365.

Koncový bod Oblasť
media.recording.dynamics.com Globálne (najbližší región)
southeastasia.media.recording.dynamics.com Juhovýchodná Ázia
australiaeast.media.recording.dynamics.com Austrália
sam.media.recording.dynamics.com Južná Amerika
canadacentral.media.recording.dynamics.com Kanada
switzerlandnorth.media.recording.dynamics.com Švajčiarsko
eastus.media.recording.dynamics.com USA
francecentral.media.recording.dynamics.com Francúzsko
centralindia.media.recording.dynamics.com India
japaneast.media.recording.dynamics.com Japonsko
uae.media.recording.dynamics.com UAE
uksouth.media.recording.dynamics.com Spojené kráľovstvo
westeurope.media.recording.dynamics.com Západná Európa
zaf.media.recording.dynamics.com Južná Afrika

Krok 3: Odosielanie udalostí v reálnom čase (integrácia klienta Dialer)

Aby mohla inteligencia konverzácie poskytovať prepis a prehľad v reálnom čase, môže vytáčanie tretej strany použiť dve udalosti na upozorňovanie na začiatok alebo koniec hovoru.

  • Udalosť spustenia hovoru: Keď inteligencia konverzácie spustí udalosť „hovor začal“, zobrazí sa tlačidlo nahrávania a prepis a prehľad v reálnom čase.

  • Udalosť ukončenia hovoru: Keď inteligencia konverzácie dostane udalosť „ukončenie hovoru“, ukončí hovor a zobrazí Úplné zhrnutie získate súhrn hovorov a prehľady vygenerované AI.

Ak chcete odoslať udalosti, použite raiseEvent API v Dynamics 365 Channel Integration Framework (CIF).

Tu je vzor úryvok kódu na odoslanie udalostí:

export interface CallStartedEvent { 
  callId: string; 
  startTime: Date; 
  isIncomingCall: boolean; 
  contactNumber: string; 
  contactName: string; 
} 

export interface CallEndedEvent { 
  callId: string; 
  callDurationInSeconds: number; 
  callTerminationReason: string; // ['success', 'error'] 
  callEndTime: Date; 
  isCallStarted: boolean; 
} 

dialer.Actions.addListener('onCallStarted', (payload: any) => { 
  const callStartedEvent : CallStartedEvent = { 
    callId: payload.call_sid, 
    startTime: new Date(), 
    isIncomingCall: payload.attributes.is_incoming_call, 
    contactName: payload.attributes.caller_name, 
    contactNumber: payload.attributes.caller_phone_number 
  }; 

  // @ts-ignore 
  Microsoft.CIFramework.raiseEvent('WIDGET_CALL_STARTED', callStartedEvent); 
}); 

dialer.Actions.addListener('onCallEnded', (payload: any) => { 
  const callEndedEvent : CallEndedEvent = { 
    callId: payload.call_sid, 
    callEndTime: new Date(), 
    callTerminationReason: 'success', 
    isCallStarted: true, 
    callDurationInSeconds: payload.attributes.call_length 
  }; 

  // @ts-ignore 
  Microsoft.CIFramework.raiseEvent('WIDGET_CALL_ENDED', callEndedEvent); 
});

Otestujte integráciu

Po registrácii nového poskytovateľa u nájomcu a nastavení rozvetvenia SIPREC a udalostí vytáčania klienta môžete otestovať integráciu vytvorením novej politiky nahrávania s novým poskytovateľom.

  1. Prihláste sa ako správca systému v aplikácii Centrum predaja.

  2. V oblasti Zmeniť vyberte Nastavenia štatistík predaja.

  3. Ísť do Globálne nastavenia> Konverzačná inteligencia. V časti Poskytovatelia hovorov uvidíte poskytovateľa tretej strany, ktorého ste zaregistrovali.

  4. Vytvorte politiku nahrávania pre nového poskytovateľa. Ďalšie informácie nájdete v časti Nastaviť Microsoft Teams pre konverzačné spravodajstvo

Nasledujúca snímka obrazovky je príkladom politiky nahrávania pre Twilio.

Snímka obrazovky politiky nahrávania pre Twilio

Teraz zavolajte používateľovi, ktorý je súčasťou vybratého rola zabezpečenia (v našom príklade je politika povolená pre všetky roly zabezpečenia).

Keď Dynamics 365 dostane súbor hovor Začal udalosť z dialera, budete mať možnosť spustiť nahrávanie:

Snímka obrazovky s upozornením na nahrávanie hovorov

Po výbere Záznam, budete môcť vidieť prepis v reálnom čase počas hovoru a úplný súhrn a prehľad hovorov na konci hovoru.

Pozrite si tiež

Pozrite si a pochopte stránku súhrnu hovorov