Делите путем


Интегришите бирање независних произвођача са Дyнамицс 365 < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце (< ДИЦТ__верзија за преглед > превиеw )

[Овај чланак представља прелиминарну документацију и може се променити.]

Са овом интеграцијом, корисници Дyнамицс 365 могу да користе бираче које пружају телефонске компаније трећих страна, као што је Твилио Флек, за упућивање и примање телефонских позива у Дyнамицс 365, и добијање увида у реалном времену генерисаних АИ и богате анализе њихових позива након позива. Сазнајте више о Дyнамицс 365 < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце

Важно

  • Ово је функција прегледа.
  • Функције верзије за преглед нису намењене за коришћење у производњи и можда имају ограничене функционалности. Ове функције подлежу додатним условима коришћења и доступне су пре званичног издања, тако да корисници могу добити рани приступ и пружити повратне информације.

Како функционише интеграција

На високом нивоу, интеграција се састоји од три дела:

  1. Региструјте провајдера: Региструјте детаље провајдера и набавите листу корисника која ће бити забележена помоћу < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце АПИ-ја.

  2. Форк медија: Форк аудио стреам на < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце рекордера користећи СИПРЕЦ протокол.

  3. Пошаљите догађаје у реалном времену: Да бисте омогућили транскрипцију у реалном времену и < ДИЦТ__Увиди у позиве > цалл инсигхтс искуство, пошаљите УИ догађаје из корисничког интерфејса клијента провајдера на Дyнамицс 365 < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце.

За пример интеграције између Дyнамицс 365 < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце и провајдера телефоније треће стране, Твилио Флек, погледајте Интегришите Твилио Флек са Дyнамицс 365 < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце.

Следећи дијаграм илуструје како интеграција функционише:

Дијаграм који приказује ток интеграције

корак 1: Региструјте провајдера

  1. Креирајте ИД апликацију Microsoft Entra .

  2. Додајте АПИ дозволу за снимање медија:

    1. У ИД апликацији Microsoft Entra коју сте креирали идите на АПИ дозволе.

    2. Изаберите Додај дозволу.

    3. Под АПИ -јима моја организација користи претрагу за Медиа Рецординг фор Дyнамицс 365 Салес и изаберите је: Снимак екрана опције за снимање медија

    4. Адд Усерс .Реад .Алл дозволу и изаберите Додај дозволу

    Белешка

    Уверите се да добијете сагласност администратора за дозволу да бисте могли да позовете < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце АПИ у контексту апликације. Сазнајте више о дозволама и сагласности.

  3. Набавите токен за покретање < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце АПИ-ја користећи апликацију креирану у претходном одељку:

    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 одређује ИД апликације < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце апликације. Не мењајте ову вредност.

    За више информација о команди цурл, погледајте Гет Microsoft Entra ИД токене за принципале услуга.

  4. Позовите следеће < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце АПИ да бисте регистровали провајдера услуга треће стране:
    POST /api/v1.0/providers/tenants

    Наведите следеће параметре у телу захтева:

    • оргИД : Наведите ИД организације Дyнамицс 365.

    • Тип : Наведите "обичај" за бирање независних произвођача.

    • хостинг : Наведите тип хостинга провајдера телефоније. На пример, "облак" или "локални".

    • АццоунтИд : Наведите ИД налога провајдера телефоније.

    • ЦерфифицатеСубјецтНаме и ЦертифицатеИссуер: Наведите детаље сертификата провајдера телефоније.

    • СоурцеИПНетwорк : Наведите ИП адресу СИПРЕЦ клијента. Наведите "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"
         }
      }
      

    За више информација о АПИ-ју, погледајте Сваггер документацију.

  5. Позовите следећи АПИ < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце да бисте добили листу корисника за снимање:
    GET /api/v1.0/providers/users

Након што администратор продаје Дyнамицс 365 креира политику снимања, провајдер може користити овај < ДИЦТ__крајња тачка > ендпоинт за филтрирање медија који ће се рачвати на < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце рекордерима.

корак 2: Форк медија (СИПРЕЦ интеграција)

< ДИЦТ__Обавештења о разговорима >цонверсатион интеллигенце рекордери имплементирају стандард СИПРЕЦ протокол.

Комуникација је обезбеђена коришћењем СИПС (порт 5061) и СРТП протокола. Аутентификација се врши помоћу мТЛС-а у вези са СИПС поруком, а заснива се на сертификату који је достављен АПИ-ју – што значи да провајдер мора бити регистрован за закупца да би успоставио СИПС везу.

Следећи снимак екрана илуструје комуникацију између СИПРЕЦ клијента и СИПРЕЦ сервера:

Снимак екрана узорка комуникације између СИПРЕЦ клијента и СИПРЕЦ сервера.

Следећи метаподаци су потребни за < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце:

Заглавља:

Име заглавља Опис Пример вредности
Позив-ИД Јединствени идентификатор позива. Овај ИД се користи за корелацију СИП сигнала и корисничких акција као што је покретање / заустављање снимања. Српски/српски
X-AccountId Јединствени идентификатор налога којем позив припада. Овај ИД се користи за аутентификацију и ауторизацију. Ово је исти ИД налога регистрован у АПИ-ју за станара. Српски/српски

Метаподаци

Име кључа метаподатака Опис Пример вредности
Улога Означава да ли је то долазни или одлазни позив за продавца. ["долазни", "одлазни"]
ЦаллерДисплаyНаме Позивалац < ДИЦТ__име за приказ > дисплаy наме. Ако није доступан, приказује се број телефона. Кени Смит
ЦаллееДисплаyНаме < ДИЦТ__име за приказ >дисплаy наме примаоца. Ако није доступан, приказује се број телефона. Алекс Бејкер

Ево примера позива и бyе порука са потребним заглављима и метаподацима:

ПОЗИВ порука:

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

Подржане су крајње тачке и региони снимача

Следећа табела наводи подржане крајње тачке снимача и њихове регионе. Можете да подесите рекордере које желите да користите у подешавањима телефоније провајдера. Да бисте сазнали како се то ради за Твилио Флек, погледајте корак 2: Инсталирајте СИПРЕЦ конектор и усмерите позиве на Дyнамицс 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 УАЕ
uksouth.media.recording.dynamics.com Уједињено Краљевство
westeurope.media.recording.dynamics.com Западна Европа
zaf.media.recording.dynamics.com Јужноафричка Република

корак КСНУМКС: Слање догађаја у реалном времену (интеграција клијента Диалер-а)

Да би се омогућило < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце да обезбеди < ДИЦТ__транскрипција и увиди у реалном времену > реал-тиме трансцриптион анд инсигхтс , бирач треће стране може да користи два догађаја да обавести када позив почиње или завршава.

  • Позив започео догађај: Када < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце добије "позив започет" догађај, он ће приказати дугме за снимање и < ДИЦТ__транскрипција и увиди у реалном времену > реал-тиме трансцриптион анд инсигхтс.

  • Догађај који је завршио позив: Када < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце добије догађај "позив је завршен", он ће Умотавање позив и приказати дугме Потпуни резиме да бисте добили < ДИЦТ__резиме позива > цалл суммарy и увиде генерисане АИ-ом.

Да бисте послали догађаје, користите раисеЕвент АПИ у < ДИЦТ__Дyнамицс 365 радни оквир за интеграцију канала > Дyнамицс 365 Цханнел Интегратион Фрамеwорк (ЦИФ).

Ево примера < ДИЦТ__исечак кода > цоде сниппет за слање догађаја:

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

Тестирајте интеграцију

Након регистрације новог провајдера код станара и постављања СИПРЕЦ рачвања и догађаја клијентског бирача, можете тестирати интеграцију креирањем нове политике снимања са новим провајдером.

  1. Пријавите се као администратор система у апликацији < ДИЦТ__Чвориште за продају > Салес Хуб.

  2. Из области Промена изаберите Подешавања увида у продају.

  3. Иди на < ДИЦТ__Општа подешавања > Глобал сеттингс >< ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце. У одељку Провајдери позива видећете провајдера треће стране који сте регистровали.

  4. Креирајте политику снимања за новог провајдера. За више информација, погледајте Подешавање Microsoft Teams за < ДИЦТ__Обавештења о разговорима > цонверсатион интеллигенце

Следећи снимак екрана је пример политике снимања за Твилио.

снимак екрана политике снимања за Твилио

Сада, позовите корисника који је део изабраног < ДИЦТ__безбедносна улога > сецуритy роле (у нашем примеру, политика је омогућена за све безбедносне улоге).

Када Дyнамицс 365 прими цаллСтартед догађај са бирача, имаћете опцију да започнете снимање:

Снимак екрана обавештења за снимање позива

Након што изаберете Рецорд , моћи ћете да видите транскрипцију у реалном времену током позива и потпуни резиме и < ДИЦТ__Увиди у позиве > цалл инсигхтс на крају позива.

Погледајте и разумејте < ДИЦТ__резиме позива > Цалл Суммарy страницу