Aracılığıyla paylaş


Kullanıcıya Yönelik Tanılama

Azure İletişim Hizmetleri'da aramalarla çalışırken müşterilerinizi etkileyen sorunlarla karşılaşabilirsiniz. Bu konuda yardımcı olmak için Azure İletişim Hizmetleri, sorunun ne olabileceğini belirlemek üzere bir çağrının çeşitli özelliklerini incelemek için kullanılabilecek "Kullanıcıya Yönelik Tanılama" (UFD) adlı bir özellik sağlar. Kullanıcıya Yönelik Tanılama, bir kullanıcının kötü bir deneyime sahip olabileceğini belirten bazı temel sorunlardan (zayıf ağ, kullanıcının mikrofonu kapalı) dolayı tetiklenen olaylardır. Kullanıcıya Yönelik Tanılama tetiklendiğinde, son kullanıcıya bazı temel sorunlarla karşılaşmış olabileceğine ilişkin geri bildirimde bulunmayı düşünmelisiniz. Ancak, Kullanıcıya Yönelik Tanılama çıktısı yalnızca bilgilendirme amaçlıdır ve çağrı yığını tetiklenen Kullanıcıya Yönelik Tanılamayı temel alarak herhangi bir değişiklik yapmaz.

Tanılama değerleri

Aşağıdaki kullanıcıya yönelik tanılamalar kullanılabilir:

Ağ değerleri

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
noNetwork Kullanılabilir ağ yok. - Kullanılabilir ağ olmadığından bir çağrının başlatılamadığı zaman olarak ayarlayın True .
- ICE adaylarının mevcut olduğu zaman olarak ayarlayın False .
Cihaz bir ağa bağlı değil. Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ iyileştirme bölümüne bakın.
networkRelaysNotReachable Ağ ile ilgili sorunlar. - Ağ, Azure İletişim Hizmetleri geçişlere ulaşmanıza izin vermeyecek bir kısıtlamaya sahip olduğunda olarak ayarlayınTrue.
- Yeni bir arama yaptıktan sonra olarak False ayarlayın.
WiFi sinyalinin açık ve kapalı olduğu bir arama sırasında. Güvenlik duvarı kurallarının ve ağ yönlendirmenin istemcinin Microsoft turn sunucularına erişmesine izin olduğundan emin olun. Daha fazla bilgi için Güvenlik duvarı yapılandırması bölümüne bakın.
networkReconnect Bağlantı kesildi ve ağa yeniden bağlanıyoruz. - Ağ bağlantısının kesildiğinde olarak ayarlayınBad
- Medya taşıma bağlantısının ne zaman kaybedildiğine Poorayarlayın
- Yeni bir oturumun bağlı olduğu zaman olarak Good ayarlayın.
Düşük bant genişliği, İnternet yok Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın.
networkReceiveQuality Gelen akış kalitesiyle ilgili bir gösterge. - Akışı almayla ilgili ciddi bir sorun olduğunda olarak ayarlayınBad .
- Akışı almayla ilgili hafif bir sorun olduğunda olarak ayarlayın Poor .
- Akışı almada sorun olmadığında olarak ayarlayın Good .
Düşük bant genişliği Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın. Kullanılabilir İnternet bant genişliğini korumak için son kullanıcının kamerasını kapatmasını önerin.
networkSendQuality Giden akış kalitesiyle ilgili bir gösterge. - Akışı gönderirken ciddi bir sorun olduğunda olarak ayarlayınBad .
- Akışı gönderirken hafif bir sorun olduğunda olarak ayarlayın Poor .
- Akışı gönderirken sorun olmadığında olarak ayarlayın Good .
Düşük bant genişliği Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın. Ayrıca, kullanılabilir İnternet bant genişliğini korumak için son kullanıcının kamerasını kapatmasını önerin.

Ses değerleri

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
noSpeakerDevicesEnumerated kullanıcının sisteminde ses çıkış cihazı (hoparlör) yoktur. - Sistemde hoparlör cihazı olmadığında olarak ayarlanır True ve konuşmacı seçimi desteklenir.
- Sistemde en az bir hoparlör cihazı olduğunda olarak ayarlayın False ve konuşmacı seçimi destekleniyor.
Tüm hoparlörler fişsiz değeri olarak Trueayarlandığında, son kullanıcıya geçerli arama oturumlarında kullanılabilir konuşmacı olmadığını belirten görsel bildirim vermeyi göz önünde bulundurun.
speakingWhileMicrophoneIsMuted Sessizdeyken konuşmak. - Yerel mikrofonun sesi kapatıldığında ve yerel kullanıcı konuştuğunda olarak ayarlayın True .
- Yerel kullanıcı konuşmayı durdurduğunda veya mikrofonun sesini kapattığında olarak ayarlayın False .
* Not: Ses düzeyi örnekleri WebRTC istatistiklerinden alındığından şu anda Safari'de bu seçenek desteklenmemektedir.
Arama sırasında mikrofonunuzun sesini kapatıp konuşun. Değer, son kullanıcıya konuştuğunu ve sesinin kapalı olduğunu fark etmeyebileceğine ilişkin görsel bildirim vermeyi göz önünde bulunduracak şekilde ayarlandığında True .
noMicrophoneDevicesEnumerated Kullanıcının sisteminde ses yakalama cihazı (mikrofon) yok - Sistemde mikrofon cihazı olmadığında olarak ayarlayın True .
- Sistemde en az bir mikrofon cihazı olduğunda olarak ayarlayın False .
Arama sırasında tüm mikrofonların fişi çıkarılır. Değer, son kullanıcıya geçerli arama oturumlarında mikrofon olmadığını belirten görsel bildirim vermeyi göz önünde bulunduracak şekilde ayarlandığında True . Daha fazla bilgi için cihaz yöneticisinden mikrofonu etkinleştirme bölümüne bakın.
mikrofonNotFunctioning Mikrofon çalışmıyor. - Mikrofon cihazı sistemde devre dışı bırakılmış olabileceği veya başka bir işlem tarafından kullanıldığı için yerel ses akışı göndermeye başlayamadığımızda olarak ayarlayın True . Bu UFD'nin yükseltilmesi yaklaşık 10 saniye sürer.
- Mikrofon yeniden başarılı bir şekilde ses akışı göndermeye başladığında olarak ayarlayın False .
Kullanılabilir mikrofon yok, sistemde mikrofon erişimi devre dışı Değer, son kullanıcıya mikrofonuyla ilgili bir sorun olduğunu belirten görsel bildirim verecek şekilde ayarlandığında True .
microphoneMuteUnexpectedly Mikrofonun sesi kapatıldı - Mikrofonun sessiz duruma beklenmedik bir şekilde girdiği zaman olarak ayarlayın True .
- Mikrofon başarılı bir şekilde ses akışı göndermeye başladığında olarak ayarlayın False
Mikrofonun sesi sistemden kapatıldı. Çoğu durum, kullanıcı mobil cihazda bir Azure İletişim Hizmetleri aramasında olduğunda ve bir telefon araması geldiğinde gerçekleşir. Çoğu durumda, işletim sistemi Azure İletişim Hizmetleri aramasının sesini kapatarak kullanıcının telefon aramasını yanıtlamasını sağlar. değeri olarak Trueayarlandığında, son kullanıcıya bir telefon araması geldiği için aramanın sesinin kapatıldığını belirten görsel bildirimde bulunun. Daha fazla bilgi için, daha fazla ayrıntı için Azure İletişim Hizmetleri arama bölümünün sessize alınarak işletim sisteminin nasıl en iyi şekilde işleneceğini öğrenin.
mikrofonPermissionDenied cihazdan düşük ses düzeyi var veya macOS'ta neredeyse sessiz. - Ses izninin sistem ayarlarından (ses) reddedildiğinde olarak ayarlayın True .
- Başarılı akış alımında olarak False ayarlayın.
Not: Bu tanılama yalnızca macOS'ta çalışır.
mikrofon izinleri Ayarlar devre dışı bırakılır. değeri olarak Trueayarlandığında, son kullanıcıya bir Azure İletişim Hizmetleri çağrısı için mikrofon kullanma iznini etkinleştirmediğini belirten görsel bir bildirim verin.

değerleri Kamera

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
cameraFreeze Kamera 5 saniyeden uzun süre çerçeve üretmeyi durdurur. - Yerel video akışının ne zaman dondurulduğunda olarak ayarlayın True . Bu tanılama, uzak tarafın videonuzu ekranlarında donmuş olarak gördüğü veya uzak katılımcıların videonuzu kendi ekranlarında işlemediği anlamına gelir.
- Dondurmanın ne zaman sona erdiğini ve kullanıcıların videonuzu normal şekilde görebileceği şekilde ayarlayın False .
arama sırasında Kamera kayboldu veya kötü ağ kameranın donmasına neden oldu. değeri olarak Trueayarlandığında, son kullanıcıya uzak katılımcı ağının kötü olabileceğine dair bildirim vermeyi göz önünde bulundurun; bant genişliğini korumak için kamerasını kapatmalarını önerebilir. Daha fazla bilgi için, Azure İletişim Hizmetleri çağrısı için gerekli İnternet becerileriyle ilgili ağ bant genişliği gereksinimi bölümüne bakın.
cameraStartFailed Genel kamera hatası. - Kamera cihazı sistemde devre dışı bırakılmış olabileceği veya başka bir işlem tarafından kullanıldığı için yerel video göndermeye başlayamadığımız zaman olarak ayarlayın True ~.
- Seçili kamera cihazının False yeniden yerel video gönderdiğinde olarak ayarlayın.
Kamera hataları değeri olarak Trueayarlandığında, son kullanıcıya kameralarının başlatılamadığını belirten görsel bir bildirim verin.
cameraStartTimedOut Kameranın kötü durumda olduğu yaygın senaryo. - Video akışı göndermeye başlamak için True kamera cihazının zaman aşımına uğradıklarına ayarlayın.
- Seçili kamera cihazının False yeniden yerel video gönderdiğinde olarak ayarlayın.
Kamera hataları değeri olarak Trueayarlandığında, son kullanıcıya kameralarında sorun olabileceğini belirten görsel bir bildirim verin. (Değer bildirimi kaldırmak için False geri ayarlandığında).
cameraPermissionDenied ayarlarda Kamera izinleri reddedildi. - Sistem ayarlarından (video) kamera izninin ne zaman reddedildiğinde olarak ayarlayın True .
- Başarılı akış alımında olarak False ayarlayın.
Not: Bu tanılama yalnızca macOS Chrome'da çalışır.
Kamera izinleri ayarlarda devre dışı bırakılır. değeri olarak Trueayarlandığında, son kullanıcıya bir Azure İletişim Hizmetleri çağrısı için kamera kullanma iznini etkinleştirmediğini belirten görsel bildirim verin.
cameraStoppedUnexpectedly Kamera arızası - Kamera beklenmedik bir şekilde durduruldu durumuna girdiğinde olarak ayarlayın True .
- Kamera yeniden başarılı bir şekilde video akışı göndermeye başladığında olarak ayarlayın False .
Kameranın düzgün çalıştığını denetleyin. değeri olarak Trueayarlandığında, son kullanıcıya kameralarında sorun olabileceğini belirten görsel bir bildirim verin. (Değer bildirimi kaldırmak için False geri ayarlandığında).

Sair değerler

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Düzeltme Adımları
screenshareRecordingDisabled Sistem ekranı paylaşımı Ayarlar'daki tercihlerden reddedildi. - Sistem ayarlarından ekran paylaşımı izninin ne zaman reddedildiğinde (paylaşım) olarak ayarlayın True .
- Başarılı akış alımında olarak False ayarlayın.
Not: Bu tanılama yalnızca macOS.Chrome'da çalışır.
Ekran kaydı Ayarlar'da devre dışı bırakılır. değeri olarak Trueayarlandığında, son kullanıcıya Azure İletişim Hizmetleri çağrısı için ekranını paylaşma iznini etkinleştirmediğini belirten görsel bildirimde bulunur.
capturerStartFailed Sistem ekranı paylaşımı başarısız oldu. - Ekranı yakalamaya başlayamaması için olarak ayarlayın True .
- Ekranı yakalama işleminin başarılı bir şekilde başlatabileceği zaman olarak ayarlayın False .
değeri olarak Trueayarlandığında, son kullanıcıya ekranını paylaşırken bir sorun olabileceğini belirten görsel bildirimde bulunur. (Değer olarak geri Falseayarlandığında bildirimi kaldırın).
capturerStoppedUnexpectedly Sistem ekran paylaşımı arızası - Ekran yakalayıcının beklenmedik bir şekilde durdurulma durumuna girdiği zaman olarak ayarlayın True .
- Ekran yakalayıcının yeniden başarılı bir şekilde yakalamaya başlayacağı zaman olarak ayarlayın False .
Ekran paylaşımının düzgün çalıştığını denetleme değeri olarak Trueayarlandığında, son kullanıcıya ekran paylaşımının durmasına neden olabilecek bir sorun olduğuna dair görsel bildirim verin. (Değer bildirimi kaldırmak için False geri ayarlandığında).

Tanılamaya erişme

Kullanıcıya yönelik tanılama, çekirdek Call API'nin genişletilmiş bir özelliğidir ve etkin bir çağrıyı tanılamanıza olanak tanır.

const userFacingDiagnostics = call.feature(Features.UserFacingDiagnostics);

Kullanıcıya Yönelik Tanılama olayları

  • diagnosticChanged Kullanıcıya yönelik tanılama değişikliklerinin ne zaman değiştiğini izlemek için olaya abone olun.
/**
 *  Each diagnostic has the following data:
 * - diagnostic is the type of diagnostic, e.g. NetworkSendQuality, DeviceSpeakWhileMuted, etc...
 * - value is DiagnosticQuality or DiagnosticFlag:
 *     - DiagnosticQuality = enum { Good = 1, Poor = 2, Bad = 3 }.
 *     - DiagnosticFlag = true | false.
 * - valueType = 'DiagnosticQuality' | 'DiagnosticFlag'
 */
const diagnosticChangedListener = (diagnosticInfo: NetworkDiagnosticChangedEventArgs | MediaDiagnosticChangedEventArgs) => {
    console.log(`Diagnostic changed: ` +
        `Diagnostic: ${diagnosticInfo.diagnostic}` +
        `Value: ${diagnosticInfo.value}` +
        `Value type: ${diagnosticInfo.valueType}`);

    if (diagnosticInfo.valueType === 'DiagnosticQuality') {
        if (diagnosticInfo.value === DiagnosticQuality.Bad) {
            console.error(`${diagnosticInfo.diagnostic} is bad quality`);

        } else if (diagnosticInfo.value === DiagnosticQuality.Poor) {
            console.error(`${diagnosticInfo.diagnostic} is poor quality`);
        }

    } else if (diagnosticInfo.valueType === 'DiagnosticFlag') {
        if (diagnosticInfo.value === true) {
            console.error(`${diagnosticInfo.diagnostic}`);
        }
    }
};

userFacingDiagnostics.network.on('diagnosticChanged', diagnosticChangedListener);
userFacingDiagnostics.media.on('diagnosticChanged', diagnosticChangedListener);

Kullanıcıya Yönelik En Son Tanılamaları Alma

  • Yükseltilen en son tanılama değerlerini alın. Bir tanılama tanımlanmamışsa, bunun nedeni hiç tetiklenmemiş olmasıdır.
const latestNetworkDiagnostics = userFacingDiagnostics.network.getLatest();

console.log(
  `noNetwork: ${latestNetworkDiagnostics.noNetwork.value}, ` +
    `value type = ${latestNetworkDiagnostics.noNetwork.valueType}`
);

console.log(
  `networkReconnect: ${latestNetworkDiagnostics.networkReconnect.value}, ` +
    `value type = ${latestNetworkDiagnostics.networkReconnect.valueType}`
);

console.log(
  `networkReceiveQuality: ${latestNetworkDiagnostics.networkReceiveQuality.value}, ` +
    `value type = ${latestNetworkDiagnostics.networkReceiveQuality.valueType}`
);

const latestMediaDiagnostics = userFacingDiagnostics.media.getLatest();

console.log(
  `speakingWhileMicrophoneIsMuted: ${latestMediaDiagnostics.speakingWhileMicrophoneIsMuted.value}, ` +
    `value type = ${latestMediaDiagnostics.speakingWhileMicrophoneIsMuted.valueType}`
);

console.log(
  `cameraStartFailed: ${latestMediaDiagnostics.cameraStartFailed.value}, ` +
    `value type = ${latestMediaDiagnostics.cameraStartFailed.valueType}`
);

console.log(
  `microphoneNotFunctioning: ${latestMediaDiagnostics.microphoneNotFunctioning.value}, ` +
    `value type = ${latestMediaDiagnostics.microphoneNotFunctioning.valueType}`
);

Tanılama değerleri

Aşağıdaki kullanıcıya yönelik tanılamalar kullanılabilir:

Ağ değerleri

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
networkUnavailable Kullanılabilir ağ yok. - Kullanılabilir ağ olmadığından bir çağrının başlatılamadığı zaman olarak ayarlayın True .
- ICE adaylarının mevcut olduğu zaman olarak ayarlayın False .
Cihaz bir ağa bağlı değil. Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ iyileştirme bölümüne bakın.
networkRelaysUnreachable Ağ ile ilgili sorunlar. - Ağ, Azure İletişim Hizmetleri geçişlere ulaşmanıza izin vermeyecek bir kısıtlamaya sahip olduğunda olarak ayarlayınTrue.
- Yeni bir arama yaptıktan sonra olarak False ayarlayın.
WiFi sinyalinin açık ve kapalı olduğu bir arama sırasında. Güvenlik duvarı kurallarının ve ağ yönlendirmenin istemcinin Microsoft turn sunucularına erişmesine izin olduğundan emin olun. Daha fazla bilgi için Güvenlik duvarı yapılandırması bölümüne bakın.
networkReconnectionQuality Bağlantı kesildi ve ağa yeniden bağlanıyoruz. - Ağ bağlantısının kesildiğinde olarak ayarlayınBad
- Medya taşıma bağlantısının ne zaman kaybedildiğine Poorayarlayın
- Yeni bir oturumun bağlı olduğu zaman olarak Good ayarlayın.
Düşük bant genişliği, İnternet yok Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın.
networkReceiveQuality Gelen akış kalitesiyle ilgili bir gösterge. - Akışı almayla ilgili ciddi bir sorun olduğunda olarak ayarlayınBad .
- Akışı almayla ilgili hafif bir sorun olduğunda olarak ayarlayın Poor .
- Akışı almada sorun olmadığında olarak ayarlayın Good .
- Yalnızca aramada etkin bir ses akışı varsa görünür; bu da katılımcının belirli bir süre boyunca etkin bir şekilde konuştuğu anlamına gelir.
Düşük bant genişliği Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın. Kullanılabilir İnternet bant genişliğini korumak için son kullanıcının kamerasını kapatmasını önerin.
networkSendQuality Giden akış kalitesiyle ilgili bir gösterge. - Akışı gönderirken ciddi bir sorun olduğunda olarak ayarlayınBad .
- Akışı gönderirken hafif bir sorun olduğunda olarak ayarlayın Poor .
- Akışı gönderirken sorun olmadığında olarak ayarlayın Good .
- Kalite tanılamasını almaya benzer şekilde, yalnızca aramada etkin bir ses akışı varsa görünür ve bu da katılımcının belirli bir süre boyunca etkin bir şekilde konuştuğu anlamına gelir. Ancak, kaliteyi doğrulamak için diğer taraftan gelen bilgilere bağlı olduğundan yalnızca 1:1 çağrısında çalışır. Diğer tarafın alınan verilere sinyal göndermesi gereken yer.
Düşük bant genişliği Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın. Ayrıca, kullanılabilir İnternet bant genişliğini korumak için son kullanıcının kamerasını kapatmasını önerin.

Ses değerleri

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
noSpeakerDevicesAvailable kullanıcının sisteminde ses çıkış cihazı (hoparlör) yoktur. - Sistemde hoparlör cihazı olmadığında olarak ayarlanır True ve konuşmacı seçimi desteklenir.
- Sistemde en az bir hoparlör cihazı olduğunda olarak ayarlayın False ve konuşmacı seçimi destekleniyor.
Tüm hoparlörler fişsiz değeri olarak Trueayarlandığında, son kullanıcıya geçerli arama oturumlarında kullanılabilir konuşmacı olmadığını belirten görsel bildirim vermeyi göz önünde bulundurun.
speakingWhileMicrophoneIsMuted Sessizdeyken konuşmak. - Yerel mikrofonun sesi kapatıldığında ve yerel kullanıcı konuştuğunda olarak ayarlayın True .
- Yerel kullanıcı konuşmayı durdurduğunda veya mikrofonun sesini kapattığında olarak ayarlayın False .
- Bu tanılama olayı, gürültüden kaçınmak ve daha iyi bir kullanıcı deneyimi sağlamak için herhangi bir kullanıcı eylemi olmadan belirli bir süre tetiklenirse otomatik olarak devre dışı bırakılabilir. Yeni bir sessiz eylemi gerçekleştiğinde yeniden etkinleştirilir.
Arama sırasında mikrofonunuzun sesini kapatıp konuşun. Değer, son kullanıcıya konuştuğunu ve sesinin kapalı olduğunu fark etmeyebileceğine ilişkin görsel bildirim vermeyi göz önünde bulunduracak şekilde ayarlandığında True .
noMicrophoneDevicesAvailable Kullanıcının sisteminde ses yakalama cihazı (mikrofon) yok - Sistemde mikrofon cihazı olmadığında olarak ayarlayın True .
- Sistemde en az bir mikrofon cihazı olduğunda olarak ayarlayın False .
Arama sırasında tüm mikrofonların fişi çıkarılır. Değer, son kullanıcıya geçerli arama oturumlarında mikrofon olmadığını belirten görsel bildirim vermeyi göz önünde bulunduracak şekilde ayarlandığında True . Daha fazla bilgi için cihaz yöneticisinden mikrofonu etkinleştirme bölümüne bakın.
mikrofonNotFunctioning Mikrofon çalışmıyor. - Mikrofon cihazı sistemde devre dışı bırakılmış olabileceği veya başka bir işlem tarafından kullanıldığı için yerel ses akışı göndermeye başlayamadığımızda olarak ayarlayın True . Bu UFD'nin yükseltilmesi yaklaşık 10 saniye sürer.
- Mikrofon yeniden başarılı bir şekilde ses akışı göndermeye başladığında olarak ayarlayın False .
Kullanılabilir mikrofon yok, sistemde mikrofon erişimi devre dışı Değer, son kullanıcıya mikrofonuyla ilgili bir sorun olduğunu belirten görsel bildirim verecek şekilde ayarlandığında True .
microphoneMuteUnexpectedly Mikrofonun sesi kapatıldı - Mikrofonun sessiz duruma beklenmedik bir şekilde girdiği zaman olarak ayarlayın True .
- Mikrofon başarılı bir şekilde ses akışı göndermeye başladığında olarak ayarlayın False
Mikrofonun sesi sistemden kapatıldı. Çoğu durum, kullanıcı mobil cihazda bir Azure İletişim Hizmetleri aramasında olduğunda ve bir telefon araması geldiğinde gerçekleşir. Çoğu durumda, işletim sistemi Azure İletişim Hizmetleri aramasının sesini kapatarak kullanıcının telefon aramasını yanıtlamasını sağlar. değeri olarak Trueayarlandığında, son kullanıcıya bir telefon araması geldiği için aramanın sesinin kapatıldığını belirten görsel bildirimde bulunun. Daha fazla bilgi için, daha fazla ayrıntı için Azure İletişim Hizmetleri arama bölümünün sessize alınarak işletim sisteminin nasıl en iyi şekilde işleneceğini öğrenin.
mikrofonPermissionDenied cihazdan düşük ses düzeyi var veya macOS'ta neredeyse sessiz. - Ses izninin sistem ayarlarından (ses) reddedildiğinde olarak ayarlayın True .
- Başarılı akış alımında olarak False ayarlayın.
Not: Bu tanılama yalnızca macOS'ta çalışır.
mikrofon izinleri Ayarlar devre dışı bırakılır. değeri olarak Trueayarlandığında, son kullanıcıya bir Azure İletişim Hizmetleri çağrısı için mikrofon kullanma iznini etkinleştirmediğini belirten görsel bildirim verin.

değerleri Kamera

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
cameraFrozen Kamera 5 saniyeden uzun süre çerçeve üretmeyi durdurur. - Yerel video akışının ne zaman dondurulduğunda olarak ayarlayın True . Bu tanılama, uzak tarafın videonuzu ekranlarında donmuş olarak gördüğü veya uzak katılımcıların videonuzu kendi ekranlarında işlemedikleri anlamına gelir.
- Dondurmanın ne zaman sona erdiğini ve kullanıcıların videonuzu normal şekilde görebileceği şekilde ayarlayın False .
arama sırasında Kamera kayboldu veya kötü ağ kameranın donmasına neden oldu. değeri olarak Trueayarlandığında, son kullanıcıya uzak katılımcı ağının kötü olabileceğine dair bildirim vermeyi göz önünde bulundurun; bant genişliğini korumak için kamerasını kapatmalarını önerebilir. Daha fazla bilgi için, Azure İletişim Hizmetleri çağrısı için gerekli İnternet becerileriyle ilgili ağ bant genişliği gereksinimi bölümüne bakın.
cameraStartFailed Genel kamera hatası. - Kamera cihazı sistemde devre dışı bırakılmış olabileceği veya başka bir işlem tarafından kullanıldığı için yerel video göndermeye başlayamadığımız zaman olarak ayarlayın True ~.
- Seçili kamera cihazının False yeniden yerel video gönderdiğinde olarak ayarlayın.
Kamera hataları değeri olarak Trueayarlandığında, son kullanıcıya kameralarının başlatılamadığını belirten görsel bir bildirim verin.
cameraStartTimedOut Kameranın kötü durumda olduğu yaygın senaryo. - Video akışı göndermeye başlamak için True kamera cihazının zaman aşımına uğradıklarına ayarlayın.
- Seçili kamera cihazının False yeniden yerel video gönderdiğinde olarak ayarlayın.
Kamera hataları değeri olarak Trueayarlandığında, son kullanıcıya kameralarında sorun olabileceğini belirten görsel bir bildirim verin. (Değer bildirimi kaldırmak için False geri ayarlandığında).
cameraPermissionDenied ayarlarda Kamera izinleri reddedildi. - Sistem ayarlarından (video) kamera izninin ne zaman reddedildiğinde olarak ayarlayın True .
- Başarılı akış alımında olarak False ayarlayın.
Not: Bu tanılama yalnızca macOS Chrome'da çalışır.
Kamera izinleri ayarlarda devre dışı bırakılır. değeri olarak Trueayarlandığında, son kullanıcıya bir Azure İletişim Hizmetleri çağrısı için kamera kullanma iznini etkinleştirmediğini belirten görsel bildirim verin.
cameraStoppedUnexpectedly Kamera arızası - Kamera beklenmedik bir şekilde durduruldu durumuna girdiğinde olarak ayarlayın True .
- Kamera yeniden başarılı bir şekilde video akışı göndermeye başladığında olarak ayarlayın False .
Kameranın düzgün çalıştığını denetleyin. değeri olarak Trueayarlandığında, son kullanıcıya kameralarında sorun olabileceğini belirten görsel bir bildirim verin. (Değer bildirimi kaldırmak için False geri ayarlandığında).

Yalnızca yerel

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Düzeltme Adımları
speakerVolumeIsZero Cihazda (hoparlör) sıfır ses düzeyi. - Hoparlör sesi sıfır olduğunda olarak ayarlayın True .
- Hoparlör ses düzeyi sıfır olmadığında olarak ayarlayın False .
Arama sırasında katılımcılardan ses alınmıyor. Değer olarak Trueayarlandığında, birimi yanlışlıkla en düşükte (sıfır) yapmış olabilirsiniz.
speakerMuted Hoparlör cihazının sesi kapatıldı. - Hoparlör cihazının sesi kapatıldığında olarak ayarlayın True .
- Hoparlör cihazının sesi kapatıldığında olarak ayarlayın False .
Arama sırasında katılımcılardan ses alınmıyor. Değer olarak Trueayarlandığında, hoparlörün sesini yanlışlıkla kapatmış olabilirsiniz.
speakerBusy Hoparlör zaten kullanımda. Cihaz özel kullanım modunda kullanılıyor veya cihaz paylaşılan modda kullanılıyor ve arayan kişi cihazı özel kullanım modunda kullanmak istedi. - Hoparlör cihazı akışı alma zaman aşımına uğradı (ses) olarak ayarlayın True .
- Konuşmacı alımının başarılı olduğu zaman olarak False ayarlayın.
Konuşmacı aracılığıyla arama sırasında katılımcılardan ses duyamayın. değeri olarak Trueayarlandığında, son kullanıcıya görsel bildirim verin, böylece başka bir uygulamanın hoparlörü kullanıp kullanmadığından ve kapatmayı deneyebileceğinden.
speakerNotFunctioning Hoparlör çalışmıyor (ses cihazı istemcisi başlatılamadı veya cihaz 5 saniyeden uzun süre etkin değil oldu) - Hoparlör kullanılamadığında olarak ayarlayın True veya cihaz akışı alma zaman aşımına uğradı (ses).
- Konuşmacı alımının başarılı olduğu zaman olarak False ayarlayın.
Konuşmacı aracılığıyla arama sırasında katılımcılardan ses duyamayın. Hoparlör cihazının durumunu denetlemeyi deneyin.
microphoneBusy Mikrofon zaten kullanımda. Cihaz özel kullanım modunda kullanılıyor veya cihaz paylaşılan modda kullanılıyor ve arayan kişi cihazı özel kullanım modunda kullanmak istedi. - Mikrofon cihazı akışı alma zaman aşımına uğradı (ses) olarak ayarlayın True .
- Mikrofon alımı başarılı olduğunda olarak False ayarlayın.
Sesiniz aramadaki diğer katılımcılara ulaşmıyor. Değer olarak Trueayarlandığında, mikrofonu başka bir uygulamanın kullanıp kullanmadiğini denetleyebilmesi ve kapatmayı deneyebilmesi için son kullanıcıya görsel bildirim verin.

Tanılamaya erişme

Kullanıcıya yönelik tanılama, çekirdek Call API'nin genişletilmiş bir özelliğidir ve etkin bir çağrıyı tanılamanıza olanak tanır.

DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);

Kullanıcıya Yönelik Tanılama olayları

  • Özellik nesnesini alın ve tanılama olaylarına dinleyiciler ekleyin.
DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);

/* NetworkDiagnostic */
FlagDiagnosticChangedListener listener = (FlagDiagnosticChangedEvent args) -> {
  Boolean mediaValue = args.getValue();
  // Handle new value for no network diagnostic.
};

NetworkDiagnostics networkDiagnostics = diagnosticsCallFeature.getNetworkDiagnostics();
networkDiagnostics.addOnNetworkUnreachableChangedListener(listener);

// To remove listener for network quality event
networkDiagnostics.removeOnNetworkUnreachableChangedListener(listener);

// Quality Diagnostics
DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);
QualityDiagnosticChangedListener listener = (QualityDiagnosticChangedEvent args) -> {
  DiagnosticQuality diagnosticQuality = args.getValue();
  // Handle new value for network reconnect diagnostic.
};

NetworkDiagnostics networkDiagnostics = diagnosticsCallFeature.getNetworkDiagnostics();
networkDiagnostics.addOnNetworkReconnectionQualityChangedListener(listener);

// To remove listener for media flag event
networkDiagnostics.removeOnNetworkReconnectionQualityChangedListener(listener);

/* MediaDiagnostic */
DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);
FlagDiagnosticChangedListener listener = (FlagDiagnosticChangedEvent args) -> {
  Boolean mediaValue = args.getValue();
  // Handle new value for speaker not functioning diagnostic.
};

MediaDiagnostics mediaDiagnostics = diagnosticsCallFeature.getMedia();
mediaDiagnostics.addOnIsSpeakerNotFunctioningChangedListener(listener);

// To remove listener for media flag event
mediaDiagnostics.removeOnIsSpeakerNotFunctioningChangedListener(listener);

Kullanıcıya Yönelik En Son Tanılamaları Alma

  • Geçerli çağrıda ortaya çıkarılmış en son tanılama değerlerini alın. Tanılama için hala bir değer almadıysak, bir özel durum oluşturulur.
DiagnosticsCallFeature diagnosticsCallFeature = call.feature(Features.LOCAL_USER_DIAGNOSTICS);
NetworkDiagnostics networkDiagnostics = diagnosticsCallFeature.getNetwork();
MediaDiagnostics mediaDiagnostics = diagnosticsCallFeature.getMedia();

NetworkDiagnosticValues latestNetwork = networkDiagnostics.getLatestDiagnostics();
Boolean lastNetworkValue = latestNetwork.isNetworkUnavailable(); // null if there isn't a value for this diagnostic.
DiagnosticQuality lastReceiveQualityValue = latestNetwork.getNetworkReceiveQuality(); //  UNKNOWN if there isn't a value for this diagnostic.

MediaDiagnosticValues latestMedia = networkDiagnostics.getLatestDiagnostics();
Boolean lastSpeakerNotFunctionValue = latestMedia.isSpeakerNotFunctioning(); // null if there isn't a value for this diagnostic.

// Use the last values ...

Tanılama değerleri

Aşağıdaki kullanıcıya yönelik tanılamalar kullanılabilir:

Ağ değerleri

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
networkUnavailable Kullanılabilir ağ yok. - Kullanılabilir ağ olmadığından bir çağrının başlatılamadığı zaman olarak ayarlayın True .
- ICE adaylarının mevcut olduğu zaman olarak ayarlayın False .
Cihaz bir ağa bağlı değil. Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ iyileştirme bölümüne bakın.
networkRelaysUnreachable Ağ ile ilgili sorunlar. - Ağ, Azure İletişim Hizmetleri geçişlere ulaşmanıza izin vermeyecek bir kısıtlamaya sahip olduğunda olarak ayarlayınTrue.
- Yeni bir arama yaptıktan sonra olarak False ayarlayın.
WiFi sinyalinin açık ve kapalı olduğu bir arama sırasında. Güvenlik duvarı kurallarının ve ağ yönlendirmenin istemcinin Microsoft turn sunucularına erişmesine izin olduğundan emin olun. Daha fazla bilgi için Güvenlik duvarı yapılandırması bölümüne bakın.
networkReconnectionQuality Bağlantı kesildi ve ağa yeniden bağlanıyoruz. - Ağ bağlantısının kesildiğinde olarak ayarlayınBad
- Medya taşıma bağlantısının ne zaman kaybedildiğine Poorayarlayın
- Yeni bir oturumun bağlı olduğu zaman olarak Good ayarlayın.
Düşük bant genişliği, İnternet yok Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın.
networkReceiveQuality Gelen akış kalitesiyle ilgili bir gösterge. - Akışı almayla ilgili ciddi bir sorun olduğunda olarak ayarlayınBad .
- Akışı almayla ilgili hafif bir sorun olduğunda olarak ayarlayın Poor .
- Akışı almada sorun olmadığında olarak ayarlayın Good .
- Yalnızca aramada etkin bir ses akışı varsa görünür; bu da katılımcının belirli bir süre boyunca etkin bir şekilde konuştuğu anlamına gelir.
Düşük bant genişliği Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın. Kullanılabilir İnternet bant genişliğini korumak için son kullanıcının kamerasını kapatmasını önerin.
networkSendQuality Giden akış kalitesiyle ilgili bir gösterge. - Akışı gönderirken ciddi bir sorun olduğunda olarak ayarlayınBad .
- Akışı gönderirken hafif bir sorun olduğunda olarak ayarlayın Poor .
- Akışı gönderirken sorun olmadığında olarak ayarlayın Good .
- Kalite tanılamasını almaya benzer şekilde, yalnızca aramada etkin bir ses akışı varsa görünür ve bu da katılımcının belirli bir süre boyunca etkin bir şekilde konuştuğu anlamına gelir. Ancak, kaliteyi doğrulamak için diğer taraftan gelen bilgilere bağlı olduğundan yalnızca 1:1 çağrısında çalışır. Diğer tarafın alınan verilere sinyal göndermesi gereken yer.
Düşük bant genişliği Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın. Ayrıca, kullanılabilir İnternet bant genişliğini korumak için son kullanıcının kamerasını kapatmasını önerin.

Ses değerleri

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
noSpeakerDevicesAvailable kullanıcının sisteminde ses çıkış cihazı (hoparlör) yoktur. - Sistemde hoparlör cihazı olmadığında olarak ayarlanır True ve konuşmacı seçimi desteklenir.
- Sistemde en az bir hoparlör cihazı olduğunda olarak ayarlayın False ve konuşmacı seçimi destekleniyor.
Tüm hoparlörler fişsiz değeri olarak Trueayarlandığında, son kullanıcıya geçerli arama oturumlarında kullanılabilir konuşmacı olmadığını belirten görsel bildirim vermeyi göz önünde bulundurun.
speakingWhileMicrophoneIsMuted Sessizdeyken konuşmak. - Yerel mikrofonun sesi kapatıldığında ve yerel kullanıcı konuştuğunda olarak ayarlayın True .
- Yerel kullanıcı konuşmayı durdurduğunda veya mikrofonun sesini kapattığında olarak ayarlayın False .
- Bu tanılama olayı, gürültüden kaçınmak ve daha iyi bir kullanıcı deneyimi sağlamak için herhangi bir kullanıcı eylemi olmadan belirli bir süre tetiklenirse otomatik olarak devre dışı bırakılabilir. Yeni bir sessiz eylemi gerçekleştiğinde yeniden etkinleştirilir.
Arama sırasında mikrofonunuzun sesini kapatıp konuşun. Değer, son kullanıcıya konuştuğunu ve sesinin kapalı olduğunu fark etmeyebileceğine ilişkin görsel bildirim vermeyi göz önünde bulunduracak şekilde ayarlandığında True .
noMicrophoneDevicesAvailable Kullanıcının sisteminde ses yakalama cihazı (mikrofon) yok - Sistemde mikrofon cihazı olmadığında olarak ayarlayın True .
- Sistemde en az bir mikrofon cihazı olduğunda olarak ayarlayın False .
Arama sırasında tüm mikrofonların fişi çıkarılır. Değer, son kullanıcıya geçerli arama oturumlarında mikrofon olmadığını belirten görsel bildirim vermeyi göz önünde bulunduracak şekilde ayarlandığında True . Daha fazla bilgi için cihaz yöneticisinden mikrofonu etkinleştirme bölümüne bakın.
mikrofonNotFunctioning Mikrofon çalışmıyor. - Mikrofon cihazı sistemde devre dışı bırakılmış olabileceği veya başka bir işlem tarafından kullanıldığı için yerel ses akışı göndermeye başlayamadığımızda olarak ayarlayın True . Bu UFD'nin yükseltilmesi yaklaşık 10 saniye sürer.
- Mikrofon yeniden başarılı bir şekilde ses akışı göndermeye başladığında olarak ayarlayın False .
Kullanılabilir mikrofon yok, sistemde mikrofon erişimi devre dışı Değer, son kullanıcıya mikrofonuyla ilgili bir sorun olduğunu belirten görsel bildirim verecek şekilde ayarlandığında True .
microphoneMuteUnexpectedly Mikrofonun sesi kapatıldı - Mikrofonun sessiz duruma beklenmedik bir şekilde girdiği zaman olarak ayarlayın True .
- Mikrofon başarılı bir şekilde ses akışı göndermeye başladığında olarak ayarlayın False
Mikrofonun sesi sistemden kapatıldı. Çoğu durum, kullanıcı mobil cihazda bir Azure İletişim Hizmetleri aramasında olduğunda ve bir telefon araması geldiğinde gerçekleşir. Çoğu durumda, işletim sistemi Azure İletişim Hizmetleri aramasının sesini kapatarak kullanıcının telefon aramasını yanıtlamasını sağlar. değeri olarak Trueayarlandığında, son kullanıcıya bir telefon araması geldiği için aramanın sesinin kapatıldığını belirten görsel bildirimde bulunun. Daha fazla bilgi için, daha fazla ayrıntı için Azure İletişim Hizmetleri arama bölümünün sessize alınarak işletim sisteminin nasıl en iyi şekilde işleneceğini öğrenin.
mikrofonPermissionDenied cihazdan düşük ses düzeyi var veya macOS'ta neredeyse sessiz. - Ses izninin sistem ayarlarından (ses) reddedildiğinde olarak ayarlayın True .
- Başarılı akış alımında olarak False ayarlayın.
Not: Bu tanılama yalnızca macOS'ta çalışır.
mikrofon izinleri Ayarlar devre dışı bırakılır. değeri olarak Trueayarlandığında, son kullanıcıya bir Azure İletişim Hizmetleri çağrısı için mikrofon kullanma iznini etkinleştirmediğini belirten görsel bildirim verin.

değerleri Kamera

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
cameraFrozen Kamera 5 saniyeden uzun süre çerçeve üretmeyi durdurur. - Yerel video akışının ne zaman dondurulduğunda olarak ayarlayın True . Bu tanılama, uzak tarafın videonuzu ekranlarında donmuş olarak gördüğü veya uzak katılımcıların videonuzu kendi ekranlarında işlemedikleri anlamına gelir.
- Dondurmanın ne zaman sona erdiğini ve kullanıcıların videonuzu normal şekilde görebileceği şekilde ayarlayın False .
arama sırasında Kamera kayboldu veya kötü ağ kameranın donmasına neden oldu. değeri olarak Trueayarlandığında, son kullanıcıya uzak katılımcı ağının kötü olabileceğine dair bildirim vermeyi göz önünde bulundurun; bant genişliğini korumak için kamerasını kapatmalarını önerebilir. Daha fazla bilgi için, Azure İletişim Hizmetleri çağrısı için gerekli İnternet becerileriyle ilgili ağ bant genişliği gereksinimi bölümüne bakın.
cameraStartFailed Genel kamera hatası. - Kamera cihazı sistemde devre dışı bırakılmış olabileceği veya başka bir işlem tarafından kullanıldığı için yerel video göndermeye başlayamadığımız zaman olarak ayarlayın True ~.
- Seçili kamera cihazının False yeniden yerel video gönderdiğinde olarak ayarlayın.
Kamera hataları değeri olarak Trueayarlandığında, son kullanıcıya kameralarının başlatılamadığını belirten görsel bir bildirim verin.
cameraStartTimedOut Kameranın kötü durumda olduğu yaygın senaryo. - Video akışı göndermeye başlamak için True kamera cihazının zaman aşımına uğradıklarına ayarlayın.
- Seçili kamera cihazının False yeniden yerel video gönderdiğinde olarak ayarlayın.
Kamera hataları değeri olarak Trueayarlandığında, son kullanıcıya kameralarında sorun olabileceğini belirten görsel bir bildirim verin. (Değer bildirimi kaldırmak için False geri ayarlandığında).
cameraPermissionDenied ayarlarda Kamera izinleri reddedildi. - Sistem ayarlarından (video) kamera izninin ne zaman reddedildiğinde olarak ayarlayın True .
- Başarılı akış alımında olarak False ayarlayın.
Not: Bu tanılama yalnızca macOS Chrome'da çalışır.
Kamera izinleri ayarlarda devre dışı bırakılır. değeri olarak Trueayarlandığında, son kullanıcıya bir Azure İletişim Hizmetleri çağrısı için kamera kullanma iznini etkinleştirmediğini belirten görsel bildirim verin.
cameraStoppedUnexpectedly Kamera arızası - Kamera beklenmedik bir şekilde durduruldu durumuna girdiğinde olarak ayarlayın True .
- Kamera yeniden başarılı bir şekilde video akışı göndermeye başladığında olarak ayarlayın False .
Kameranın düzgün çalıştığını denetleyin. değeri olarak Trueayarlandığında, son kullanıcıya kameralarında sorun olabileceğini belirten görsel bir bildirim verin. (Değer bildirimi kaldırmak için False geri ayarlandığında).

Yalnızca yerel

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Düzeltme Adımları
speakerVolumeIsZero Cihazda (hoparlör) sıfır ses düzeyi. - Hoparlör sesi sıfır olduğunda olarak ayarlayın True .
- Hoparlör ses düzeyi sıfır olmadığında olarak ayarlayın False .
Arama sırasında katılımcılardan ses alınmıyor. Değer olarak Trueayarlandığında, birimi yanlışlıkla en düşükte (sıfır) yapmış olabilirsiniz.
speakerMuted Hoparlör cihazının sesi kapatıldı. - Hoparlör cihazının sesi kapatıldığında olarak ayarlayın True .
- Hoparlör cihazının sesi kapatıldığında olarak ayarlayın False .
Arama sırasında katılımcılardan ses alınmıyor. Değer olarak Trueayarlandığında, hoparlörün sesini yanlışlıkla kapatmış olabilirsiniz.
speakerBusy Hoparlör zaten kullanımda. Cihaz özel kullanım modunda kullanılıyor veya cihaz paylaşılan modda kullanılıyor ve arayan kişi cihazı özel kullanım modunda kullanmak istedi. - Hoparlör cihazı akışı alma zaman aşımına uğradı (ses) olarak ayarlayın True .
- Konuşmacı alımının başarılı olduğu zaman olarak False ayarlayın.
Konuşmacı aracılığıyla arama sırasında katılımcılardan ses duyamayın. değeri olarak Trueayarlandığında, son kullanıcıya görsel bildirim verin, böylece başka bir uygulamanın hoparlörü kullanıp kullanmadığından ve kapatmayı deneyebileceğinden.
speakerNotFunctioning Hoparlör çalışmıyor (ses cihazı istemcisi başlatılamadı veya cihaz 5 saniyeden uzun süre etkin değil oldu) - Hoparlör kullanılamadığında olarak ayarlayın True veya cihaz akışı alma zaman aşımına uğradı (ses).
- Konuşmacı alımının başarılı olduğu zaman olarak False ayarlayın.
Konuşmacı aracılığıyla arama sırasında katılımcılardan ses duyamayın. Hoparlör cihazının durumunu denetlemeyi deneyin.
microphoneBusy Mikrofon zaten kullanımda. Cihaz özel kullanım modunda kullanılıyor veya cihaz paylaşılan modda kullanılıyor ve arayan kişi cihazı özel kullanım modunda kullanmak istedi. - Mikrofon cihazı akışı alma zaman aşımına uğradı (ses) olarak ayarlayın True .
- Mikrofon alımı başarılı olduğunda olarak False ayarlayın.
Sesiniz aramadaki diğer katılımcılara ulaşmıyor. Değer olarak Trueayarlandığında, mikrofonu başka bir uygulamanın kullanıp kullanmadiğini denetleyebilmesi ve kapatmayı deneyebilmesi için son kullanıcıya görsel bildirim verin.

Tanılamaya erişme

Kullanıcıya yönelik tanılama, çekirdek Call API'nin genişletilmiş bir özelliğidir ve etkin bir çağrıyı tanılamanıza olanak tanır.

let userFacingDiagnostics = self.call?.feature(Features.localUserDiagnostics)

Kullanıcıya Yönelik Tanılama olayları

  • ve network tanılama kaynakları için media temsilcileri uygulayın. MediaDiagnosticsDelegate ve NetworkDiagnosticsDelegate sırasıyla.
extension CallObserver: MediaDiagnosticsDelegate {
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsCameraFrozen args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakerMuted args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsCameraStartFailed args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakerVolumeZero args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakerNotFunctioning args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsCameraPermissionDenied args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsMicrophoneNotFunctioning args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsCameraStartTimedOut args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsMicrophoneMutedUnexpectedly args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsZeroSpeakerDevicesAvailable args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...                            
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsZeroMicrophoneDevicesAvailable args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakingWhileMicrophoneIsMuted args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsSpeakerBusy args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func mediaDiagnostics(_ mediaDiagnostics: MediaDiagnostics,
                        didChangeIsMicrophoneBusy args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
}

extension CallObserver: NetworkDiagnosticsDelegate {
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeIsNetworkRelaysUnreachable args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeNetworkReconnectionQuality args: DiagnosticQualityChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeNetworkSendQuality args: DiagnosticQualityChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeIsNetworkUnavailable args: DiagnosticFlagChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
    
  func networkDiagnostics(_ networkDiagnostics: NetworkDiagnostics,
                          didChangeNetworkReceiveQuality args: DiagnosticQualityChangedEventArgs) {
    let newValue = args.value
    // Handle the diagnostic event value changed...
  }
}
  • ve tanılamaları için media bir başvuru tutun ve network olayları dinlemek için temsilci nesnesi ayarlayın.
self.mediaDiagnostics = userFacingDiagnostics?.media
self.networkDiagnostics = userFacingDiagnostics?.network
self.mediaDiagnostics?.delegate = self.callObserver
self.networkDiagnostics?.delegate = self.callObserver

Not

SDK aracılığıyla etkinleştirdiyseniz CallKit veya uygulamanızda CallKit tümleştirmesi uyguladıysanız, işletim sisteminin CallKit'e sessiz durumunu raporlamak, kullanıcının konuştuğunu algılamak için mikrofon cihazından gelen girişleri yakalayamadığımız için olayın beklendiği gibi çalışmamasına neden olabilecek gizlilik nedenleriyle uygulamanın mikrofona ayrı tutmayı kaybetmesine neden didIsSpeakingWhileMicrophoneIsMuted olabilir.

Kullanıcıya Yönelik En Son Tanılamaları Alma

  • Yükseltilen en son tanılama değerlerini alın. Tanılama nil için hala bir değer almadıysak veya .unknown döndürülürse.
let lastSpeakerNotFunctionValue = self.mediaDiagnostics.latest.isSpeakerNotFunctioning // Boolean?
let lastNetworkRelayNotReachableValue = self.networkDiagnostics.latest.networkRelaysUnreachable // Boolean?
let lastReceiveQualityValue = self.networkDiagnostics.latest.networkReceiveQuality // DiagnosticQuality (.good, .poor, .bad)
// or .unknown if there isn't a diagnostic for this.

Tanılama değerleri

Aşağıdaki kullanıcıya yönelik tanılamalar kullanılabilir:

Ağ değerleri

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
networkUnavailable Kullanılabilir ağ yok. - Kullanılabilir ağ olmadığından bir çağrının başlatılamadığı zaman olarak ayarlayın True .
- ICE adaylarının mevcut olduğu zaman olarak ayarlayın False .
Cihaz bir ağa bağlı değil. Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ iyileştirme bölümüne bakın.
networkRelaysUnreachable Ağ ile ilgili sorunlar. - Ağ, Azure İletişim Hizmetleri geçişlere ulaşmanıza izin vermeyecek bir kısıtlamaya sahip olduğunda olarak ayarlayınTrue.
- Yeni bir arama yaptıktan sonra olarak False ayarlayın.
WiFi sinyalinin açık ve kapalı olduğu bir arama sırasında. Güvenlik duvarı kurallarının ve ağ yönlendirmenin istemcinin Microsoft turn sunucularına erişmesine izin olduğundan emin olun. Daha fazla bilgi için Güvenlik duvarı yapılandırması bölümüne bakın.
networkReconnectionQuality Bağlantı kesildi ve ağa yeniden bağlanıyoruz. - Ağ bağlantısının kesildiğinde olarak ayarlayınBad
- Medya taşıma bağlantısının ne zaman kaybedildiğine Poorayarlayın
- Yeni bir oturumun bağlı olduğu zaman olarak Good ayarlayın.
Düşük bant genişliği, İnternet yok Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın.
networkReceiveQuality Gelen akış kalitesiyle ilgili bir gösterge. - Akışı almayla ilgili ciddi bir sorun olduğunda olarak ayarlayınBad .
- Akışı almayla ilgili hafif bir sorun olduğunda olarak ayarlayın Poor .
- Akışı almada sorun olmadığında olarak ayarlayın Good .
- Yalnızca aramada etkin bir ses akışı varsa görünür; bu da katılımcının belirli bir süre boyunca etkin bir şekilde konuştuğu anlamına gelir.
Düşük bant genişliği Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın. Kullanılabilir İnternet bant genişliğini korumak için son kullanıcının kamerasını kapatmasını önerin.
networkSendQuality Giden akış kalitesiyle ilgili bir gösterge. - Akışı gönderirken ciddi bir sorun olduğunda olarak ayarlayınBad .
- Akışı gönderirken hafif bir sorun olduğunda olarak ayarlayın Poor .
- Akışı gönderirken sorun olmadığında olarak ayarlayın Good .
- Kalite tanılamasını almaya benzer şekilde, yalnızca aramada etkin bir ses akışı varsa görünür ve bu da katılımcının belirli bir süre boyunca etkin bir şekilde konuştuğu anlamına gelir. Ancak, kaliteyi doğrulamak için diğer taraftan gelen bilgilere bağlı olduğundan yalnızca 1:1 çağrısında çalışır. Diğer tarafın alınan verilere sinyal göndermesi gereken yer.
Düşük bant genişliği Aramanın sesli aramayı sürdürebilecek güvenilir bir İnternet bağlantısına sahip olduğundan emin olun. Daha fazla bilgi için Ağ bant genişliği gereksinimi bölümüne bakın. Ayrıca, kullanılabilir İnternet bant genişliğini korumak için son kullanıcının kamerasını kapatmasını önerin.

Ses değerleri

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
noSpeakerDevicesAvailable kullanıcının sisteminde ses çıkış cihazı (hoparlör) yoktur. - Sistemde hoparlör cihazı olmadığında olarak ayarlanır True ve konuşmacı seçimi desteklenir.
- Sistemde en az bir hoparlör cihazı olduğunda olarak ayarlayın False ve konuşmacı seçimi destekleniyor.
Tüm hoparlörler fişsiz değeri olarak Trueayarlandığında, son kullanıcıya geçerli arama oturumlarında kullanılabilir konuşmacı olmadığını belirten görsel bildirim vermeyi göz önünde bulundurun.
speakingWhileMicrophoneIsMuted Sessizdeyken konuşmak. - Yerel mikrofonun sesi kapatıldığında ve yerel kullanıcı konuştuğunda olarak ayarlayın True .
- Yerel kullanıcı konuşmayı durdurduğunda veya mikrofonun sesini kapattığında olarak ayarlayın False .
- Bu tanılama olayı, gürültüden kaçınmak ve daha iyi bir kullanıcı deneyimi sağlamak için herhangi bir kullanıcı eylemi olmadan belirli bir süre tetiklenirse otomatik olarak devre dışı bırakılabilir. Yeni bir sessiz eylemi gerçekleştiğinde yeniden etkinleştirilir.
Arama sırasında mikrofonunuzun sesini kapatıp konuşun. Değer, son kullanıcıya konuştuğunu ve sesinin kapalı olduğunu fark etmeyebileceğine ilişkin görsel bildirim vermeyi göz önünde bulunduracak şekilde ayarlandığında True .
noMicrophoneDevicesAvailable Kullanıcının sisteminde ses yakalama cihazı (mikrofon) yok - Sistemde mikrofon cihazı olmadığında olarak ayarlayın True .
- Sistemde en az bir mikrofon cihazı olduğunda olarak ayarlayın False .
Arama sırasında tüm mikrofonların fişi çıkarılır. Değer, son kullanıcıya geçerli arama oturumlarında mikrofon olmadığını belirten görsel bildirim vermeyi göz önünde bulunduracak şekilde ayarlandığında True . Daha fazla bilgi için cihaz yöneticisinden mikrofonu etkinleştirme bölümüne bakın.
mikrofonNotFunctioning Mikrofon çalışmıyor. - Mikrofon cihazı sistemde devre dışı bırakılmış olabileceği veya başka bir işlem tarafından kullanıldığı için yerel ses akışı göndermeye başlayamadığımızda olarak ayarlayın True . Bu UFD'nin yükseltilmesi yaklaşık 10 saniye sürer.
- Mikrofon yeniden başarılı bir şekilde ses akışı göndermeye başladığında olarak ayarlayın False .
Kullanılabilir mikrofon yok, sistemde mikrofon erişimi devre dışı Değer, son kullanıcıya mikrofonuyla ilgili bir sorun olduğunu belirten görsel bildirim verecek şekilde ayarlandığında True .
microphoneMuteUnexpectedly Mikrofonun sesi kapatıldı - Mikrofonun sessiz duruma beklenmedik bir şekilde girdiği zaman olarak ayarlayın True .
- Mikrofon başarılı bir şekilde ses akışı göndermeye başladığında olarak ayarlayın False
Mikrofonun sesi sistemden kapatıldı. Çoğu durum, kullanıcı mobil cihazda bir Azure İletişim Hizmetleri aramasında olduğunda ve bir telefon araması geldiğinde gerçekleşir. Çoğu durumda, işletim sistemi Azure İletişim Hizmetleri aramasının sesini kapatarak kullanıcının telefon aramasını yanıtlamasını sağlar. değeri olarak Trueayarlandığında, son kullanıcıya bir telefon araması geldiği için aramanın sesinin kapatıldığını belirten görsel bildirimde bulunun. Daha fazla bilgi için, daha fazla ayrıntı için Azure İletişim Hizmetleri arama bölümünün sessize alınarak işletim sisteminin nasıl en iyi şekilde işleneceğini öğrenin.
mikrofonPermissionDenied cihazdan düşük ses düzeyi var veya macOS'ta neredeyse sessiz. - Ses izninin sistem ayarlarından (ses) reddedildiğinde olarak ayarlayın True .
- Başarılı akış alımında olarak False ayarlayın.
Not: Bu tanılama yalnızca macOS'ta çalışır.
mikrofon izinleri Ayarlar devre dışı bırakılır. değeri olarak Trueayarlandığında, son kullanıcıya bir Azure İletişim Hizmetleri çağrısı için mikrofon kullanma iznini etkinleştirmediğini belirten görsel bildirim verin.

değerleri Kamera

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Etki azaltma adımları
cameraFrozen Kamera 5 saniyeden uzun süre çerçeve üretmeyi durdurur. - Yerel video akışının ne zaman dondurulduğunda olarak ayarlayın True . Bu tanılama, uzak tarafın videonuzu ekranlarında donmuş olarak gördüğü veya uzak katılımcıların videonuzu kendi ekranlarında işlemedikleri anlamına gelir.
- Dondurmanın ne zaman sona erdiğini ve kullanıcıların videonuzu normal şekilde görebileceği şekilde ayarlayın False .
arama sırasında Kamera kayboldu veya kötü ağ kameranın donmasına neden oldu. değeri olarak Trueayarlandığında, son kullanıcıya uzak katılımcı ağının kötü olabileceğine dair bildirim vermeyi göz önünde bulundurun; bant genişliğini korumak için kamerasını kapatmalarını önerebilir. Daha fazla bilgi için, Azure İletişim Hizmetleri çağrısı için gerekli İnternet becerileriyle ilgili ağ bant genişliği gereksinimi bölümüne bakın.
cameraStartFailed Genel kamera hatası. - Kamera cihazı sistemde devre dışı bırakılmış olabileceği veya başka bir işlem tarafından kullanıldığı için yerel video göndermeye başlayamadığımız zaman olarak ayarlayın True ~.
- Seçili kamera cihazının False yeniden yerel video gönderdiğinde olarak ayarlayın.
Kamera hataları değeri olarak Trueayarlandığında, son kullanıcıya kameralarının başlatılamadığını belirten görsel bir bildirim verin.
cameraStartTimedOut Kameranın kötü durumda olduğu yaygın senaryo. - Video akışı göndermeye başlamak için True kamera cihazının zaman aşımına uğradıklarına ayarlayın.
- Seçili kamera cihazının False yeniden yerel video gönderdiğinde olarak ayarlayın.
Kamera hataları değeri olarak Trueayarlandığında, son kullanıcıya kameralarında sorun olabileceğini belirten görsel bir bildirim verin. (Değer bildirimi kaldırmak için False geri ayarlandığında).
cameraPermissionDenied ayarlarda Kamera izinleri reddedildi. - Sistem ayarlarından (video) kamera izninin ne zaman reddedildiğinde olarak ayarlayın True .
- Başarılı akış alımında olarak False ayarlayın.
Not: Bu tanılama yalnızca macOS Chrome'da çalışır.
Kamera izinleri ayarlarda devre dışı bırakılır. değeri olarak Trueayarlandığında, son kullanıcıya bir Azure İletişim Hizmetleri çağrısı için kamera kullanma iznini etkinleştirmediğini belirten görsel bildirim verin.
cameraStoppedUnexpectedly Kamera arızası - Kamera beklenmedik bir şekilde durduruldu durumuna girdiğinde olarak ayarlayın True .
- Kamera yeniden başarılı bir şekilde video akışı göndermeye başladığında olarak ayarlayın False .
Kameranın düzgün çalıştığını denetleyin. değeri olarak Trueayarlandığında, son kullanıcıya kameralarında sorun olabileceğini belirten görsel bir bildirim verin. (Değer bildirimi kaldırmak için False geri ayarlandığında).

Yalnızca yerel

Veri Akışı Adı Açıklama Olası değerler Kullanım örnekleri Düzeltme Adımları
speakerVolumeIsZero Cihazda (hoparlör) sıfır ses düzeyi. - Hoparlör sesi sıfır olduğunda olarak ayarlayın True .
- Hoparlör ses düzeyi sıfır olmadığında olarak ayarlayın False .
Arama sırasında katılımcılardan ses alınmıyor. Değer olarak Trueayarlandığında, birimi yanlışlıkla en düşükte (sıfır) yapmış olabilirsiniz.
speakerMuted Hoparlör cihazının sesi kapatıldı. - Hoparlör cihazının sesi kapatıldığında olarak ayarlayın True .
- Hoparlör cihazının sesi kapatıldığında olarak ayarlayın False .
Arama sırasında katılımcılardan ses alınmıyor. Değer olarak Trueayarlandığında, hoparlörün sesini yanlışlıkla kapatmış olabilirsiniz.
speakerBusy Hoparlör zaten kullanımda. Cihaz özel kullanım modunda kullanılıyor veya cihaz paylaşılan modda kullanılıyor ve arayan kişi cihazı özel kullanım modunda kullanmak istedi. - Hoparlör cihazı akışı alma zaman aşımına uğradı (ses) olarak ayarlayın True .
- Konuşmacı alımının başarılı olduğu zaman olarak False ayarlayın.
Konuşmacı aracılığıyla arama sırasında katılımcılardan ses duyamayın. değeri olarak Trueayarlandığında, son kullanıcıya görsel bildirim verin, böylece başka bir uygulamanın hoparlörü kullanıp kullanmadığından ve kapatmayı deneyebileceğinden.
speakerNotFunctioning Hoparlör çalışmıyor (ses cihazı istemcisi başlatılamadı veya cihaz 5 saniyeden uzun süre etkin değil oldu) - Hoparlör kullanılamadığında olarak ayarlayın True veya cihaz akışı alma zaman aşımına uğradı (ses).
- Konuşmacı alımının başarılı olduğu zaman olarak False ayarlayın.
Konuşmacı aracılığıyla arama sırasında katılımcılardan ses duyamayın. Hoparlör cihazının durumunu denetlemeyi deneyin.
microphoneBusy Mikrofon zaten kullanımda. Cihaz özel kullanım modunda kullanılıyor veya cihaz paylaşılan modda kullanılıyor ve arayan kişi cihazı özel kullanım modunda kullanmak istedi. - Mikrofon cihazı akışı alma zaman aşımına uğradı (ses) olarak ayarlayın True .
- Mikrofon alımı başarılı olduğunda olarak False ayarlayın.
Sesiniz aramadaki diğer katılımcılara ulaşmıyor. Değer olarak Trueayarlandığında, mikrofonu başka bir uygulamanın kullanıp kullanmadiğini denetleyebilmesi ve kapatmayı deneyebilmesi için son kullanıcıya görsel bildirim verin.

Tanılamaya erişme

Kullanıcıya yönelik tanılama, çekirdek Call API'nin genişletilmiş bir özelliğidir ve etkin bir çağrıyı tanılamanıza olanak tanır.

this.diagnosticsCallFeature = call.Features.LocalUserDiagnostics;

Kullanıcıya Yönelik Tanılama olayları

  • Tanılama olayları için dinleyicileri uygulayın.
private async void Call__OnNetworkUnavailableChanged(object sender, FlagDiagnosticChangedEventArgs args)
{
  var value = args.Value;
  // Handle the diagnostic event value changed...
}

// Listen to other network diagnostics

private async void Call__OnMediaSpeakerNotFunctioningChanged(object sender, FlagDiagnosticChangedEventArgs args)
{
  var value = args.Value;
  // Handle the diagnostic event value changed...
}

// Listen to other media diagnostics
  • Olayları dinlemek için olay yöntemlerini ayarlayın.
this.diagnosticsCallFeature = call.Features.LocalUserDiagnostics;
this.networkDiagnostics = diagnosticsCallFeature.Network;
this.mediaDiagnostics = diagnosticsCallFeature.Media;

this.networkDiagnostics.NetworkUnavailableChanged += Call__OnNetworkUnavailableChanged;
// Listen to other network events as well ... 

this.mediaDiagnostics.SpeakerNotFunctioningChanged += Call__OnMediaSpeakerNotFunctioningChanged;
// Listen to other media events as well ... 

// Removing listeners

this.networkDiagnostics.NetworkUnavailable -= Call__NetworkUnavailableChanged;
// Remove the other listeners as well ... 

this.mediaDiagnostics.SpeakerNotFunctioningChanged -= Call__OnMediaSpeakerNotFunctioningChanged;
// Remove the other listeners as well ... 

Kullanıcıya Yönelik En Son Tanılamaları Alma

  • Geçerli çağrıda ortaya çıkarılmış en son tanılama değerlerini alın. Tanılama null için hala bir değer almadıysak veya .unknown için döndürülürse.
this.diagnosticsCallFeature = call.Features.LocalUserDiagnostics;
this.networkDiagnostics = diagnosticsCallFeature.Network;
this.mediaDiagnostics = diagnosticsCallFeature.Media;

bool? lastSpeakerNotFunctionValue = this.mediaDiagnostics.GetLatestDiagnostics().IsSpeakerNotFunctioning; // Boolean?
bool? lastNetworkRelayNotReachableValue = this.networkDiagnostics.GetLatestDiagnostics().IsNetworkRelaysUnreachable; // Boolean?
DiagnosticQuality lastReceiveQualityValue = this.networkDiagnostics.GetLatestDiagnostics().NetworkReceiveQuality; // DiagnosticQuality (.good, .poor, .bad)
// or .unknown if there isn't a diagnostic for this.