Udostępnij za pośrednictwem


Rozwiązywanie problemów w usługach Azure Communication Services

Ten dokument ułatwia rozwiązywanie problemów, które mogą wystąpić w ramach rozwiązania usług komunikacyjnych. Jeśli rozwiązujesz problemy z wiadomością SMS, możesz włączyć raportowanie dostarczania za pomocą usługi Event Grid , aby przechwycić szczegóły dostarczania wiadomości SMS.

Uzyskiwanie pomocy

Zachęcamy deweloperów do przesyłania pytań, sugerowania funkcji i zgłaszania problemów jako problemów. Aby uzyskać więcej informacji, zobacz dedykowaną stronę pomocy technicznej i opcji pomocy.

Aby ułatwić rozwiązywanie niektórych problemów, może być konieczne wykonanie co najmniej jednej z następujących informacji:

  • Identyfikator MS-CV: Rozwiązywanie problemów z wywołaniami i komunikatami.
  • Identyfikator połączenia: Zidentyfikuj wywołania usług komunikacyjnych.
  • Identyfikator wiadomości SMS: zidentyfikuj wiadomości SMS.
  • Krótki identyfikator krótkiego programu kodu: zidentyfikuj krótką aplikację programu kodu.
  • Krótki identyfikator kampanii weryfikacyjnej bezpłatnej weryfikacji: zidentyfikuj krótką aplikację kampanii weryfikacji bezpłatnej.
  • Identyfikator wiadomości e-mail: zidentyfikuj wysyłanie żądań wiadomości e-mail.
  • Identyfikator korelacji: identyfikowanie żądań wysyłanych przy użyciu usługi Call Automation.
  • Dzienniki połączeń: zawierają szczegółowe informacje, które mogą służyć do rozwiązywania problemów z połączeniami i siecią.

Aby uzyskać więcej informacji na temat ograniczania przepustowości i ograniczeń, zobacz Limity usługi.

Uzyskiwanie dostępu do identyfikatora MS-CV

Dostęp do identyfikatora MS-CV można uzyskać, konfigurując diagnostykę w wystąpieniu clientOptions obiektu podczas inicjowania zestawów SDK. Możesz skonfigurować diagnostykę dla dowolnego zestawu Azure SDK, w tym rozmowy, tożsamości i połączeń VoIP.

Przykład opcji klienta

Poniższe fragmenty kodu pokazują konfigurację diagnostyki. Po włączeniu diagnostyki zestawów SDK można emitować szczegóły diagnostyki do skonfigurowanego odbiornika zdarzeń:

// 1. Import Azure.Core.Diagnostics
using Azure.Core.Diagnostics;

// 2. Initialize an event source listener instance
using var listener = AzureEventSourceListener.CreateConsoleLogger();
Uri endpoint = new Uri("https://<RESOURCE-NAME>.communication.azure.net");
var (token, communicationUser) = await GetCommunicationUserAndToken();
CommunicationUserCredential communicationUserCredential = new CommunicationUserCredential(token);

// 3. Setup diagnostic settings
var clientOptions = new ChatClientOptions()
{
    Diagnostics =
    {
        LoggedHeaderNames = { "*" },
        LoggedQueryParameters = { "*" },
        IsLoggingContentEnabled = true,
    }
};

// 4. Initialize the ChatClient instance with the clientOptions
ChatClient chatClient = new ChatClient(endpoint, communicationUserCredential, clientOptions);
ChatThreadClient chatThreadClient = await chatClient.CreateChatThreadAsync("Thread Topic", new[] { new ChatThreadMember(communicationUser) });

Identyfikatory dostępu wymagane do automatyzacji wywołań

Podczas rozwiązywania problemów z zestawem SDK automatyzacji wywołań, takich jak zarządzanie wywołaniami lub problemy z rejestrowaniem, należy zebrać identyfikatory, które pomagają zidentyfikować nieudane wywołanie lub operację. Możesz podać jeden z następujących dwóch identyfikatorów.

  • Z nagłówka odpowiedzi interfejsu API znajdź pole X-Ms-Skype-Chain-Id.

    Zrzut ekranu przedstawiający nagłówek odpowiedzi przedstawiający identyfikator X-Ms-Skype-Chain-Id.

  • Zdarzeń wywołania zwrotnego aplikacja otrzymuje po wykonaniu akcji. Na przykład CallConnected lub PlayFailedznajdź identyfikator correlationID.

    Zrzut ekranu przedstawiający zdarzenie rozłączone wywołania z identyfikatorem korelacji.

Oprócz jednego z tych identyfikatorów należy podać szczegółowe informacje na temat przypadku niepowodzenia użycia i sygnatury czasowej, gdy wystąpił błąd.

Uzyskiwanie dostępu do identyfikatora wywołania klienta

Podczas rozwiązywania problemów z połączeniami głosowym lub wideo może być konieczne podanie elementu call ID. Uzyskaj dostęp do tej wartości za pośrednictwem id właściwości call obiektu:

// `call` is an instance of a call created by `callAgent.startCall` or `callAgent.join` methods
console.log(call.id)

Uzyskiwanie dostępu do identyfikatora wiadomości SMS

W przypadku problemów z wiadomością SMS można zebrać identyfikator wiadomości z obiektu odpowiedzi.

// Instantiate the SMS client
const smsClient = new SmsClient(connectionString);
async function main() {
  const result = await smsClient.send({
    from: "+18445792722",
    to: ["+1972xxxxxxx"],
    message: "Hello World 👋🏻 via Sms"
  }, {
    enableDeliveryReport: true // Optional parameter
  });
console.log(result); // your message ID is in the result
}

Uzyskiwanie dostępu do krótkiego identyfikatora krótkiego programu kodu

Znajdź krótki identyfikator programu w witrynie Azure Portal w sekcji Krótkie kody.

Zrzut ekranu przedstawiający krótki identyfikator programu kodu.


Uzyskiwanie dostępu do krótkiego identyfikatora kampanii weryfikacji bezpłatnej

Znajdź krótki identyfikator programu w witrynie Azure Portal w sekcji Dokumenty regulacyjne.

Zrzut ekranu przedstawiający krótki identyfikator bezpłatnej kampanii weryfikacyjnej.


Uzyskiwanie dostępu do identyfikatora operacji poczty e-mail

Podczas rozwiązywania problemów z wysyłaniem żądań stanu wiadomości e-mail lub wiadomości e-mail może być konieczne podanie adresu operation ID. Tę wartość można uzyskać w odpowiedzi:

var emailSendOperation = await emailClient.SendAsync(
    wait: WaitUntil.Completed,
    senderAddress: sender,
    recipientAddress: recipient,
    subject: subject,
    htmlContent: htmlContent);

/// Get the OperationId so that it can be used for tracking the message for troubleshooting
Console.WriteLine($"Email operation id = {emailSendOperation.Id}");

Uzyskiwanie dostępu do plików pomocy technicznej w zestawie SDK wywołującym

Wywoływanie zestawu SDK zapewnia wygodne metody uzyskiwania dostępu do plików dziennika. Te pliki mogą służyć cennym specjalistom i inżynierom pomocy technicznej firmy Microsoft. Zalecamy zbieranie tych dzienników podczas wykrywania problemu.

Włączanie i uzyskiwanie dostępu do dzienników wywołań

[JavaScript]

Zestaw SDK wywołujący usługi Azure Communication Services opiera się wewnętrznie na bibliotece @azure/rejestratora w celu kontrolowania rejestrowania.

setLogLevel Użyj metody z @azure/logger pakietu, aby skonfigurować poziom danych wyjściowych dziennika. Utwórz rejestrator i przekaż go do konstruktora CallClient w następujący sposób:

import { setLogLevel, createClientLogger, AzureLogger } from '@azure/logger';
setLogLevel('verbose');
let logger = createClientLogger('ACS');
const callClient = new CallClient({ logger });

Usługa AzureLogger umożliwia przekierowanie danych wyjściowych rejestrowania z zestawów SDK platformy Azure przez zastąpienie AzureLogger.log metody :

Możesz zalogować się do konsoli przeglądarki, pliku, buforu, wysłania do naszej własnej usługi itd. Jeśli zamierzasz wysyłać dzienniki za pośrednictwem sieci do własnej usługi, nie wysyłaj żądania na wiersz dziennika, ponieważ ma to negatywny wpływ na wydajność przeglądarki. Zamiast tego kumuluj wiersze dzienników i wysyłaj je w partiach.

// Redirect log output
AzureLogger.log = (...args) => {
    // To console, file, buffer, REST API, etc...
    console.log(...args); 
};

Natywny zestaw SDK (Android/iOS)

W przypadku systemów Android, iOS i Windows zestaw SDK wywołujący usługi Azure Communication Services oferuje dostęp do plików dziennika.

Aby uzyskać informacje na temat wywoływania natywnych zestawów SDK, zobacz samouczki dotyczące dostępu do plików dziennika

Biblioteki interfejsu użytkownika (Android, iOS)

Jeśli używasz bibliotek interfejsu użytkownika usług Azure Communication Services dla systemu Android lub iOS, możesz poprosić użytkowników o opinię za pomocą wbudowanego formularza pomocy technicznej.

Aby uzyskać więcej informacji na temat funkcji pomocy technicznej formularza obsługi wywoływania interfejsu użytkownika, zobacz samouczek dotyczący integracji formularzy pomocy technicznej. Ten dokument przeprowadzi Cię przez proces obsługi zdarzeń niezbędnych i utworzenie podstawowej implementacji klienta/serwera w celu scentralizowanego przechowywania informacji o pomocy technicznej. W tym przewodniku opisano ścieżkę integracji z usługami pomocy technicznej używanymi przez organizację.

Tworzenie pełnych przepływów pomocy technicznej w ramach integracji z usługą ACS

Niezależnie od tego, czy używasz zestawu SDK wywoływania, czy zestawu SDK interfejsu użytkownika wywołującego, zapewnianie pomocy technicznej dla klientów jest kluczowym składnikiem każdej niezawodnej integracji. Poniższy dokument przedstawia najważniejsze zagadnienia w każdym punkcie pętli opinii o pomocy technicznej i zapewnia punkty wyjścia, aby dowiedzieć się więcej.

Zapewnianie pomocy technicznej dla użytkowników


Znajdowanie informacji o usłudze Microsoft Entra

  • Uzyskiwanie identyfikatora katalogu
  • Uzyskiwanie identyfikatora aplikacji
  • Uzyskiwanie identyfikatora użytkownika

Uzyskiwanie identyfikatora katalogu

Aby znaleźć identyfikator katalogu (dzierżawy), wykonaj następujące kroki:

  1. Przejdź do witryny Azure Portal i zaloguj się do witryny Azure Portal przy użyciu poświadczeń.

  2. W okienku po lewej stronie wybierz pozycję Microsoft Entra ID.

  3. Na stronie Przegląd w witrynie Microsoft Entra ID skopiuj identyfikator katalogu (dzierżawy) i zapisz go w kodzie aplikacji.

    Zrzut ekranu przedstawiający sposób kopiowania identyfikatora dzierżawy usługi Microsoft Entra i przechowywania go.

Uzyskiwanie identyfikatora aplikacji

Aby znaleźć identyfikator aplikacji, wykonaj następujące kroki:

  1. Przejdź do witryny Azure Portal i zaloguj się do witryny Azure Portal przy użyciu poświadczeń.

  2. W okienku po lewej stronie wybierz pozycję Microsoft Entra ID.

  3. W Rejestracje aplikacji w polu Microsoft Entra ID wybierz aplikację.

  4. Skopiuj identyfikator aplikacji i zapisz go w kodzie aplikacji.

    Zrzut ekranu przedstawiający sposób kopiowania identyfikatora aplikacji Microsoft Entra i przechowywania go.

    Identyfikator katalogu (dzierżawy) można również znaleźć na stronie przeglądu aplikacji.

Uzyskiwanie identyfikatora użytkownika

Aby znaleźć swój identyfikator użytkownika, wykonaj następujące kroki:

  1. Przejdź do witryny Azure Portal i zaloguj się do witryny Azure Portal przy użyciu poświadczeń.

  2. W okienku po lewej stronie wybierz pozycję Microsoft Entra ID.

  3. W obszarze Użytkownicy w usłudze Microsoft Entra ID wybierz swojego użytkownika.

  4. Na stronie Profil w usłudze Microsoft Entra users skopiuj identyfikator obiektu i zapisz go w kodzie aplikacji.

    Zrzut ekranu przedstawiający sposób kopiowania identyfikatora użytkownika entra firmy Microsoft i przechowywania go.

Uzyskiwanie niezmiennego identyfikatora zasobu

Czasami należy również podać niezmienny identyfikator zasobu usługi komunikacji. Aby go znaleźć, wykonaj następujące kroki:

  1. Przejdź do witryny Azure Portal i zaloguj się do witryny Azure Portal przy użyciu poświadczeń.
  2. Otwórz zasób usługi Communication Service.
  3. W okienku po lewej stronie wybierz pozycję Przegląd i przejdź do widoku JSONZrzut ekranu przedstawiający sposób przełączania przeglądu zasobu komunikacji na widok JSON.
  4. Na stronie Resource JSON skopiuj immutableResourceId wartość i podaj ją zespołowi pomocy technicznej. Zrzut ekranu przedstawiający plik JSON zasobu.

Weryfikacja uprawnień licencji usługi Teams do korzystania z pomocy technicznej usług Azure Communication Services dla użytkowników usługi Teams

Istnieją dwa sposoby weryfikacji uprawnień licencji usługi Teams do korzystania z pomocy technicznej usług Azure Communication Services dla użytkowników usługi Teams:

  • Weryfikacja za pośrednictwem klienta internetowego usługi Teams
  • Sprawdzanie bieżącej licencji usługi Teams za pośrednictwem interfejsu API programu Microsoft Graph

Weryfikacja za pośrednictwem klienta internetowego usługi Teams

Aby sprawdzić uprawnienia licencji usługi Teams za pośrednictwem klienta internetowego usługi Teams, wykonaj następujące kroki:

  1. Otwórz przeglądarkę i przejdź do klienta internetowego usługi Teams.
  2. Zaloguj się przy użyciu poświadczeń, które mają prawidłową licencję usługi Teams.
  3. Jeśli uwierzytelnianie zakończy się pomyślnie i pozostaniesz w https://teams.microsoft.com/ domenie, twoja licencja usługi Teams kwalifikuje się. Jeśli uwierzytelnianie nie powiedzie się lub nastąpi przekierowanie do https://teams.live.com/v2/ domeny, licencja usługi Teams nie kwalifikuje się do korzystania z pomocy technicznej usług Azure Communication Services dla użytkowników usługi Teams.

Sprawdzanie bieżącej licencji usługi Teams za pośrednictwem interfejsu API programu Microsoft Graph

Bieżącą licencję usługi Teams można znaleźć przy użyciu interfejsu API programu Microsoft Graph licenseDetails , który zwraca licencje przypisane do użytkownika. Wykonaj następujące kroki, aby wyświetlić licencje przypisane do użytkownika za pomocą narzędzia Graph Explorer:

  1. Otwórz przeglądarkę i przejdź do Eksploratora programu Graph

  2. Zaloguj się do Eksploratora programu Graph przy użyciu poświadczeń. Zrzut ekranu przedstawiający sposób logowania się do Eksploratora programu Graph.

  3. W polu zapytania wprowadź następujący interfejs API, a następnie kliknij pozycję Uruchom zapytanie :

    https://graph.microsoft.com/v1.0/me/licenseDetails
    

    Zrzut ekranu przedstawiający sposób wprowadzania interfejsu API w Eksploratorze programu Graph.

    Możesz też wykonać zapytanie dotyczące określonego użytkownika, podając identyfikator użytkownika przy użyciu następującego interfejsu API:

    https://graph.microsoft.com/v1.0/users/{id}/licenseDetails
    
  4. Okienko Podgląd odpowiedzi wyświetla dane wyjściowe w następujący sposób:

    Obiekt odpowiedzi pokazany tutaj może zostać skrócony w celu zapewnienia czytelności.

    {
        "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('071cc716-8147-4397-a5ba-b2105951cc0b')/assignedLicenses",
        "value": [
            {
                "skuId": "b05e124f-c7cc-45a0-a6aa-8cf78c946968",
                "servicePlans":[
                    {
                        "servicePlanId":"57ff2da0-773e-42df-b2af-ffb7a2317929",
                        "servicePlanName":"TEAMS1",
                        "provisioningStatus":"Success",
                        "appliesTo":"User"
                    }
                ]
            }
        ]
    }
    
  5. Znajdź szczegóły licencji, w których właściwość servicePlanName ma jedną z wartości w tabeli Kwalifikujące się licencje usługi Teams