Zdieľať cez


Integrujte vytáčacie programy tretích strán s Dynamics 365 Analýza konverzácie (verzia Preview)

[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 Dynamics 365 Analýza konverzácie

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 Analýza konverzácie API.

  2. Rozdeľte médiá: Rozdeľte audio stream do Analýza konverzácie rekordérov pomocou protokolu SIPREC.

  3. Odosielanie udalostí v reálnom čase: Ak chcete povoliť prepis v reálnom čase a Prehľady o hovoroch skúsenosti, odošlite udalosti používateľského rozhrania z používateľského rozhrania klienta poskytovateľa do Dynamics 365 Analýza konverzácie.

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

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 máte súhlas správcu na povolenie, aby ste mohli volať Analýza konverzácie API v kontexte aplikácie. Prečítajte si viac o povoleniach a súhlase.

  3. Získajte token na spustenie Analýza konverzácie 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 Analýza konverzácie. 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. Zavolaním nasledujúceho Analýza konverzácie API zaregistrujte poskytovateľa služieb tretej strany:
    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 API Analýza konverzácie získate zoznam používateľov na zaznamenanie:
    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 Analýza konverzácie rekordérov.

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

Záznamníky Analýza konverzácie 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 sa vyžadujú pre Analýza 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 mohol Analýza konverzácie poskytnúť prepis a prehľady v reálnom čase, vytáčací program tretej strany môže použiť dve udalosti na upozorňovanie na začiatok alebo koniec hovoru.

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

  • Udalosť ukončenia hovoru: Keď Analýza konverzácie dostane udalosť „hovor ukončený“, Zabaliť hovor spustí a zobrazí Úplné zhrnutie tlačidlo a získate súhrn hovoru vygenerované AI a prehľady.

Ak chcete odoslať udalosti, použite raiseEvent API v Dynamics 365 – architektúra na integráciu kanálov (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> Analýza konverzácie. 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 Analýza konverzácie

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 číselníka, 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é zhrnutie a Prehľady o hovoroch na konci hovoru.

Pozrite si tiež

Pozrite si a pochopte stránku súhrn hovoru