다음을 통해 공유


Azure Communication Services의 문제 해결

이 문서는 Azure Communication Services 솔루션 내에서 발생할 수 있는 문제를 해결하는 데 도움이 됩니다. SMS 문제를 해결하는 경우 Azure Event Grid를 사용하여 배달 보고를 사용하도록 설정하여 SMS 배달 세부 정보를 캡처할 수 있습니다.

도움말 보기

개발자는 질문을 제출하고, 기능을 제안하고, 문제를 보고하는 것이 좋습니다. 자세한 내용은 전담 지원 및 도움말 옵션 페이지를 참조하세요.

특정 문제를 해결하려면 다음 정보 중 하나 이상이 필요할 수 있습니다.

  • MS-CV ID: 전화 및 메시지 문제를 해결합니다.
  • 호출 ID: Azure Communication Services 호출을 식별합니다.
  • SMS 메시지 ID: SMS 메시지를 식별합니다.
  • 짧은 코드 프로그램 간략한 ID: 짧은 코드 프로그램 간략한 애플리케이션을 식별합니다.
  • 무료 전화 확인 캠페인 브리프 ID: 무료 전화 확인 캠페인 브리프 애플리케이션을 식별합니다.
  • 전자 메일 메시지 ID: 전자 메일 보내기 요청을 식별합니다.
  • 상관 관계 ID: 호출 자동화를 사용하여 수행한 요청을 식별합니다.
  • 통화 로그: 자세한 정보를 사용하여 통화 및 네트워크 문제를 해결합니다.

제한 및 한도에 대한 자세한 내용은 서비스 한도를 참조하세요.

MS CV ID에 액세스

SDK를 초기화할 때 개체 인스턴스에서 clientOptions 진단을 구성하여 MS-CV ID에 액세스할 수 있습니다. 채팅, ID 및 VoIP 호출을 포함하여 모든 Azure SDK에 대한 진단을 구성할 수 있습니다.

클라이언트 옵션 예제

다음 코드 조각에서는 진단 구성을 보여줍니다. SDK에 대한 진단을 사용하도록 설정하면 구성된 이벤트 수신기에 진단 세부 정보가 내보내집니다.

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

통화 자동화에 액세스 ID 사용

통화 관리 또는 기록 문제와 같은 통화 자동화 SDK 관련 문제를 해결할 때 실패한 호출 또는 작업을 식별하는 데 도움이 되는 ID를 수집해야 합니다. 다음 두 ID 중 하나를 제공할 수 있습니다.

  • API 응답의 헤더에서. 필드를 찾습니다 X-Ms-Skype-Chain-Id.

    X-Ms-Skype-Chain-Id가 있는 응답 헤더를 보여 주는 스크린샷

  • 작업을 실행한 후 애플리케이션이 수신하는 콜백 이벤트에서 예를 들어 상관 관계 ID를 사용 CallConnected 하거나 PlayFailed 찾습니다.

    상관 관계 ID를 사용하여 연결이 끊긴 호출 이벤트를 보여 주는 스크린샷.

이러한 ID 중 하나 외에도 오류가 발생했을 때 실패한 사용 사례 및 타임스탬프를 자세히 제공해야 합니다.

클라이언트 호출 ID에 액세스

음성 또는 영상 통화 문제를 해결할 때는 .를 call ID제공해야 할 수 있습니다. 개체의 id 속성을 통해 이 값에 액세스합니다 call .

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

SMS 메시지 ID에 액세스

SMS 문제의 경우 응답 개체에서 메시지 ID를 수집할 수 있습니다.

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

짧은 코드 프로그램 간략한 ID에 액세스

짧은 코드 섹션의 Azure Portal 에서 프로그램 간략한 ID를 찾습니다 .

짧은 코드 프로그램 간략한 ID를 보여 주는 스크린샷.


무료 확인 캠페인 간략 ID에 액세스

규정 문서 섹션의 Azure Portal 에서 프로그램 간략한 ID를 습니다.

무료 인증 캠페인 간략한 ID를 보여 주는 스크린샷.


이메일 작업 ID에 액세스

전자 메일 보내기 상태 또는 전자 메일 메시지 상태 요청 문제를 해결할 때 작업 ID를 제공해야 할 수 있습니다. 응답에서 이 값에 액세스할 수 있습니다.

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

통화 SDK에서 지원 파일에 액세스

호출 SDK는 로그 파일에 액세스하는 편리한 메서드를 제공합니다. 이러한 파일은 Microsoft에서 전문가 및 엔지니어를 지원하는 데 도움이 될 수 있습니다. 문제가 검색되면 이러한 로그를 수집하는 것이 좋습니다.

통화 로그 활성화 및 액세스

통화 로그를 사용하도록 설정하고 액세스하는 방법을 알아봅니다.

JavaScript

Azure Communication Services 통화 SDK는 @azure/로거 라이브러리를 내부적으로 사용하여 로깅을 제어합니다.

@azure/logger 패키지의 setLogLevel 메서드를 사용하여 로그 출력 수준을 구성합니다. 로거를 만들어 생성자에 전달 CallClient 합니다.

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

메서드를 재정의하여 Azure SDK에서 로깅 출력을 리디렉션하는 데 사용할 AzureLogger 수 있습니다 AzureLogger.log .

브라우저 콘솔, 파일 또는 버퍼에 로그온할 수 있습니다. 사용자 고유의 서비스로 보낼 수도 있습니다. 네트워크를 통해 자신의 서비스로 로그를 보내려는 경우 이 메서드가 브라우저 성능에 부정적인 영향을 주므로 로그 줄당 요청을 보내지 마세요. 대신 로그 줄을 누적하여 일괄 처리로 보냅니다.

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

네이티브 SDK(Android/iOS)

Android, iOS 및 Windows의 경우 Azure Communication Services 통화 SDK가 로그 파일에 대한 액세스를 제공합니다.

네이티브 SDK 호출에 대한 자세한 내용은 로그 파일 액세스 자습서를 참조하세요.

UI 라이브러리(Android, iOS)

Android 또는 iOS용 Azure Communication Services UI 라이브러리를 사용하는 경우 기본 제공 지원 양식을 통해 사용자 피드백을 요청할 수 있습니다.

통화 UI 지원 양식의 지원 기능에 대한 자세한 내용은 지원 양식 통합 자습서를 참조하세요. 이 문서에서는 필요한 이벤트 처리기를 추가하고 지원 정보의 중앙 집중식 스토리지에 대한 기본 클라이언트/서버 구현을 만드는 방법을 보여 줍니다. 이 문서에서는 조직에서 사용하는 지원 서비스와 통합하는 경로를 설명합니다.

ACS 통합에서 엔드 투 엔드 지원 흐름 빌드

통화 SDK 또는 통화 UI SDK를 사용하든, 고객에게 지원을 제공하는 것은 강력한 통합의 핵심 구성 요소입니다.

사용자 지원 제공 문서에서 는 지원 피드백 루프의 각 지점에서 주요 고려 사항을 강조 표시하고 자세한 내용을 알아볼 수 있는 점프오프 지점을 제공합니다.


Microsoft Entra 정보 찾기

다음 절차를 사용하여 Microsoft Entra 정보를 찾습니다.

디렉터리 ID 가져오기

디렉터리(테넌트) ID를 찾으려면 다음 단계를 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 서비스 메뉴에서 Microsoft Entra ID를 선택합니다.

  3. Microsoft Entra ID의 개요 페이지에서 디렉터리 ID(테넌트 ID)를 복사하여 애플리케이션 코드에 저장합니다.

    Microsoft Entra 테넌트 ID를 복사하고 저장하는 방법을 보여 주는 스크린샷

애플리케이션 ID 가져오기

애플리케이션 ID를 찾으려면 다음 단계를 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 서비스 메뉴에서 Microsoft Entra ID를 선택합니다.

  3. Microsoft Entra ID의 앱 등록에서 애플리케이션을 선택합니다.

  4. 애플리케이션(클라이언트) ID복사하고 애플리케이션 코드에 저장합니다.

    Microsoft Entra 애플리케이션 ID를 복사하고 저장하는 방법을 보여 주는 스크린샷

    애플리케이션 개요 페이지에서 디렉터리(테넌트) ID를 찾을 수도 있습니다.

사용자 ID 가져오기

사용자 ID를 찾으려면 다음 단계를 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 서비스 메뉴에서 Microsoft Entra ID를 선택합니다.

  3. Microsoft Entra ID의 사용자에서 사용자를 선택합니다.

  4. Microsoft Entra 사용자의 프로필 페이지에서 개체 ID복사하여 애플리케이션 코드에 저장합니다.

    Microsoft Entra 사용자 ID를 복사하고 저장하는 방법을 보여 주는 스크린샷

변경할 수 없는 리소스 ID 가져오기

Azure Communication Services 리소스의 변경할 수 없는 리소스 ID도 제공해야 하는 경우도 있습니다. 이를 찾으려면 다음 단계를 따릅니다.

  1. Azure Portal에 로그인합니다.

  2. Azure Communication Services 리소스를 엽니다.

  3. 서비스 메뉴에서 개요를 선택하고 JSON 보기전환합니다.

    Azure Communication Services 리소스 개요를 JSON 보기로 전환하는 방법을 보여 주는 스크린샷

  4. Resource JSON 페이지에서 값을 복사 immutableResourceId 하여 지원 팀에 제공합니다.

    리소스 JSON 페이지를 보여 주는 스크린샷.

Teams 사용자에 대한 Azure Communication Services 지원을 사용하기 위한 Teams 라이선스 자격 확인

Teams 사용자에 대해 Azure Communication Services 지원을 사용하기 위해 Teams 라이선스 자격을 확인하는 방법에는 두 가지가 있습니다.

Teams 웹 클라이언트를 통해 확인

Teams 웹 클라이언트를 통해 Teams 라이선스 자격을 확인하려면 다음 단계를 수행합니다.

  1. 브라우저를 열고 Teams 웹 클라이언트이동합니다.
  2. 유효한 Teams 라이선스가 있는 자격 증명으로 로그인합니다.
  3. 인증에 성공하고 도메인에 https://teams.microsoft.com/ 남아 있는 경우 Teams 라이선스를 사용할 수 있습니다. 인증이 실패하거나 도메인으로 https://teams.live.com/v2/ 리디렉션되는 경우 Teams 라이선스는 Teams 사용자에 대해 Azure Communication Services 지원을 사용할 수 없습니다.

Microsoft Graph API를 통해 현재 Teams 라이선스 확인

licenseDetails를 사용하여 현재 Teams 라이선스를 찾을 수 있습니다. Microsoft Graph API는 사용자에게 할당된 라이선스를 반환합니다. Graph Explorer 도구를 사용하여 사용자에게 할당된 라이선스를 보려면 다음 단계를 수행합니다.

  1. 브라우저를 열고 Graph Explorer이동합니다.

  2. 자격 증명을 사용하여 Graph Explorer에 로그인합니다.

    Graph Explorer에 로그인하는 방법을 보여 주는 스크린샷

  3. 쿼리 상자에 다음 API를 입력하고 쿼리 실행을 선택합니다.

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

    Graph 탐색기에서 API를 입력하는 방법을 보여 주는 스크린샷

    또는 다음 API를 사용하여 사용자 ID를 제공하여 특정 사용자를 쿼리할 수 있습니다.

    https://graph.microsoft.com/v1.0/users/{id}/licenseDetails
    
  4. 응답 미리 보기 창에 출력이 표시됩니다.

    여기에 표시된 응답 개체는 가독성을 높이기 위해 줄어들 수 있습니다.

    {
        "@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. 속성에 servicePlanName 적격 Teams 라이선스 테이블의 값 중 하나가 있는 라이선스 세부 정보를 찾습니다.