Jagamisviis:


Integreerige kolmanda osapoole helistajad Dynamics 365 vestlusanalüüsiga (eelvaade)

[See artikkel kuulub väljalaske-eelsete dokumentide hulka ja seda võidakse muuta.]

Selle integratsiooni abil saavad Dynamics 365-i kasutajad kasutada helistajaid, mida pakuvad kolmandatest osapooltest telefoniettevõtted (nt Twilio Flex), et teha ja vastu võtta telefonikõnesid rakenduses Dynamics 365 ning saada reaalajas tehisintellekti loodud ülevaateid ja rikkalikku kõnejärgset analüüsi oma kõnede kohta. Lisateave Dynamics 365 vestlusanalüüsi kohta

Oluline

  • See on eelvaate funktsioon.
  • Eelvaatefunktsioonid ei ole mõeldud kasutamiseks tootmises ja nende funktsioonid võivad olla piiratud. Nendele funktsioonidele kehtivad täiendavad kasutustingimused ja need on saadaval enne ametlikku väljalaset, et kliendid saaksid neile varakult juurde pääseda ja tagasisidet anda.

Kuidas integratsioon toimib?

Kõrgel tasemel koosneb integratsioon kolmest osast:

  1. Registreerige pakkuja: registreerige teenusepakkuja üksikasjad ja laske kasutajate loend salvestada, kasutades vestlusanalüüsi API-t.

  2. Kahveldage meediat: Kahveldage helivoog vestlusanalüüsi salvestajatesse SIPREC-protokolli abil.

  3. Reaalajas sündmuste saatmine: reaalajas transkriptsiooni ja kõneülevaadete kogemuse lubamiseks saatke kasutajaliidese sündmused pakkuja kliendi kasutajaliidesest Dynamics 365-i vestlusanalüüsi.

Näite Dynamics 365 vestlusanalüüsi ja kolmandast osapoolest telefoniteenuse pakkuja Twilio Flexi integreerimise kohta leiate teemast Twilio Flexi integreerimine Dynamics 365-i vestlusanalüüsiga.

Järgmine diagramm illustreerib integratsiooni toimimist.

Integratsioonivoogu kujutav joonis

1. samm: registreerige pakkuja

  1. Looge ID-rakendus Microsoft Entra .

  2. Meediumisalvestuse API õiguste lisamine:

    1. Avage loodud ID-rakenduses Microsoft Entra API õigused.

    2. Valige Lisa õigus.

    3. Minu organisatsioon kasutab jaotises API-d otsingut Media Recording for Dynamics 365 Sales ja valige see. Meediumisalvestuse valiku kuvatõmmis

    4. Kasutajate lisamine.Read.All luba ja valige Lisa luba

    Märkus.

    Hankige kindlasti administraatori nõusolek loa saamiseks, et saaksite rakenduse kontekstis vestlusanalüüsi API-le helistada. Vaadake lisateavet lubade ja nõusoleku kohta.

  3. Hankige luba vestlusanalüüsi API-de käitamiseks eelmises jaotises loodud rakenduse abil.

    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>'

    Parameeter scope määrab rakenduse Vestlusanalüüs rakenduse ID. Ärge muutke seda väärtust.

    Lisateavet käsu curl kohta leiate teemast ID-märkide hankimine Microsoft Entra teenusejuhtidele.

  4. Kolmanda osapoole teenusepakkuja registreerimiseks helistage järgmisele vestlusanalüüsi API-le:
    POST /api/v1.0/providers/tenants

    Määrake päringu kehas järgmised parameetrid:

    • orgID: Määrake Dynamics 365-i organisatsiooni ID.

    • Tüüp: määrake "kohandatud" kolmanda osapoole helistajatele.

    • hostimine: Määrake telefoniteenuse pakkuja hostimise tüüp. Näiteks "pilv" või "asutusesisene".

    • AccountId: Määrake telefoniteenuse pakkuja konto ID.

    • CerfificateSubjectName ja CertificateIssuer: Määrake telefoniteenuse pakkuja serdi üksikasjad.

    • SourceIPNetwork: Määrake SIPREC kliendi IP-aadress. Määrake "0.0.0.0", kui te ei soovi IP-aadressi piirata.
      Järgmine lõigend on näide päringuid taotlevast asutusest:

      
      {
         "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"
         }
      }
      

    Lisateavet API kohta leiate Swaggeri dokumentatsioonist.

  5. Salvestatavate kasutajate loendi saamiseks helistage järgmisele vestlusanalüüsi API-le.
    GET /api/v1.0/providers/users

Pärast seda, kui Dynamics 365 Salesi administraator on salvestuspoliitika loonud, saab pakkuja seda lõpp-punkti kasutada vestlusanalüüsi salvestajatesse sepistatavate meediumite filtreerimiseks.

2. samm: kahveldage meediat (SIPREC integreerimine)

Vestlusanalüüsi salvestajad rakendavad standardset SIPREC-protokolli.

Side on turvatud SIPS (port 5061) ja SRTP protokollide abil. Autentimine toimub SIPS-sõnumiühenduses mTLS-i abil ja see põhineb API-le antud sertifikaadil – see tähendab, et teenusepakkuja peab olema rentniku jaoks registreeritud, et luua SIPS-ühendus.

Järgmine ekraanipilt illustreerib SIPREC kliendi ja SIPREC serveri vahelist suhtlust:

Kuvatõmmis SIPREC kliendi ja SIPREC serveri vahelisest näidissuhtlusest.

Vestlusanalüüsi jaoks on vajalikud järgmised metaandmed.

Päised:

Päise nimi Kirjeldus Väärtuse näide
Helista-ID Kõne kordumatu identifikaator. Seda ID-d kasutatakse SIP-signaalide ja kasutaja toimingute, näiteks salvestamise alustamise/lõpetamise korrelatsiooniks. efxxxxxxxxxxxxx
X-konto ID Selle konto kordumatu identifikaator, kuhu kõne kuulub. Seda ID-d kasutatakse autentimiseks ja autoriseerimiseks. See on sama konto ID, mis on registreeritud rentniku API-s. AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Metaandmed

Metaandmete võtme nimi Kirjeldus Väärtuse näide
Roll Näitab, kas tegemist on müüja sissetuleva või väljamineva kõnega. ["sissetulev", "väljaminev"]
CallerDisplayName Helistaja kuvatav nimi. Kui see pole saadaval, kuvatakse telefoninumber. Kenny Smith
CalleeDisplayName Adressaadi kuvatav nimi. Kui see pole saadaval, kuvatakse telefoninumber. Alex Pagar

Siin on näited nõutavate päiste ja metaandmetega kutse- ja hüvastijättmissõnumitest.

KUTSE sõnum:

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--

BYE sõnum:

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 

Salvesti lõpp-punktid ja toetatud piirkonnad

Järgmises tabelis on loetletud toetatud salvesti lõpp-punktid ja nende piirkonnad. Salvestajad, mida soovite kasutada, saate konfigureerida oma telefoniteenuse pakkuja seadetes. Lisateavet selle kohta, kuidas seda Twilio Flexi puhul tehakse, leiate teemast 2. etapp: installige SIPREC-konnektor ja suunake kõned Dynamics 365-i.

Lõpp-punkt Regioon
media.recording.dynamics.com Globaalne (lähim piirkond)
southeastasia.media.recording.dynamics.com Kagu-Aasia
australiaeast.media.recording.dynamics.com Austraalia
sam.media.recording.dynamics.com Lõuna-Ameerika
canadacentral.media.recording.dynamics.com Kanada
switzerlandnorth.media.recording.dynamics.com Šveits
eastus.media.recording.dynamics.com US
francecentral.media.recording.dynamics.com Prantsusmaa
centralindia.media.recording.dynamics.com India
japaneast.media.recording.dynamics.com Jaapan
uae.media.recording.dynamics.com AÜE
uksouth.media.recording.dynamics.com Ühendkuningriigid
westeurope.media.recording.dynamics.com Lääne-Euroopa
zaf.media.recording.dynamics.com Lõuna-Aafrika

3. samm: saatke reaalajas sündmusi (helistaja kliendi integreerimine)

Selleks et vestlusanalüüs saaks pakkuda reaalajas transkriptsiooni ja ülevaateid, saab kolmanda osapoole helistaja kasutada kahte sündmust, et teavitada kõne algusest või lõpust.

  • Kõne alustatud sündmus: Kui vestlusanalüüs saab sündmuse "kõne alustatud", kuvatakse salvestusnupp ning reaalajas transkriptsioon ja ülevaated.

  • Kõne lõppenud sündmus: kui vestlusanalüüs saab sündmuse "kõne lõppenud", lõpetab see kõne ja kuvab nupu Täielik kokkuvõte , et saada tehisintellekti loodud kõne kokkuvõte ja statistika.

Sündmuste saatmiseks kasutage raiseEvent API-t rakenduses Dynamics 365 Channel Integration Framework (CIF).

Siin on näidis koodilõigend sündmuste saatmiseks.

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

Integratsiooni testimine

Pärast uue teenusepakkuja registreerimist rentnikuga ning SIPREC forkingu ja kliendi helistaja sündmuste seadistamist saate integratsiooni testida, luues uue teenusepakkujaga uue salvestuspoliitika.

  1. Logige müügikeskuse rakenduses sisse süsteemiadministraatorina.

  2. Tehke jaotises Muuda ala valik Müügiülevaadete sätted.

  3. Avage jaotis Globaalsed sätted>Vestlusanalüüs. Jaotises Kõnepakkujad näete kolmanda osapoole teenusepakkujat, kelle olete registreerinud.

  4. Looge uue teenusepakkuja jaoks salvestuspoliitika. Lisateavet leiate teemast Vestlusanalüüsi jaoks häälestamine Microsoft Teams

Järgmine ekraanipilt on näide Twilio salvestuspoliitikast.

Kuvatõmmis Twilio salvestuspoliitikast

Nüüd helistage kasutajale, kes on osa valitud turberoll (meie näites on poliitika lubatud kõigi turberollide jaoks).

Kui Dynamics 365 saab helistajalt kõne käivitatud sündmuse, on teil võimalus salvestamist alustada.

Kõnede salvestamise teatise kuvatõmmis

Pärast nupu Salvesta valimistnäete kõne ajal reaalajas transkriptsiooni ning kõne lõpus täielikku kokkuvõtet ja kõnede statistikat.

Vaata ka

Kõne kokkuvõtte lehe vaatamine ja mõistmine