Kolmansien osapuolten numeronvalitsimien integroiminen Dynamics 365 -keskusteluanalytiikkaan (esiversio)
[Tämä artikkeli sisältää julkaisua edeltävää materiaalia ja voi muuttua.]
Tämän integroinnin avulla Dynamics 365 -käyttäjät voivat soittaa ja vastaanottaa puheluita Dynamics 365:ssä käyttämällä kolmansien osapuolten puhelinpalveluntarjoajien, kuten Twilio Flexin, tarjoamia numeronvalitsimia, sekä hankkia tekoälyn tuottamia reaaliaikaisia havaintoja ja monipuolisia puhelun jälkeisiä analyysejä puheluistaan. Lue lisää Dynamics 365 -keskusteluanalytiikasta
Tärkeää
- Tämä on esiversiotoiminto.
- Esiversiotoimintoja ei ole tarkoitettu tuotantokäyttöön, ja niiden toiminnot voivat olla rajoitettuja. Näihin toimintoihin sovelletaan lisäkäyttöehtoja ja ne ovat käytettävissä ennen virallista julkaisua, jotta asiakkaat voivat käyttää niitä aikaisessa vaiheessa ja antaa palautetta.
Miten integrointi toimii?
Korkealla tasolla integrointi koostuu kolmesta osasta:
Rekisteröi palvelu: Rekisteröi palvelun tiedot ja nouda nauhoitettavien käyttäjien luettelo käyttämällä keskusteluanalytiikan ohjelmointirajapintaa.
Haaroita media: Haaroita ääniraita keskusteluanalyytikan tallentimiin käyttämällä SIPREC-protokollaa.
Reaaliaikaisten tapahtumien lähettäminen: Jos haluat ottaa käyttöön reaaliaikaisen transkription ja puhelutietojen kokemuksen, lähetä käyttöliittymätapahtumat palveluntarjoajan asiakasohjelman käyttöliittymästä Dynamics 365:n keskusteluanalytiikkaan.
Katso esimerkki Dynamics 365 -keskusteluanalytiikan ja kolmannen osapuolen puhelinpalveluntarjoajan Twilio Flex välisestä integraatiosta kohdasta Twilio Flexin integrointi Dynamics 365 -keskusteluanalytiikan kanssa.
Seuraavassa kaaviossa on esitetty, miten integrointi toimii:
Vaihe 1: Rekisteröi palvelu
Lisää ohjelmointirajapinnan käyttöoikeus median tallentamista varten:
Siirry luomassasi Microsoft Entra ID -sovelluksessa ohjelmointirajapinnan käyttöoikeuksiin.
Valitse Lisää oikeus.
Hae Oman organisaation käyttämät ohjelmointirajapinnat -osiosta Media Recording for Dynamics 365 Sales ja valitse se:
Lisää Users.Read.All-käyttöoikeus ja valitse Lisää käyttöoikeus
Huomautus
Varmista, että järjestelmänvalvoja on antanut käyttöoikeudelle luvan kutsua keskusteluanalytiikan ohjelmointirajapintaa sovelluksen kontekstissa. Lue lisää käyttöoikeuksista ja suostumuksesta.
Hanki tunnus suorittaaksesi keskusteluanalytiikan ohjelmointirajapintoja käyttämällä edellisessä osiossa luotua sovellusta:
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=00001111-aaaa-2222-bbbb-3333cccc4444/.default' -d 'client_secret=<your app secret>'
Parametri
scope
määrittää Keskusteluanalytiikka-sovelluksen sovellustunnuksen. Älä muuta tätä arvoa.Lisätietoja curl-komennosta on kohdassa Microsoft Entra ID -tunnusten hankkiminen palveluobjekteille.
Rekisteröi kolmannen osapuolen palveluntarjoaja kutsumalla seuraavaa keskusteluanalytiikan ohjelmointirajapintaa:
POST /api/v1.0/providers/tenants
Määritä pyynnön sisältöön seuraavat parametrit:
orgID: Määritä Dynamics 365 -organisaation tunnus.
Type: Määritä kolmansien osapuolten numeronvalitsimille "custom".
hosting: Määritä puhelinpalveluntarjoajan isännöinnin tyyppi. Esimerkki: "cloud" tai "on-premises".
AccountId: Määritä puhelinpalveluntarjoajan tilin tunnus.
CerfificateSubjectName ja CertificateIssuer: Määritä puhelinpalveluntarjoajan varmennetiedot.
SourceIPNetwork: Määritä SIPREC-asiakassovelluksen IP-osoite. Määritä arvoksi "0.0.0.0", jos et halua rajoittaa IP-osoitetta.
Seuraavassa koodikatkelmassa on esimerkki pyynnön sisällöstä:{ "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" } }
Katso lisätietoja ohjelmointirajapinnasta Swagger-dokumentaatiosta.
Nouda nauhoitettavien käyttäjien luettelo kutsumalla seuraavaa keskusteluanalytiikan ohjelmointirajapintaa:
GET /api/v1.0/providers/users
Kun Dynamics 365 Sales -järjestelmänvalvoja on luonut tallennuskäytännön, palveluntarjoaja voi käyttää tätä päätepistettä suodattaakseen mediaa, joka haaroitetaan keskustelyanalytiikan tallentimiin.
Vaihe 2: Haaroita media (SIPREC-integrointi)
Keskusteluanalyytikan tallentimet noudattavat SPIPREC-standardiprotokollaa.
Yhteys on suojattu SIPS- (portti 5061) ja SRTP-protokollilla. Todennus tapahtuu SIPS-viestiyhteyden mTLS-protokollan avulla ja perustuu ohjelmointirajapintaan annettuun varmenteeseen. Tämä tarkoittaa sitä, että palveluntarjoajan on oltava rekisteröity vuokraajassa SIPS-yhteyden muodostamista varten.
Seuraavassa näyttökuvassa on kuvattu SIPREC-asiakassovelluksen ja SIPREC-palvelimen välinen viestintä:
Keskusteluanalyytikan käyttö edellyttää seuraavia metatietoja:
Otsakkeet:
Otsakkeen nimi | Kuvaus | Esimerkkiarvo |
---|---|---|
Call-ID | Puhelun yksilöllinen tunnus. Tätä tunnusta käytetään korreloimaan SIP-signaaleja ja käyttäjän toimintoja, kuten tallennuksen aloituksen/lopetuksen. | efxxxxxxxxxxxxx |
X-AccountId | Puheluun liitetyn tilin yksilöllinen tunnus. Tätä tunnusta käytetään todentamiseen ja valtuutukseen. Tämä on sama tilin tunnus, joka on rekisteröity ohjelmointirajapinnassa vuokraajaa varten. | ACxxxxxxxxxxxxxxxxxxxxxxx |
Metatiedot
Metatietojen avaimen nimi | Kuvaus | Esimerkkiarvo |
---|---|---|
Role | Osoittaa, onko kyseessä myyjälle saapuva vai lähtevä puhelu. | ["inbound", "outbound"] |
CallerDisplayName | Soittajan näyttönimi. Jos tätä arvoa ei ole saatavilla, sen tilalle näytetään puhelinnumero. | Kenny Smith |
CalleeDisplayName | Vastaanottajan näyttönimi. Jos tätä arvoa ei ole saatavilla, sen tilalle näytetään puhelinnumero. | Alex Baker |
Alla on esimerkkejä kutsusta ja Näkemiin-viesteistä, joissa on tarvittavat otsakkeet ja metatiedot:
KUTSUN viesti:
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--
NÄKEMIIN-viesti:
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
Tuetut tallentimien päätepisteet ja alueet
Seuraavassa taulukossa on lueteltu tuetut tallentimien päätepisteet ja niiden alueet. Voit määrittää käytettävät tallentimet puhelinpalveluntarjoajasi asetuksista. Ohjeet tämän tekemiseen Twilio Flexissä on kohdassa Vaihe 2: Asenna SIPREC-yhdistin ja reititä puhelut Dynamics 365:een.
Päätepiste | Alue |
---|---|
media.recording.dynamics.com | Globaali (lähin alue) |
southeastasia.media.recording.dynamics.com | Kaakkois-Aasia |
australiaeast.media.recording.dynamics.com | Australia |
sam.media.recording.dynamics.com | Etelä-Amerikka |
canadacentral.media.recording.dynamics.com | Kanada |
switzerlandnorth.media.recording.dynamics.com | Sveitsi |
eastus.media.recording.dynamics.com | US |
francecentral.media.recording.dynamics.com | Ranska |
centralindia.media.recording.dynamics.com | Intia |
japaneast.media.recording.dynamics.com | Japani |
uae.media.recording.dynamics.com | UAE |
uksouth.media.recording.dynamics.com | Yhdistynyt kuningaskunta |
westeurope.media.recording.dynamics.com | Länsi-Eurooppa |
zaf.media.recording.dynamics.com | Etelä-Afrikka |
Vaihe 3: Lähetä reaaliaikaisia tapahtumia (numeronvalitsimen asiakassovelluksen integrointi)
Jos haluat sallia keskusteluanalytiikan tarjota reaaliaikaisia transkripteja ja merkityksellisiä tietoja, kolmannen osapuolen numeronvalitsin voi ilmoittaa puhelun alkamisesta tai päättymisestä kahdella tapahtumalla.
Puhelu aloitettu -tapahtuma: Kun analytiikaa vastaanottaa "puhelu aloitettu" -tapahtuman, se näyttää tallennuspainikkeen sekä reaaliaikaisia transkripeja ja merkityksellisiä tietoja.
Puhelu päättyi -tapahtuma: Kun keskusteluanalytiikka vastaanottaa "puhelu päättyi" -tapahtuman, se viimeistelee puhelun ja näyttää Koko yhteenveto -painikkeen, joka tarjoaa tekoälyn luoman yhteenvedon puhelusta ja merkityksellisiä tietoja.
Käytä tapahtumien lähettämiseen Dynamics 365 Channel Integration Framework (CIF) -järjestelmän raiseEvent-ohjelmointirajapintaa.
Alla on esimerkkikoodikatkelma tapahtumien lähettämiseksi:
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);
});
Integroinnin testaaminen
Kun olet rekisteröinyt uuden palvelun vuokraajan kanssa sekä määrittänyt SIPREC-haaroituksen ja asiakassovelluksen numeronvalitsimen tapahtumat, voit testata integraatiota luomalla uuden tallennuskäytännön uuden palvelun kanssa.
Kirjaudu Myyntikeskus-sovellukseen järjestelmänvalvojana.
Valitse Vaihda-alueelta Sales Insightsin asetukset.
Siirry kohtaan Yleiset asetukset>Keskusteluanalytiikka. Näet nyt rekisteröimäsi kolmannen osapuolen palveluntarjoajan Puhelupalvelun tarjoajat -osiossa.
Luo uudelle palvelulle tallennuskäytäntö. Lisätietoja on kohdassa Keskusteluanalytiikan määrittäminen Microsoft Teamsille
Seuraavassa näyttökuvassa on esimerkki Twilion tallennuskäytännöstä.
Soita nyt käyttäjälle, joka kuuluu valittuun käyttöoikeusrooliin (tässä esimerkissä käytäntö on otettu käyttöön kaikille käyttöoikeusrooleille).
Kun Dynamics 365 vastaanottaa callStarted-tapahtuman numeronvalitsimelta, voit aloittaa tallennuksen:
Kun olet valinnut Nauhoita, näet reaaliaikaisen transkription puhelun aikana sekä täydellisen yhteenvedon ja puheluanalytiikat puhelun lopuksi.