Bendrinti naudojant


Trečiųjų šalių numerio rinkiklių integravimas į "Dynamics 365 Pokalbių analizė" (peržiūros versija)

[Šis straipsnis yra negalutinio leidimo dokumentacija ir gali keistis.]

Su šia integracija "Dynamics 365" vartotojai gali naudoti numerio rinkiklius, kuriuos teikia trečiųjų šalių telefonijos įmonės, pvz., "Twilio Flex", norėdami skambinti ir priimti telefono skambučius programoje "Dynamics 365"" ir gauti realiuoju laiku DI sugeneruotas įžvalgas bei išsamią savo skambučių analizę po skambučio. Sužinokite daugiau apie "Dynamics 365" Pokalbių analizė

Svarbu

  • Tai yra peržiūros versijos funkcija.
  • Peržiūros funkcijos nėra skirtos naudoti gamybai ir gali būti apribotas jų funkcionalumas. Šioms funkcijoms taikomos papildomos naudojimo sąlygos ir jos pasiekiamos prieš oficialų išleidimą, kad klientai galėtų gauti išankstinę prieigą ir pateikti atsiliepimų.

Kaip veikia integracija

Aukšto lygio integraciją sudaro trys dalys:

  1. Užregistruokite teikėją: Užregistruokite teikėjo duomenis ir gaukite naudotojų sąrašą, kurį norite įrašyti naudodami Pokalbių analizė API.

  2. Atšakokite laikmeną: Garso srautą atšakokite į Pokalbių analizė įrašymo įrenginius naudodami SIPREC protokolą.

  3. Siųsti įvykius realiuoju laiku: Norėdami įgalinti transkripciją realiuoju laiku ir Skambučių įžvalgos patirtį, siųskite vartotojo sąsajos įvykius iš teikėjo kliento vartotojo sąsajos į "Dynamics 365 Pokalbių analizė".

"Dynamics 365 Pokalbių analizė" ir trečiosios šalies telefonijos teikėjo "Twilio Flex" integravimo pavyzdžio ieškokite "Twilio Flex" integravimas su "Dynamics 365 Pokalbių analizė".

Šioje diagramoje parodyta, kaip veikia integravimas:

Diagrama, vaizduojanti integravimo srautą

Veiksmas 1: Užregistruokite teikėją

  1. Microsoft Entra Sukurkite ID programą.

  2. Pridėkite medijos įrašymo API leidimą:

    1. Sukurtoje Microsoft Entra ID programoje eikite į API leidimai.

    2. Pasirinkite Pridėti leidimą.

    3. Dalyje API mano organizacija naudoja "Dynamics 365 Sales " medijos įrašymo iešką ir ją pasirenka: Medijos įrašymo parinkties ekrano kopija

    4. Pridėti Users.Read.All teises ir pasirinkite Įtraukti teises

    Pastaba.

    Būtinai gaukite administratoriaus sutikimą dėl leidimo skambinti Pokalbių analizė API programos kontekste. Sužinokite daugiau apie leidimus ir sutikimą.

  3. Gaukite prieigos raktą, kad paleistumėte Pokalbių analizė API naudodami ankstesniame skyriuje sukurtą programą:

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

    Parametras scope nurodo Pokalbių analizė programos ID. Nekeiskite šios vertės.

    Daugiau informacijos apie curl komandą rasite Gaukite Microsoft Entra ID atpažinimo ženklus aptarnavimo vykdytojams.

  4. Norėdami užregistruoti trečiosios šalies paslaugų teikėją, skambinkite naudodami šią Pokalbių analizė API:
    POST /api/v1.0/providers/tenants

    Prašymo tekste nurodykite šiuos parametrus:

    • orgID: Nurodykite "Dynamics 365" organizacijos ID.

    • Tipas: Nurodykite "pasirinktinis" trečiųjų šalių numerio rinkikliams.

    • priegloba: Nurodykite telefonijos teikėjo prieglobos tipą. Pavyzdžiui, "debesis" arba "vietinis".

    • AccountId: Nurodykite telefonijos teikėjo paskyros ID.

    • CerfificateSubjectName ir CertificateIssuer: Nurodykite telefonijos teikėjo sertifikato informaciją.

    • ŠaltinisIPNetas: Nurodykite SIPREC kliento IP adresą. Nurodykite "0.0.0.0", jei nenorite apriboti IP adreso.
      Toliau pateiktas fragmentas yra prašymo pateikimo institucijos pavyzdys:

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

    Daugiau informacijos apie API rasite "Swagger" dokumentacijoje.

  5. Skambinkite naudodami šią API Pokalbių analizė, kad gautumėte įrašytų vartotojų sąrašą:
    GET /api/v1.0/providers/users

Kai "Dynamics 365 Sales" administratorius sukuria įrašymo strategiją, teikėjas gali naudoti šį galinį punktą, kad filtruotų laikmeną, kuri bus prijungta prie Pokalbių analizė rašytuvų.

Veiksmas 2: Šakutė medija (SIPREC integracija)

Pokalbių analizė savirašiai įgyvendina standartą SIPREC protokolas.

Ryšys apsaugotas naudojant SIPS (5061 prievadą) ir SRTP protokolus. Autentifikavimas atliekamas naudojant mTLS SIPS pranešimo ryšyje ir yra pagrįstas API pateiktu sertifikatu - tai reiškia, kad teikėjas turi būti užregistruotas nuomotojui, kad galėtų užmegzti SIPS ryšį.

Toliau pateikta ekrano kopija iliustruoja ryšį tarp SIPREC kliento ir SIPREC serverio:

Ryšio tarp SIPREC kliento ir SIPREC serverio pavyzdžio ekrano nuotrauka.

Norint Pokalbių analizė, reikalingi šie metaduomenys:

Antraštes:

Antraštės pavadinimas Aprašas Vertės pavyzdys
Skambučio ID Unikalus skambučio identifikatorius. Šis ID naudojamas SIP signalams ir vartotojo veiksmams, pvz., pradėti / sustabdyti įrašymą, susieti. efxxxxxxxxxxxxx
X-AccountId Paskyros, kuriai priklauso skambutis, unikalus identifikatorius. Šis ID naudojamas autentifikavimui ir autorizacijai. Tai tas pats nuomotojo paskyros ID, užregistruotas API. ACxxxxxxxxxxxxxxxxx

Metaduomenys

Metaduomenų rakto pavadinimas Aprašas Vertės pavyzdys
Vaidmuo Nurodo, ar tai pardavėjo gaunamas, ar siunčiamas skambutis. ["gaunamas", "siunčiamas"]
CallerDisplayName Skambinančiojo rodomas vardas. Jei nėra, rodomas telefono numeris. Kenny Smithas
CalleeDisplayName Gavėjo rodomas vardas. Jei nėra, rodomas telefono numeris. Alexas Bakeris

Toliau pateikiami kvietimų ir šalutinių pranešimų su būtinomis antraštėmis ir metaduomenimis pavyzdžiai.

PAKVIESK žinutę:

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 žinutė:

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 

Palaikomi įrašymo įrenginio galiniai punktai ir regionai

Šioje lentelėje išvardyti palaikomi įrašymo įrenginio galiniai punktai ir jų regionai. Įrašymo įrenginius, kuriuos norite naudoti, galite konfigūruoti savo telefonijos teikėjo parametruose. Norėdami sužinoti, kaip tai daroma naudojant "Twilio Flex", žr.: 2 veiksmas Įdiekite SIPREC jungtį ir nukreipkite skambučius į "Dynamics 365".

Galinis punktas Regiono ID
media.recording.dynamics.com Pasaulinis (artimiausias regionas)
southeastasia.media.recording.dynamics.com Pietryčių Azija
australiaeast.media.recording.dynamics.com Australija
sam.media.recording.dynamics.com Pietų Amerika
canadacentral.media.recording.dynamics.com Kanada
switzerlandnorth.media.recording.dynamics.com Šveicarija
eastus.media.recording.dynamics.com JAV
francecentral.media.recording.dynamics.com Prancūzija
centralindia.media.recording.dynamics.com Indija
japaneast.media.recording.dynamics.com Japonija
uae.media.recording.dynamics.com JAE
uksouth.media.recording.dynamics.com JK
westeurope.media.recording.dynamics.com Vakarų Europa
zaf.media.recording.dynamics.com Pietų Afrika

Veiksmas 3: Įvykių siuntimas realiuoju laiku (Rinkiklio kliento integracija)

Kad Pokalbių analizė galėtų teikti realiojo laiko transkripcija ir įžvalgos, trečiosios šalies numerio rinkiklis gali naudoti du įvykius, kad praneštų, kada skambutis prasideda arba baigiasi.

  • Skambučio pradžios įvykis: Kai Pokalbių analizė įvyksta įvykis "skambutis prasidėjo", bus rodomas įrašymo mygtukas ir realiojo laiko transkripcija ir įžvalgos.

  • Skambučio pabaigos įvykis: kai Pokalbių analizė gauna "skambučio pabaigos" įvykį, jis Pakavimas skambutį ir parodys mygtuką Visa suvestinė , kad gautų AI sugeneruotą skambučio suvestinė ir įžvalgas.

Norėdami siųsti įvykius, naudokite "raiseEvent" API „Dynamics 365“ kanalų integravimo sistema (CIF).

Štai pavyzdys, kodo fragmentas įvykiams siųsti:

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

Išbandykite integraciją

Užregistravę naują teikėją pas nuomotoją ir nustatę SIPREC forkingą bei kliento numerio rinkiklio įvykius, galite išbandyti integravimą sukurdami naują įrašymo strategiją su naujuoju teikėju.

  1. Prisijunkite kaip sistemos administratorius Pardavimo telkinys programoje.

  2. Srityje Keisti pasirinkite Pardavimo įžvalgų parametrai.

  3. Eikite į Visuotiniai nustatymai> Pokalbių analizė. Skiltyje Skambučių teikėjai matysite trečiosios šalies teikėją, kurį užregistravote.

  4. Sukurkite naujo teikėjo įrašymo strategiją. Norėdami gauti daugiau informacijos, žiūrėkite Nustatyti Microsoft Teams Pokalbių analizė

Toliau pateikta ekrano kopija yra "Twilio" įrašymo politikos pavyzdys.

Dabar paskambinkite vartotojui, kuris yra pasirinkto saugos vaidmuo dalis (mūsų pavyzdyje strategija įjungta visiems saugos vaidmenims).

Kai "Dynamics 365"" iš numerio rinkiklio gaus įvykį callStarted , turėsite galimybę pradėti įrašymą:

Pranešimo apie skambučių įrašymą ekrano nuotrauka

Pasirinkę Įrašyti, pokalbio metu galėsite matyti transkripciją realiuoju laiku, o skambučio pabaigoje – visą suvestinę ir Skambučių įžvalgos.

Taip pat žr.

Peržiūrėkite ir supraskite skambučio suvestinė puslapį