Sdílet prostřednictvím


Hovor končí na 410/3112.

Důvodem, proč volání končí chybou 410/3112, je, že se klient nemůže spojit s jiným koncovým bodem a neshromažďují se žádní kandidáti na přenos. Tento kód chyby 410/3112 může nastat, když se cesta k médiu nedá navázat kvůli problémům se sítí, omezením brány firewall nebo nesprávným nastavením konfigurace. Z toho důvodu se partnerským uzlům nepodařilo navázat přímé nebo předávací připojení.

Kandidáti na přenos nejsou potřeba, pokud klient dokáže navázat přímé připojení k druhému partnerskému uzlu. Pokud se ale WebRTC nepodaří shromáždit kandidáty na přenos, často značí problém s konfigurací serveru TURN (procházení pomocí přenosů kolem překladu adres (NAT) nebo síťovými omezeními. Kandidáti na přenos jsou zásadní pro navázání připojení v omezujících síťových prostředích.

Zjištění pomocí sady SDK

Důvod ukončení volání můžete zjistit pomocí následujícího fragmentu kódu.

call.on('stateChanged', () => {
    if (call.state === 'Disconnected') {
      if (call.callEndReason.code === 410 && call.callEndReason.subCode === 3112) {
          // show error message
      }
    }
});

Informace o kódech a podkódech najdete v tématu Vysvětlení chyb volání a podkódů.

Pokud nelze navázat cestu k médiu, volání se ukončí kódem 410 a podkódem 3112. Sada SDK také aktivuje událost networkRelaysNotReachable UFD . Tady je fragment kódu, který ukazuje, jak zachytit networkRelaysNotReachable UFD událost.

call.feature(Features.UserFacingDiagnostics).network.on('diagnosticChanged', (diagnosticInfo) => {
    if (diagnosticInfo.diagnostic === 'networkRelaysNotReachable') {
       if (diagnosticInfo.value === true) {
           // show a warning message on UI
       } else {
           // The networkRelaysNotReachable UFD recovered, notify the user
       }
    }
});

Analýza problému s Log Analytics nebo nástrojem pro diagnostiku volání

Když uživatel hlásí, že se mu nedaří volat, můžete pomocí nástroje Diagnostika volání analyzovat příčinu selhání. K ladění uživatelských volání potřebujete ID volání. Pokud volání uživatele selhalo, protože brána firewall zablokovala připojení k přenosu, najdete koncový kód a podkód na 410 a 3112 na stránce přehledu hovoru.

Snímek obrazovky diagnostiky volání s podkódem 3112 na stránce přehledu hovoru

Kromě toho můžete na stránce problémů volání najít také událost networkRelaysNotReachable UFD .

Snímek obrazovky s diagnostikou volání, která obsahuje networkRelaysNotReachable UFD na stránce problémů s voláním

Pokud chcete porozumět načasování akcí nebo událostí uživatelů, můžete zkontrolovat podrobnosti na stránce časové osy. V tomto příkladu uživatel obdržel networkRelaysNotReachable UFD událost v 16:41:47 a událost změny stavu volání v 16:41:49.

Snímek obrazovky s diagnostikou volání, která zobrazuje časování stránky časové osy volání událostí

Nástroj Diagnostika volání poskytuje přehled a potřebné informace pro ladění jednoho volání. Pokud chcete zjistit, kolik uživatelů na tento problém narazí nebo jak často k problému dochází, můžete pomocí nástroje Log Analytics získat přehledy o tomto problému.

Pokud například chcete získat ID volání, které bylo odpojeno s podkódem 3112 za posledních 7 dnů, můžete tento dotaz spustit:

ACSCallSummary
| where ParticipantEndSubCode == 3112
| project TimeGenerated, CorrelationId, ParticipantId, Identifier, CallType

Snímek obrazovky s výsledkem dotazu protokolu pro volání s podkódem 3112

Můžete také vykreslit časový diagram, abyste porozuměli dennímu počtu volání končících podkódem 3112.

ACSCallSummary
| where ParticipantEndSubCode == 3112
| summarize count() by bin(TimeGenerated, 1d)
| render timechart

Snímek obrazovky s časovým diagramem zobrazující denní počet volání končících podkódem 3112

Časový graf poskytuje přehled pouze uživatelů ve stejném ID prostředku služby ACS. Spuštěním konkrétnějších dotazů můžete identifikovat vzory nebo anomálie, které nejsou přímo z časového grafu zřejmé, což vám pomůže určit původní příčinu jakýchkoli problémů přesněji.

Pokud se například zobrazí špička v počtu volání končících podkódem 3112, může to být způsobeno velkým objemem volání, zatímco poměr výskytů problému zůstal stejný. Případně může být špička přiřazena konkrétnímu uživateli, který se mnohokrát pokusil o opakování a všechny pokusy se nezdařily s podkódem 3112.

V tomto dotazu analyzujeme data na základě identifikátorů uživatelů za předpokladu, že aplikace udržuje stejný identifikátor uživatele pro každého jednotlivce.

ACSCallSummary
| summarize Total = count(), SuccessCount = countif(ParticipantEndSubCode == 0), SubCode3112Count = countif(ParticipantEndSubCode == 3112) by Identifier
| where SubCode3112Count > 0
| order by SubCode3112Count desc

Snímek obrazovky s výsledky dotazu protokolu zobrazující počet volání končících podkódem 3112 pro každý identifikátor uživatele

V tomto příkladu měl jeden uživatel celkem 180 volání, z nichž 160 bylo úspěšné a pouze dvě volání selhala s podkódem 3112. Tento model naznačuje přechodný problém se sítí, který může být vyřešen opakovaným pokusem. Na druhou stranu měl jiný uživatel celkem šest volání, z nichž všechna selhala s podkódem 3112. Tato konzistence v hodnotě podkódu značí pravděpodobné potíže s konfigurací sítě pro daného uživatele, kdy opakování pravděpodobně nepomůže.

Jak zmírnit nebo vyřešit

Pokud zjistíte, že uživatel konzistentně používá chybu 410/3112, měli byste doporučit, aby zkontroloval nastavení brány firewall. Uživatelé by měli postupovat podle pokynů konfigurace brány firewall uvedených v dokumentu doporučení k síti. Ujistěte se, že uživatel nebo správce zkontrolují nastavení překladu síťových adres (NAT) a ověří, jestli zásady brány firewall blokují pakety UDP (User Datagram Protocol). Nastavení brány firewall nejsou omezena na počítač uživatele; pokud je uživatel v podnikovém prostředí, může být potřeba nakonfigurovat i bránu firewall společnosti.

Navíc pokud aplikace používá vlastní servery TURN, ujistěte se, že zadaná IP adresa, port a protokol nejsou blokovány žádnou bránou firewall.

Pro aplikaci je důležité zpracovávat události z funkce Diagnostiky uživatelů a odpovídajícím způsobem informovat uživatele. Uživatel tak o problému ví a může řešit potíže v síťovém prostředí.

Ve výjimečných případech se tento kód chyby zobrazí náhodně i v případě, že je nastavení brány firewall uživatele správné. Pokud se stejný uživatel dříve mohl připojit a volat úspěšně, příčinou tohoto problému můžou být změny v podmínkách sítě. Může se jednat o dočasný problém. Zkuste zahájit hovor nebo se k němu znovu připojit.

Reference