Үшінші тарап тергіштерін Dynamics 365 сөйлесу интеллектісімен біріктіру (алдын ала қарау)
[Бұл мақала — шығарылым алдындағы құжаттама және ол өзгеруі мүмкін.]
Бұл біріктіру арқылы Dynamics 365 пайдаланушылары Dynamics 365 жүйесінде телефон қоңырауларын шалу және қабылдау үшін Twilio Flex сияқты үшінші тарап телефония компаниялары ұсынатын тергіштерді пайдалана алады, сондай-ақ нақты уақыттағы жасанды интеллект арқылы жасалған түсініктерді және олардың қоңырауларының қоңыраудан кейінгі бай талдауын ала алады. . Dynamics 365 сөйлесу интеллектісі туралы қосымша ақпарат алыңыз
Маңызды
- Бұл алдын ала қарау мүмкіндігі болып табылады.
- Алдын ала қарау мүмкіндіктері өндірісті пайдалану үшін арналмаған және функционалдық шектеулі болуы мүмкін. Бұл мүмкіндіктер қосымша пайдалану шарттарына бағынады және тұтынушылар ертерек қол жеткізу және кері байланыс орнату үшін ресми шығарылымға дейін қолжетімді.
Интеграция қалай жұмыс істейді
Жоғары деңгейде интеграция үш бөліктен тұрады:
Провайдерді тіркеу: Провайдер мәліметтерін тіркеңіз және сөйлесу интеллект API арқылы жазылатын пайдаланушылар тізімін алыңыз.
Тасымалдағышты айыру: SIPREC протоколын пайдаланып, дыбыс ағынын сөйлесу интеллектінің рекордерлеріне ауыстырыңыз.
Нақты уақыттағы оқиғаларды жіберу: Нақты уақыттағы транскрипцияны және қоңыраулар туралы мәліметтер тәжірибесін қосу үшін UI оқиғаларын провайдердің клиенттік интерфейсінен Dynamics 365 сөйлесу интеллектіне жіберіңіз.
Dynamics 365 сөйлесу интеллектісі мен үшінші тарап телефония провайдері Twilio Flex арасындағы мысалды біріктіру үшін Twilio Flex-ті Dynamics 365 сөйлесу интеллектісімен біріктіру бөлімін қараңыз.
Төмендегі диаграмма интеграцияның қалай жұмыс істейтінін көрсетеді:
1-қадам: провайдерді тіркеңіз
Microsoft Entra ID қолданбасын жасаңыз.
Медиа жазу үшін API рұқсатын қосыңыз:
Сіз жасаған Microsoft Entra ID қолданбасында API рұқсаттары бөліміне өтіңіз.
Рұқсат қосу таңдаңыз.
API астында менің ұйымым іздеу Dynamics 365 Sales үшін мультимедиалық жазбаны пайдаланады және оны таңдаңыз:
Қосу Users.Read.All рұқсат және Рұқсат қосу опциясын таңдаңыз.
Ескертпе
Қолданба мәтінмәнінде сөйлесу ақпаратының API интерфейсіне қоңырау шалу үшін рұқсат алу үшін әкімші келісімін алуды ұмытпаңыз. Рұқсаттар мен келісімдер туралы толығырақ ақпарат.
Алдыңғы бөлімде жасалған қолданбаны пайдаланып Conversation Intelligence API интерфейстерін іске қосу үшін таңбалауышты алыңыз:
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>'
scope
параметрі Conversation intelligence қолданбасының қолданба идентификаторын көрсетеді. Бұл мәнді өзгертпеңіз.Curl пәрмені туралы қосымша ақпарат алу үшін Get Microsoft Entra Қызмет жетекшілеріне арналған ID таңбалауыштарын қараңыз.
Үшінші тарап қызмет провайдерін тіркеу үшін келесі сөйлесу барлау API қызметіне қоңырау шалыңыз:
POST /api/v1.0/providers/tenants
Сұрау мәтінінде келесі параметрлерді көрсетіңіз:
orgID: Dynamics 365 ұйым идентификаторын көрсетіңіз.
Түрі: Үшінші тарап тергіштері үшін "арнайы" параметрін көрсетіңіз.
хостинг: Телефония провайдерінің хостинг түрін көрсетіңіз. Мысалы, "бұлт" немесе "жергілікті".
AccountId: Телефония провайдерінің тіркелгі идентификаторын көрсетіңіз.
CerficateSubjectName және CertificateIssuer: Телефония провайдерінің сертификат мәліметтерін көрсетіңіз.
SourceIPNetwork: SIPREC клиентінің IP мекенжайын көрсетіңіз. IP мекенжайын шектегіңіз келмесе, "0.0.0.0" мәнін көрсетіңіз.
Келесі үзінді сұрау органының мысалы болып табылады:{ "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" } }
API туралы қосымша ақпаратты Swagger құжаттамасын қараңыз.
Жазылатын пайдаланушылар тізімін алу үшін келесі сөйлесу барлау API қызметіне қоңырау шалыңыз:
GET /api/v1.0/providers/users
Dynamics 365 Sales әкімшісі жазу саясатын жасағаннан кейін, провайдер осы соңғы нүктені сөйлесу ақпаратының жазу құрылғыларына қосылатын медианы сүзу үшін пайдалана алады.
2-қадам: Тасымалдағышты айыру (SIPREC интеграциясы)
Conversation Intelligence жазбалары стандартты SIPREC протоколын жүзеге асырады.
Байланыс SIPS (порт 5061) және SRTP хаттамалары арқылы қорғалған. Аутентификация SIPS хабарлама қосылымында mTLS қолданылады және API-ге берілген сертификатқа негізделеді – бұл провайдер орнату үшін жалға алушыға тіркелуі керек дегенді білдіреді. SIPS қосылымы.
Келесі скриншот SIPREC клиенті мен SIPREC сервері арасындағы байланысты көрсетеді:
Сөйлесу интеллектісі үшін келесі метадеректер қажет:
Тақырыптар:
Тақырып атауы | Сипаттама | Мән мысалы |
---|---|---|
Қоңырау идентификаторы | Қоңыраудың бірегей идентификаторы. Бұл идентификатор SIP сигналдарын және жазуды бастау/тоқтату сияқты пайдаланушы әрекеттерін корреляциялау үшін пайдаланылады. | efxxxxxxxxxxxxxx |
X-AccountId | Қоңырау тиесілі тіркелгінің бірегей идентификаторы. Бұл идентификатор аутентификация және авторизация үшін пайдаланылады. Бұл жалға алушы үшін API жүйесінде тіркелген бірдей тіркелгі идентификаторы. | ACxxxxxxxxxxxxxxxxxxxxxx |
Метадеректер
Метадеректер кілтінің атауы | Сипаттама | Мән мысалы |
---|---|---|
Рөл | Бұл сатушы үшін кіріс немесе шығыс қоңырау екенін көрсетеді. | ["кіріс", "шығыс"] |
CallerDisplayName | Қоңырау шалушының көрсетілетін аты. Қолжетімсіз болса, телефон нөмірі көрсетіледі. | Кенни Смит |
CalleeDisplayName | Алушының көрсетілетін аты. Қолжетімсіз болса, телефон нөмірі көрсетіледі. | Алекс Бейкер |
Мұнда қажетті тақырыптар мен метадеректері бар шақыру және қоштасу хабарларының мысалдары берілген:
ШАҚЫРУ хабары:
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 хабары:
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
Диктофонның соңғы нүктелері мен аймақтарына қолдау көрсетіледі
Төмендегі кестеде қолдау көрсетілетін жазу құрылғысының соңғы нүктелері мен олардың аймақтары берілген. Пайдаланғыңыз келетін жазғыштарды телефония провайдерінің параметрлерінде конфигурациялауға болады. Бұл Twilio Flex үшін қалай орындалатыны туралы білу үшін қараңыз 2-қадам: SIPREC қосқышын орнатыңыз және қоңырауларды Dynamics 365 жүйесіне бағыттаңыз.
Соңғы нүкте | Өңір |
---|---|
media.recording.dynamics.com | Ғаламдық (ең жақын аймақ) |
southeastasia.media.recording.dynamics.com | Оңтүстік-шығыс Азия |
australiaeast.media.recording.dynamics.com | Австралия |
sam.media.recording.dynamics.com | Оңтүстік Америка |
canadacentral.media.recording.dynamics.com | Канада |
switzerlandnorth.media.recording.dynamics.com | Швейцария |
eastus.media.recording.dynamics.com | АҚШ |
francecentral.media.recording.dynamics.com | Франция |
centralindia.media.recording.dynamics.com | Үндістан |
japaneast.media.recording.dynamics.com | Жапония |
uae.media.recording.dynamics.com | UAE |
uksouth.media.recording.dynamics.com | Біріккен Корольдік |
westeurope.media.recording.dynamics.com | Батыс Еуропа |
zaf.media.recording.dynamics.com | Оңтүстік Африка Республикасы |
3-қадам: Нақты уақыттағы оқиғаларды жіберу (Нөмір теруші клиентті біріктіру)
Сөйлесу интеллектіне нақты уақыттағы транскрипция мен түсініктерді беруге рұқсат беру үшін, үшінші тарап теруші қоңырау басталғанда немесе аяқталғанда хабарлау үшін екі оқиғаны пайдалана алады.
Қоңырау басталған оқиға: Әңгімелесу интеллектісі "қоңырау басталды" оқиғасын алған кезде, ол жазу түймесін және нақты уақыттағы транскрипция мен түсініктерді көрсетеді.
Қоңырау аяқталған оқиға: сөйлесу барлау қызметі «қоңырау аяқталды» оқиғасын алған кезде, ол қоңырауды аяқтайды және Толық қорытынды AI арқылы жасалған қоңыраулар туралы қорытынды мен түсініктерді алу үшін түймесін басыңыз.
Оқиғаларды жіберу үшін пайдаланыңыз highEvent Dynamics 365 Channel Integration Framework (CIF) жүйесіндегі API.
Мұнда оқиғаларды жіберуге арналған код үзіндісі үлгісі берілген:
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);
});
Интеграцияны сынау
Жаңа провайдерді жалға алушымен тіркегеннен және SIPREC айыру мен клиентті теру оқиғаларын орнатқаннан кейін, жаңа провайдермен жаңа жазу саясатын жасау арқылы біріктіруді тексеруге болады.
Sales Hub қолданбасында жүйе әкімшісі ретінде жүйеге кіріңіз.
Аймақты өзгерту ішінен таңдаңыз Сатылым туралы ақпарат параметрлері.
Бару Ғаламдық параметрлер> Әңгімелесу интеллектісі. Қоңырау шалу провайдерлері бөлімінде сіз тіркелген үшінші тарап провайдерін көресіз.
Жаңа провайдер үшін жазу саясатын жасаңыз. Қосымша ақпарат алу үшін қараңыз Орнату Microsoft Teams сөйлесу барлауы үшін
Келесі скриншот Twilio үшін жазу саясатының мысалы болып табылады.
Енді таңдалған қауіпсіздік рөлі бөлігі болып табылатын пайдаланушыға қоңырау шалыңыз (біздің мысалда саясат барлық қауіпсіздік рөлдері үшін қосылған).
Dynamics 365 қабылдаған кезде қоңырау басталды Нөмір терушіден оқиға болған кезде, жазуды бастау опциясы болады:
Таңдағаннан кейін Жазба, қоңырау кезінде нақты уақыттағы транскрипцияны және қоңыраудың соңында толық қорытынды мен қоңырау туралы түсініктерді көре аласыз.
Келесіні де қараңыз:
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру