통화 SDK 개요

Azure Communication Services를 사용하면 최종 사용자 브라우저, 앱 및 서비스가 음성 및 비디오 통신을 구동할 수 있습니다. 이 페이지에서는 웹 사이트 및 네이티브 애플리케이션에 포함할 수 있는 클라이언트 SDK 호출에 중점을 둡니다. 이 페이지에서는 플랫폼 및 브라우저 지원 정보와 같은 호출 클라이언트 기능에 대한 자세한 설명을 제공합니다. 서비스는 통화 자동화 API를 사용하여 프로그래밍 방식으로 통화를 관리하고 액세스합니다. 룸 API는 역할 및 권한과 같은 음성 또는 영상 통화에 추가 기능을 추가하는 선택적 Azure Communication Services API입니다.

참고 항목

이 짧은 설문 조사를 통해 Azure Communication Services에 대한 생각과 피드백을 공유하세요.

통화 SDK를 사용하여 사용자 환경을 빌드하려면 통화 빠른 시작 또는 통화 영웅 샘플을 확인하세요.

최종 사용자 환경에 대한 도움말을 보려면 Azure Communication Services UI 라이브러리는 애플리케이션에 드롭할 오픈 소스 프로덕션 준비 UI 구성 요소 컬렉션을 제공합니다. 이 미리 빌드된 컨트롤 세트를 사용하면 Microsoft의 Fluent 디자인 언어를 사용하여 아름다운 커뮤니케이션 환경을 만들 수 있습니다. UI 라이브러리에 대해 자세히 알아보려면 개요 사이트 또는 Storybook을 방문하세요.

개발을 시작하면 알려진 문제 페이지를 확인하여 작업 중인 버그를 찾습니다.

SDK 링크

플랫폼 웹(JavaScript) Windows(.NET) iOS Android 기타
통화 중 npm NuGet GitHub Maven
UI 라이브러리 npm - GitHub GitHub GitHub, 스토리 북

주요 기능

  • 디바이스 관리 및 미디어 - Calling SDK는 오디오 및 비디오 디바이스에 바인딩하는 기능을 제공하고, 통신 데이터 평면에서의 효율적인 전송을 위해 콘텐츠를 인코딩하며, 지정한 출력 디바이스 및 보기로 콘텐츠를 렌더링합니다. API는 화면 및 애플리케이션 공유에도 제공됩니다.
  • PSTN - Calling SDK는 Azure Portal에서 얻은 전화 번호를 사용하거나 프로그래밍 방식으로 기존에 공개적으로 전환된 전화 네트워크를 통해 음성 통화를 시작할 수 있습니다. 세션 경계 컨트롤러를 사용하여 사용자 고유의 번호를 가져올 수도 있습니다.
  • Teams 미팅 및 통화 - Calling SDK는 Teams 미팅에 조인하고 Teams 음성 및 비디오 평면과 상호 작용할 수 있습니다.
  • 암호화 - Calling SDK는 트래픽을 암호화하고 네트워크 변조를 방지합니다.
  • 주소 지정 - Azure Communication Services는 통신 엔드포인트의 주소를 지정하는 데 사용되는 일반 ID를 제공합니다. 클라이언트는 이러한 ID를 사용하여 서비스에 대해 인증하고 서로 통신합니다. 이러한 ID는 통화에 연결된 사용자를 클라이언트가 볼 수 있도록 하는 통화 API를 호출하는 데 사용됩니다(명단).
  • 사용자 액세스 보안
    • 명단 제어, 일정 제어 및 사용자 역할/권한Virtual Rooms를 통해 적용됩니다.
    • 사용자가 새 통화를 시작하거나 기존 통화에 조인하는 기능은 사용자 ID 및 토큰을 통해 관리할 수 있습니다.
  • 알림 - Calling SDK는 클라이언트가 들어오는 호출에 대한 알림을 받을 수 있도록 하는 API를 제공합니다. 앱이 포그라운드에서 실행되지 않는 상황에서, 패턴을 사용하여 최종 사용자에게 들어오는 호출을 알리기 위해 팝업 알림(“알림”)을 실행할 수 있습니다.
  • Media Stats - 통화 SDK는 VoIP 및 영상 통화의 메트릭에 대한 포괄적인 인사이트를 제공합니다. 이 정보를 통해 개발자는 통화 품질을 보다 명확하게 이해하고 의사 소통 환경을 더욱 향상시키기 위해 정보에 입각한 결정을 내릴 수 있습니다.
  • 비디오 제약 조건 - 통화 SDK는 다양한 수준의 비디오 품질에 대해 다양한 통화 상황을 지원하는 해상도 및 프레임 속도와 같은 매개 변수를 조정하여 영상 통화 중에 다른 매개 변수 중 비디오 품질을 조절할 수 있는 기능을 제공하는 API를 제공합니다.
  • UFD(사용자 연결 진단) - 통화 SDK는 통화 품질에 영향을 줄 수 있는 기본 문제에 대한 인사이트를 제공하도록 설계된 이벤트를 제공합니다. 개발자는 약한 네트워크 신호 또는 음소거된 마이크와 같은 트리거를 구독하여 호출에 영향을 주는 모든 요인을 항상 인식할 수 있습니다.

세부 기능

다음 목록에서는 현재 Azure Communication Services 통화 SDK에서 사용할 수 있는 기능 세트를 보여 줍니다.

기능 그룹 기능 JS Windows Java(Android) Objective-C(iOS)
핵심 기능 두 사용자 간에 일 대 일 호출 배치 ✔️ ✔️ ✔️ ✔️
세 명 이상의 사용자를 포함하는 그룹 통화(최대 100 사용자) 배치 ✔️ ✔️ ✔️ ✔️
세 명 이상의 사용자가 있는 그룹 호출로 일 대 일 호출 승격 ✔️ ✔️ ✔️ ✔️
시작된 후 그룹 호출 조인 ✔️ ✔️ ✔️ ✔️
진행 중인 그룹 호출에 참가하기 위해 다른 VoIP 참가자 초대 ✔️ ✔️ ✔️ ✔️
중간 호출 컨트롤 비디오 켜기/끄기 ✔️ ✔️ ✔️ ✔️
마이크 음소거/음소거 해제 ✔️ ✔️ ✔️ ✔️
다른 참가자 음소거 ✔️1 ✔️1 ✔️1 ✔️1
카메라 간 전환 ✔️ ✔️ ✔️ ✔️
로컬 보류/유지 취소 ✔️ ✔️ ✔️ ✔️
활성 스피커 ✔️ ✔️ ✔️ ✔️
호출용 스피커 선택 ✔️ ✔️ ✔️ ✔️
통화에 대한 마이크 선택 ✔️ ✔️ ✔️ ✔️
참가자의 상태 표시
유휴, 초기 미디어, 연결, 연결됨, 보류 중, 로비 내, 연결 끊김
✔️ ✔️ ✔️ ✔️
호출 상태 표시
초기 미디어, 수신, 연결 중, 울림, 연결됨, 보류 중, 연결 끊기, 연결 끊어짐
✔️ ✔️ ✔️ ✔️
참가자가 음소거되어 있는지 여부 표시 ✔️ ✔️ ✔️ ✔️
참가자가 전화를 끊은 이유 표시 ✔️ ✔️ ✔️ ✔️
화면 공유 애플리케이션 내에서 전체 화면 공유 ✔️ ✔️2 ✔️2 ✔️2
특정 애플리케이션 공유(실행 중인 애플리케이션 목록에서) ✔️ ✔️2
열려 있는 탭 목록에서 웹 브라우저 탭 공유 ✔️
화면 공유 중 시스템 오디오 공유 ✔️
참가자가 원격 화면 공유를 볼 수 있음 ✔️ ✔️ ✔️ ✔️
명단 참가자 리스트 ✔️ ✔️ ✔️ ✔️
참가자 제거 ✔️ ✔️ ✔️ ✔️
PSTN PSTN 참가자를 사용하여 일 대 일 호출 배치 ✔️ ✔️ ✔️ ✔️
PSTN 참가자를 사용하여 그룹 호출 배치 ✔️ ✔️ ✔️ ✔️
PSTN 참가자를 사용하여 일 대 일 호출을 그룹 호출로 승격 ✔️ ✔️ ✔️ ✔️
그룹 호출에서 PSTN 참가자로 전화 걸기 ✔️ ✔️ ✔️ ✔️
초기 미디어 지원 ✔️ ✔️ ✔️ ✔️
일반 오디오 테스트 서비스를 사용하여 마이크, 스피커 및 카메라 테스트(8:echo123을 호출하여 사용 가능) ✔️ ✔️ ✔️ ✔️
디바이스 관리 오디오 및/또는 비디오 사용 권한 요청 ✔️ ✔️ ✔️ ✔️
카메라 목록 가져오기 ✔️ ✔️ ✔️ ✔️
카메라 설정 ✔️ ✔️ ✔️ ✔️
선택한 카메라 가져오기 ✔️ ✔️ ✔️ ✔️
마이크 목록 가져오기 ✔️ ✔️ 3 3
마이크 설정 ✔️ ✔️ 3 3
선택한 마이크 가져오기 ✔️ ✔️ 3 3
스피커 목록 가져오기 ✔️ ✔️ 3 3
스피커 설정 ✔️ ✔️ 3 3
선택한 스피커 가져오기 ✔️ ✔️ 3 3
비디오 렌더링 여러 위치에서 단일 비디오 렌더링(로컬 카메라 또는 원격 스트림) ✔️ ✔️ ✔️ ✔️
크기 조정 모드 설정/업데이트 ✔️ ✔️ ✔️ ✔️
원격 비디오 스트림 렌더링 ✔️ ✔️ ✔️ ✔️
비디오 효과 배경색 흐리게 ✔️ ✔️ ✔️ ✔️
사용자 지정 배경 이미지 ✔️
오디오 효과 음악 모드 ✔️ ✔️ ✔️
오디오 필터 ✔️ ✔️ ✔️
노이즈 억제 ✔️
알림 4 푸시 알림 ✔️ ✔️ ✔️ ✔️

1 다른 사용자를 음소거하는 기능은 현재 공개 미리 보기로 제공됩니다.

2 화면 공유 기능은 원시 미디어 API를 사용하여 구현할 수 있습니다. 자세한 내용은 원시 미디어 액세스 빠른 시작 가이드를 방문하세요.

3 호출 SDK에는 이러한 함수에 대한 명시적 API가 없으므로 Android 및 iOS OS API를 대신 사용해야 합니다.

4 네이티브 플랫폼에서 TTL의 최댓값은 180일(15,552,000초)이고 최솟값은 5분(300초)입니다. CTE(사용자 지정 Teams 엔드포인트)/M365 ID의 경우 최대 TTL 값은 24시간(86,400초)입니다.

OS 및 브라우저에서 JavaScript 통화 SDK 지원

다음 표에서는 현재 사용 가능한 지원되는 브라우저 세트를 나타냅니다. 달리 명시되지 않는 한 브라우저의 가장 최근 세 가지 주 버전(Safari의 경우 가장 최근 3개 부 버전)을 지원합니다.

플랫폼 Chrome Safari Edge Firefox 웹 보기 Electron
Android ✔️ ✔️ ✔️
iOS ✔️ ✔️ ✔️
macOS ✔️ ✔️ ✔️ ✔️ ✔️
Windows ✔️ ✔️ ✔️ ✔️
Ubuntu/Linux ✔️
  • 나가는 화면 공유는 iOS 또는 Android 모바일 브라우저에서 지원되지 않습니다.
  • Firefox 지원은 공개 미리 보기로 제공됩니다.
  • 현재 통화 SDK는 Android의 Android System WebView, 공개 미리 보기의 iOS WebView(WKWebView)만 지원합니다. GeckoView, CEF(Chromium Embedded Framework), Microsoft Edge WebView2와 같은 다른 형식의 임베디드 브라우저 또는 다른 OS 플랫폼의 WebView는 공식적으로 지원되지 않습니다. 이러한 플랫폼에서 JavaScript Calling SDK를 실행하는 것은 적극적으로 테스트되지 않았으며 작동하거나 작동하지 않을 수 있습니다.
  • Safari의 iOS 앱은 마이크 및 스피커 디바이스를 열거/선택할 수 없습니다(예: Bluetooth). 이 문제는 iOS의 제한 사항이며 운영 체제는 기본 디바이스 선택을 제어합니다.

클라이언트 - 브라우저 보안 모델 호출

HTTPS를 통해 WebRTC 사용

getUserMedia와 같은 WebRTC API에서는 이러한 API를 호출하는 앱이 HTTPS를 통해 제공되어야 합니다. 로컬 개발의 경우 http://localhost를 사용할 수 있습니다.

Communication Service 호출 SDK를 iframe에 포함

새로운 권한 정책(기능 정책이라고도 함)은 다양한 브라우저에서 사용할 수 있습니다. 이 정책은 애플리케이션이 원본 간 iframe 요소를 통해 디바이스의 카메라 및 마이크에 액세스할 수 있는 방법을 제어하여 호출 시나리오에 영향을 줍니다.

Iframe을 사용하여 다른 도메인에서 앱의 일부를 호스팅하려면 iframe에 올바른 값이 포함된 allow 특성을 추가해야 합니다.

예를 들어 이 iframe은 카메라와 마이크 액세스를 모두 허용합니다.

<iframe allow="camera *; microphone *">

Android Calling SDK 지원

  • Android API 수준 21 이상 지원
  • Java 7 이상 지원
  • Android Studio 2.0 지원
  • Android 자동Android를 실행하는 IoT 디바이스는 현재 지원되지 않습니다.

iOS Calling SDK 지원

  • 빌드 시 iOS 10.0 이상 및 런타임 시 iOS 12.0 이상 지원
  • Xcode 12.0 이상
  • iPadOS 13.0 이상 지원

최대 호출 기간

최대 통화 기간은 30시간이며, 최대 통화 기간 30시간에 도달한 참가자는 통화에서 연결이 끊어집니다.

지원되는 수신 화상 스트림 수

Azure Communication Services 통화 SDK는 다음과 같은 스트리밍 구성을 지원합니다.

제한 Windows/Android/iOS
# 동시에 보낼 수 있는 최대 송신 로컬 스트림 수 비디오 1개 및 화면 공유 1개 비디오 1개 + 화면 공유 1개
# 동시에 렌더링할 수 있는 최대 수신 원격 스트림 수 데스크톱 브라우저에서 9개 비디오 + 1개 화면 공유*, 웹 모바일 브라우저에서 4개 비디오 + 1개 화면 공유 9개 비디오 + 1개 화면 공유

* Azure Communication Services 웹 통화 SDK 버전 1.16.3부터 통화 SDK는 이러한 제한을 적용하지 않지만 제한을 초과하면 성능 저하가 발생할 수 있습니다. 최적 비디오 수의 API를 사용하여 웹 환경에서 지원할 수 있는 현재 들어오는 비디오 스트림 수를 결정합니다.

지원되는 비디오 해상도

Azure Communication Services 통화 SDK는 통화 중에 동영상 및 화면 공유 스트림의 해상도를 자동으로 조정합니다.

참고 항목

해상도는 통화 참가자 수, 클라이언트가 사용할 수 있는 대역폭의 양, 원격 동영상 스트림을 렌더링하는 로컬 참가자의 하드웨어 기능 및 기타 전체 통화 매개 변수에 따라 달라질 수 있습니다.

Azure Communication Services 통화 SDK는 다음 동영상 해상도 전송을 지원합니다.

최대 동영상 해상도 WebJS iOS Android Windows
동영상 보내기 720P 720P 720P 1080P
화면 공유 보내기 1080P 1080P 1080P 1080P
원격 동영상 스트림 또는 화면 공유 수신 1080P 1080P 1080P 1080P

통화 지원 참가자 수

  • 최대 350명의 사용자가 그룹 통화, 회의실 또는 Teams + ACS 통화에 참여할 수 있습니다.
  • 통화 규모가 통화 참가자 100명 이상에 도달하면 동영상 카메라를 켠 가장 주요 화자 상위 4명만 볼 수 있습니다.
  • 통화 중인 사람 수가 100명이 넘으면 볼 수 있는 수신 화상 렌더링 수가 3x3(수신 화상 9개)에서 2x2(수신 화상 4개)로 자동으로 줄어듭니다.
  • 사용자 수가 100 미만이 되면 지원되는 들어오는 비디오 수가 최대 3x3(들어오는 비디오 9개)으로 돌아갑니다.

통화 SDK 제한 시간

Communication Services 통화 SDK에는 다음 제한 시간이 적용됩니다.

작업 시간 제한(초)
참가자 다시 연결/제거 60
통화에서 새 형식을 추가하거나 제거합니다(비디오 또는 화면 공유 시작/중지). 40
통화 전송 작업 제한 시간 60
1:1 통화 설정 제한 시간 85
그룹 통화 설정 제한 시간 85
PSTN 통화 설정 제한 시간 115
1:1 통화를 그룹 통화 제한 시간으로 승격 115

다음 단계

자세한 내용은 다음 문서를 참조하세요.