Aracılığıyla paylaş


Dynamics 365 konuşma yönetim bilgileri (önizleme) ile üçüncü taraf çeviricilerini tümleştirme

[Bu makale, yayın öncesi belgelerine dahildir ve değiştirilebilir.]

Dynamics 365 kullanıcıları bu tümleştirmeyle, Twilio Flex gibi üçüncü taraf telefon kurumları tarafından sağlanan çeviricilerin yanı sıra Dynamics 365'te telefon görüşmeleri yapmak ve almak için, gerçek zamanlı yapay zeka tarafından üretilen görüşler ve bunların aramalarını zenginleştirmek için zengin arama sonrası analizler kullanabilir. Dynamics 365 konuşma yönetim bilgileri hakkında daha fazla bilgi edinin

Önemli

  • Bu, bir önizleme özelliğidir.
  • Önizleme özellikleri, üretimde kullanıma yönelik değildir ve sınırlı işlevselliğe sahip olabilir. Bu özellikler, ek kullanım koşullarına tabidir ve müşterilerin önceden erişmesi ve geri bildirim sağlaması amacıyla resmi sürümden önce kullanıma sunulur.

Tümleştirme nasıl çalışır?

Üst düzyde tümleştirme üç bölümden oluşur:

  1. Sağlayıcıyı kaydetme: Sağlayıcı ayrıntılarını kaydedin ve konuşma yönetim bilgileri API'sini kullanarak kaydedilecek kullanıcılar listesini alın.

  2. Medyayı ayırma: SIPREC bir protokol kullanarak ses akışını konuşma yönetim bilgileri kaydedicilerinden ayırma.

  3. Gerçek zamanlı etkinlikler gönderin: Gerçek zamanlı metin dökümü ve çağrı öngörüleri deneyimini etkinleştirmek için, sağlayıcının istemci kullanıcı arabiriminden Dynamics 365 konuşma zekasına kullanıcı arabirimi olaylarını gönderin.

Dynamics 365 görüşme zekası ve üçüncü taraf telefon sağlayıcısı Twilio Flex arasında bir örnek tümleştirme için bkz. Dynamics 365 konuşma yönetim bilgileri ile Twilio Flex'i tümleştirme.

Aşağıdaki diyagramda tümleştirmenin nasıl çalıştığı gösterilmektedir:

Tümleştirme akışını gösteren diyagram

1.Adım: Kaynak sağlayıcıyı kaydetme

  1. Microsoft Entra ID uygulaması oluşturun.

  2. Medya kaydı için API izni ekleme:

    1. Oluşturduğunuz Microsoft Entra ID uygulamasında API izinlerine gidin.

    2. İzin ekle'yi seçin.

    3. Kurumumun kullandığı API'ler'in altından Dynamics 365 Sales Medya Kayıtları'nı aratın ve seçin: Medya kaydı seçeneğinin ekran görüntüsü

    4. Users.Read.All iznini ekleyin ve İzin ekle'yi seçin

    Not

    Uygulama bağlamında konuşma yönetim bilgileri API'sine çağrı yaoabilmek için yönetici iznini aldığınızdan emin olun. Makinelerdeki izinler ve onay daha fazla bilgi edinin.

  3. Önceki bölümde oluşturulan uygulamayı kullanarak konuşma yönetim bilgileri API'lerini çalıştırmak için belirteci alın:

    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 parametresi, konuşma yönetim bilgileri uygulamasının uygulama kimliğini belirtir. Bu değeri değiştirmeyin.

    Curl komutu hakkında daha fazla bilgi için bkz Hizmet sorumluları için Microsoft Entra kimlik belirteçleri alma.

  4. Üçüncü taraf servis sağlayıcısını kaydetmek için aşağıdaki konuşma yönetim bilgileri API'sini arayın:
    POST /api/v1.0/providers/tenants

    İstek gövdesindeki şu parametrekeri belirtin:

    • orgID: Dynamics 365 kuruluş kimliğini belirtin.

    • Tür: Üçüncü taraf çeviriciler için "özel" belirtin.

    • Hosting: Telefon sağlayıcısının barındırma türünü belirtin. Örneğin, "bulut" veya "yerinde".

    • AccountId: Telefon sağlayıcısının hesap kimliğini belirtin.

    • CerfificateSubjectName ve CertificateIssuer: Telefon sağlayıcısının sertifika ayrıntılarını belirtin.

    • SourceIPNetwork: SIPREC istemcisinin IP adresini belirtin. IP adresini kısıtlamak istemiyorsanız "0.0.0.0" değerini belirtin.
      Aşağıdaki kod parçacığında istek gövdesinin örneği gösterilmektedir:

      
      {
         "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 hakkında daha fazla bilgi için bkz. Swagger belgeleri.

  5. Kaydedilecek kullanıcıların listesini almak için aşağıdaki konuşma yönetim bilgileri API'sini arayın:
    GET /api/v1.0/providers/users

Dynamics 365 Sales yöneticisi kayıt ilkesini oluşturduktan sonra, sağlayıcı bu uç noktayı görüşme zekası kaydedicilerine yönelik medyaya filtre uygulamak için kullanabilir.

2. Adım: Medyayı ayırma (SIPREC entegrasyonu)

Konuşma yönetim bilgileri kaydedici standart SIPREC protokolünü uygular.

İletişim, SIPS (port 5061) ve SRTP protokolleri kullanılarak güvenlik altına alınır. Kimlik doğrulaması SIPS ileti bağlantısında mTLS kullanılarak yapılır ve API'de sağlanan sertifikayı temel alır. Bu da sağlayıcının SIPS bağlantısı kurabilmesi için kiracı için kaydolması gerektiği anlamına gelir.

Aşağıdaki ekran görüntüsü SIPREC istemcisi ile SIPREC sunucusu arasındaki iletişimi göstermektedir:

SIPREC istemcisi ile SIPREC sunucusu arasındaki örnek iletişimi gösteren ekran görüntüsü.

Konuşma yönetim bilgileri için aşağıdaki meta veriler gereklidir:

Başlıklar:

Üst Bilgi Adı Veri Akışı Açıklaması Örnek Değer
Çağrı Kimliği Aramanın benzersiz tanıtıcısı. Bu kimlik SIP sinyallerini ve kayıt başlatma/durdurma gibi kullanıcı eylemlerini ilişkilendirmek için kullanılır. efxxxxxxxxxxxxx
X-AccountId Çağrının ait olduğu firmanın benzersiz tanıtıcısı. Bu kimlik, kimlik doğrulama ve kimlik doğrulama için kullanılır. Bu, kiracı için API'de kayıtlı olan hesap kimliğidir. ACxxxxxxxxxxxxxxxxxxxxxxx

Meta veriler

Meta veriler anahtarı adı Veri Akışı Açıklaması Örnek Değer
Rol Bunun satıcı için gelen veya giden bir çağrı olup olmadığını gösterir. ["inbound", "outbound"]
CallerDisplayName Arayanın görünen adı. Kullanılabilir değilse, telefon numarası görüntülenir. Kenny Smith
CalleeDisplayName Alıcının görünen adı. Kullanılabilir değilse, telefon numarası görüntülenir. Alex Baker

Aşağıda, gerekli üst bilgilere ve meta verilere sahip davet ve veda iletisi örnekleri verilmektedir:

DAVET iletisi:

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

VEDA iletisi:

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 

Kaydedici uç noktaları ve bölgeler desteklenir

Aşağıdaki tabloda, desteklenen kaydedici uç noktaları ve bunların bölgeleri listelenmektedir. Kullanmak istediğiniz kaydedicileri telefon sağlayıcı ayarlarınızda yapılandırabilirsiniz. Twilio Flex için bunun nasıl yapıldığı hakkında bilgi edinmek için 2. Adım: SIPREC bağlayıcısını takma ve Dynamics 365' e giden çağrıları yönlendirme'ye bakın.

Uç nokta Bölge
media.recording.dynamics.com Global (en yakın bölge)
southeastasia.media.recording.dynamics.com Güneydoğu Asya
australiaeast.media.recording.dynamics.com Avustralya
sam.media.recording.dynamics.com Güney Amerika
canadacentral.media.recording.dynamics.com Kanada
switzerlandnorth.media.recording.dynamics.com İsviçre
eastus.media.recording.dynamics.com ABD
francecentral.media.recording.dynamics.com Fransa
centralindia.media.recording.dynamics.com Hindistan
japaneast.media.recording.dynamics.com Japonya
uae.media.recording.dynamics.com BAE
uksouth.media.recording.dynamics.com Birleşik Krallık
westeurope.media.recording.dynamics.com Batı Avrupa
zaf.media.recording.dynamics.com Güney Afrika

3. Adım: Gerçek zamanlı olayları gönderme (Çeviricinin istemci tümleştirmesi)

Üçüncü taraf çevirici, konuşma yönetim bilgilerinin gerçek zamanlı dök ve içgörüler sunmasına izin vermek için, bir arama başladığında veya sonlandığında iki olay kullanabilir.

  • Çağrı başlatma olayı: Konuşma yönetim bilgileri "çağrı başladı" olayını aldığında, kayıt düğmesini ve gerçek zamanlı döküm ve içgörüleri gösterir.

  • Çağrı sonu olayı: Konuşma yönetim bilgileri "görüşme sonlandırıldı" olayı aldığında, çağrıyı sonlandırır ve yapay zeka tarafından oluşturulan çağrı özeti ve içgörüler almak için Tam özet düğmesini gösterir.

Olayları göndermek için Dynamics 365 Kanal Tümleştirme Çerçevesi'nde (CIF) raiseEvent API'sini kullanın.

Olayları göndermek için örnek bir kod parçası aşağıdadır:

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

Tümleştirmeyi test edin

Yeni sağlayıcıyı kiracıya kaydettikten ve SIPREC ayırma ve istemci çevirici olaylarının kurulumunu yaptıktan sonra, yeni sağlayıcıyla yeni bir kayıt ilkesi oluşturarak tümleştirmeyi sınayabilirsiniz.

  1. Satış Merkezi uygulaması içinde sistem yöneticisi olarak oturum açın.

  2. Değişiklik alanında, Sales Insights ayarları'nı seçin.

  3. Şu adımları izleyin: Genel ayarlar>Konuşma yönetim bilgileri. Arama sağlayıcıları bölümünde, kaydetmiş olduğunuz üçüncü taraf sağlayıcıyı görürsünüz.

  4. Yeni sağlayıcı için bir kayıt ilkesi oluşturun. Daha fazla bilgi için bkz. Konuşma yönetim bilgileri için Microsoft Teams'i ayarlama

Aşağıdaki ekran görüntüsü, Twilio için kayıt ilkesine bir örnektir.

Twilio için kayıt ilkesinin ekran görüntüsü

Şimdi, seçili güvenlik rolünün parçası olan bir kullanıcıyı arayın (örneğimizde, ilke tüm güvenlik rolleri için etkindir).

Dynamics 365, olay çeviricisinden callStarted olayını aldığında, kaydı başlatma seçeneğiniz vardır:

Çağrıları kaydetme bildiriminin ekran görüntüsü

Kayıt'ı seçtikten sonra, arama sırasında gerçek zamanlı dökümü görebilir tam bir özet işe çağrı içgörülerine erişebilirsiniz.

Arama özeti sayfasını görüntüleme ve anlama