Trešo pušu zvanītāju integrēšana ar Dynamics 365 Sarunas informācija (priekšskatījums)
[Šis raksts ir pirmsizlaides dokumentācija, kas var mainīties.]
Izmantojot šo integrāciju, Dynamics 365 lietotāji var izmantot zvanītājus, ko nodrošina trešo pušu telefonijas uzņēmumi, piemēram, Twilio Flex, lai veiktu un saņemtu tālruņa zvanus Dynamics 365 un iegūtu reāllaika AI ģenerētus ieskatus un bagātīgu savu zvanu pēczvana analīzi. Papildinformācija par Dynamics 365 Sarunas informācija
Svarīgi
- Šis ir priekšskatījuma līdzeklis.
- Priekšskatījuma līdzekļi nav paredzēti komerciālai lietošanai, un to funkcionalitāte var būt ierobežota. Uz šiem līdzekļiem attiecas papildu lietošanas noteikumi, un tie ir pieejami pirms oficiālā laidiena, lai klienti varētu iegūt agrīnu piekļuvi un sniegt atsauksmes.
Kā darbojas integrācija
Augstā līmenī integrācija sastāv no trim daļām:
Reģistrējiet pakalpojumu sniedzēju: Reģistrējiet pakalpojumu sniedzēja informāciju un iegūstiet lietotāju sarakstu, kas jāreģistrē, izmantojot Sarunas informācija API.
Dakšojiet multividi: Ievietojiet audio straumi Sarunas informācija ierakstītājos, izmantojot SIPREC protokolu.
Reāllaika notikumu sūtīšana: Lai iespējotu reāllaika transkripciju un Zvanu ieskati pieredzi, nosūtiet lietotāja saskarnes notikumus no pakalpojumu sniedzēja klienta lietotāja saskarnes uz Dynamics 365 Sarunas informācija.
Integrācijas piemēru starp Dynamics 365 Sarunas informācija un trešās puses telefonijas pakalpojumu sniedzēju Twilio Flex skatiet sadaļā Twilio Flex integrēšana ar Dynamics 365 Sarunas informācija.
Šajā diagrammā ir parādīts, kā darbojas integrācija:
Solis 1: Reģistrējiet pakalpojumu sniedzēju
Pievienojiet API atļauju multivides ierakstīšanai:
Izveidotajā ID lietojumprogrammā Microsoft Entra dodieties uz API atļaujām.
Atlasiet Pievienot atļauju.
Sadaļā API, ko mana organizācija izmanto , meklējiet opciju Multivides ieraksts, lai meklētu Dynamics 365 Sales un atlasiet to:
Pievienot atļauju Users.Read.All un atlasiet Pievienot atļauju
Piezīmes
Pārliecinieties, vai esat saņēmis administratora piekrišanu atļaujai, lai varētu izsaukt Sarunas informācija API programmas kontekstā. Uzziniet vairāk par atļaujām un piekrišanu.
Iegūstiet pilnvaru, lai palaistu Sarunas informācija API, izmantojot iepriekšējā sadaļā izveidoto lietotni:
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>'
Parametrs
scope
norāda Sarunas informācija programmas lietojumprogrammas ID. Nemainiet šo vērtību.Papildinformāciju par curl komandu skatiet sadaļā ID marķieru iegūšana Microsoft Entra pakalpojumu vadītājiem.
Lai reģistrētu trešās puses pakalpojumu sniedzēju, zvaniet uz šādu Sarunas informācija API:
POST /api/v1.0/providers/tenants
Pieprasījuma pamattekstā norādiet šādus parametrus:
orgID: norādiet Dynamics 365 organizācijas ID.
Tips: Norādiet "pielāgots" trešo pušu zvanītājiem.
hostings: Norādiet telefonijas pakalpojumu sniedzēja hostinga veidu. Piemēram, "mākonis" vai "lokāls".
AccountId: Norādiet telefonijas pakalpojumu sniedzēja konta ID.
CerfificateSubjectName un CertificateIssuer: Norādiet telefonijas pakalpojumu sniedzēja sertifikāta informāciju.
SourceIPNetwork: Norādiet SIPREC klienta IP adresi. Norādiet "0.0.0.0", ja nevēlaties ierobežot IP adresi.
Šis fragments ir pieprasījuma pamatteksta piemērs:{ "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" } }
Papildinformāciju par API skatiet Swagger dokumentācijā.
Zvaniet uz šo Sarunas informācija API, lai ierakstītu lietotāju sarakstu:
GET /api/v1.0/providers/users
Kad Dynamics 365 pārdošanas administrators ir izveidojis ierakstīšanas politiku, nodrošinātājs var izmantot šo galapunktu, lai filtrētu multividi, kas tiks dakšota Sarunas informācija ierakstītājiem.
Solis 2: Dakšu mediji (SIPREC integrācija)
Sarunas informācija ierakstītāji ievieš standartu SIPREC protokols.
Sakari tiek aizsargāti, izmantojot SIPS (ports 5061) un SRTP protokolus. Autentifikācija tiek veikta, izmantojot mTLS SIPS ziņojuma savienojumā, un tās pamatā ir API sniegtais sertifikāts, kas nozīmē, ka pakalpojumu sniedzējam jābūt reģistrētam, lai nomnieks varētu izveidot SIPS savienojumu.
Šis ekrānuzņēmums ilustrē saziņu starp SIPREC klientu un SIPREC serveri:
Tālāk norādītie metadati ir nepieciešami Sarunas informācija.
Galvenes:
Galvenes nosaukums | Apraksts | Vērtības piemērs |
---|---|---|
Call-ID | Zvana unikālais identifikators. Šis ID tiek izmantots, lai korelētu SIP signālus un lietotāja darbības, piemēram, sākuma/beigu ierakstīšanu. | efxxxxxxxxxxxxx |
X-AccountId | Tā konta unikālais identifikators, kuram pieder zvans. Šis ID tiek izmantots autentifikācijai un autorizācijai. Tas ir tas pats nomnieka API reģistrētais konta ID. | ACxxxxxxxxx |
Metadati
Metadatu atslēgas nosaukums | Apraksts | Vērtības piemērs |
---|---|---|
Loma | Norāda, vai tas ir ienākošs vai izejošs zvans pārdevējam. | ["ienākošais", "izejošais"] |
CallerDisplayName | Zvanītāja parādāmais vārds. Ja tas nav pieejams, tiek parādīts tālruņa numurs. | Kenijs Smits |
CalleeDisplayName | Adresāta parādāmais vārds. Ja tas nav pieejams, tiek parādīts tālruņa numurs. | Alekss Beikers |
Tālāk ir sniegti uzaicinājuma un aizvietošanas ziņojumu piemēri ar nepieciešamajām galvenēm un metadatiem.
UZAICINĀJUMA ziņojums:
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 ziņojums:
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
Atbalstītie ierakstītāja galapunkti un reģioni
Šajā tabulā ir uzskaitīti atbalstītie ierakstītāja galapunkti un to reģioni. Varat konfigurēt ierakstītājus, kurus vēlaties izmantot telefonijas pakalpojumu sniedzēja iestatījumos. Lai uzzinātu, kā tas tiek darīts Twilio Flex, skatiet solis 2: Instalējiet SIPREC savienotāju un maršrutējiet zvanus uz Dynamics 365.
Galapunkts | Reģions |
---|---|
media.recording.dynamics.com | Globāls (tuvākais reģions) |
southeastasia.media.recording.dynamics.com | Dienvidaustrumāzija |
australiaeast.media.recording.dynamics.com | Austrālija |
sam.media.recording.dynamics.com | Dienvidamerika |
canadacentral.media.recording.dynamics.com | Kanāda |
switzerlandnorth.media.recording.dynamics.com | Šveice |
eastus.media.recording.dynamics.com | ASV |
francecentral.media.recording.dynamics.com | Francija |
centralindia.media.recording.dynamics.com | Indija |
japaneast.media.recording.dynamics.com | Japāna |
uae.media.recording.dynamics.com | UAE |
uksouth.media.recording.dynamics.com | Apvienotā Karaliste |
westeurope.media.recording.dynamics.com | Rietumeiropa |
zaf.media.recording.dynamics.com | Dienvidāfrika |
Solis 3: Reāllaika notikumu sūtīšana (Zvanītāja klienta integrācija)
Lai ļautu Sarunas informācija nodrošināt reāllaika transkripcija un ieskati, trešās puses zvanītājs var izmantot divus notikumus, lai paziņotu, kad zvans sākas vai beidzas.
Notikums Zvans sākās: Kad Sarunas informācija saņem notikumu "zvans sākts", tiek parādīta ierakstīšanas poga un reāllaika transkripcija un ieskati.
Notikums ar zvana beigām: kad Sarunas informācija saņem notikumu "zvans ir pabeigts", tas sagatavošana zvanu un parādīs pogu Pilns kopsavilkums , lai iegūtu AI ģenerētos zvana kopsavilkums un ieskatus.
Lai nosūtītu notikumus, izmantojiet raiseEvent API programmā Dynamics 365 kanāla integrācijas struktūra (CIF).
Tālāk ir sniegts koda fragments paraugs, lai nosūtītu pasākumus.
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);
});
Integrācijas pārbaude
Pēc jaunā pakalpojumu sniedzēja reģistrēšanas nomniekā un SIPREC forking un klienta zvanītāja notikumu iestatīšanas varat pārbaudīt integrāciju, izveidojot jaunu ierakstīšanas politiku ar jauno pakalpojumu sniedzēju.
Piesakieties kā sistēmas administrators programmā Pārdošanas centrs.
Apgabalā Mainīt atlasiet Pārdošanas ieskatu iestatījumi.
Dodieties uz Globālie iestatījumi Sarunas informācija>. Sadaļā Zvanu nodrošinātāji redzēsit reģistrēto trešās puses pakalpojumu sniedzēju.
Izveidojiet ierakstīšanas politiku jaunajam pakalpojumu sniedzējam. Papildinformāciju skatiet sadaļā Iestatīšana Microsoft Teams Sarunas informācija
Šis ekrānuzņēmums ir Twilio ierakstīšanas politikas piemērs.
Tagad zvaniet lietotājam, kurš ir daļa no atlasītās drošības loma (mūsu piemērā politika ir iespējota visām drošības lomām).
Kad Dynamics 365 saņem notikumu callStarted no sastādītāja, jums būs iespēja sākt ierakstīšanu:
Pēc opcijas Ierakstīt varēsit redzēt reāllaika transkripciju zvana laikā un pilnu kopsavilkumu un Zvanu ieskati zvana beigās.