

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Streaming media langsung (SDKs)
<a name="webrtc-sdks"></a>

Di Amazon Kinesis Video Streams WebRTC, peer adalah perangkat yang dikonfigurasi untuk streaming dua arah real-time melalui saluran pensinyalan. Amazon Kinesis Video Streams SDKs dengan easy-to-use WebRTC adalah pustaka perangkat lunak yang dapat Anda unduh dan instal pada perangkat dan klien aplikasi yang ingin Anda konfigurasikan sebagai rekan melalui saluran pensinyalan tertentu.

Amazon Kinesis Video Streams dengan WebRTC mencakup hal-hal berikut: SDKs
+ [Amazon Kinesis Video Streams dengan WebRTC SDK di C untuk perangkat yang disematkan](kvswebrtc-sdk-c.md)
+ [Amazon Kinesis Video Streams dengan WebRTC JavaScript SDK untuk aplikasi web](kvswebrtc-sdk-js.md)
+ [Amazon Kinesis Video Streams WebRTC SDK untuk Android](kvswebrtc-sdk-android.md)
+ [Amazon Kinesis Video Streams WebRTC SDK untuk iOS](kvswebrtc-sdk-ios.md)

Setiap SDK menyertakan sampel dan step-by-step instruksi terkait yang dapat membantu Anda membangun dan menjalankan aplikasi tersebut. Anda dapat menggunakan sampel ini untuk latensi rendah, live, streaming audio dan video dua arah dan pertukaran data antara kombinasi Web/Android/iOS aplikasi atau perangkat yang disematkan. Dengan kata lain, Anda dapat melakukan streaming audio dan video langsung dari perangkat kamera yang disematkan ke aplikasi Android atau web atau di antara dua aplikasi Android.

# Amazon Kinesis Video Streams dengan WebRTC SDK di C untuk perangkat yang disematkan
<a name="kvswebrtc-sdk-c"></a>

 step-by-stepPetunjuk berikut menjelaskan cara mengunduh, membuat, dan menjalankan Kinesis Video Streams dengan WebRTC SDK di C untuk perangkat yang disematkan dan sampel yang sesuai.

Codec berikut didukung:
+ **Audio:**
  + G.711 A-Law
  + G.711 U-Hukum
  + Opus
+ **Video:**
  + H.264
  + H.265
  + VP8

## Unduh SDK
<a name="gs-download-sdk"></a>

Untuk mengunduh Kinesis Video Streams dengan WebRTC SDK di C untuk perangkat yang disematkan, jalankan perintah berikut:

```
$ git clone https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c.git
```

## Membangun SDK
<a name="gs-build-sdk"></a>

**penting**  
Sebelum Anda menyelesaikan langkah-langkah ini di macOS dan tergantung pada versi macOS yang Anda miliki, Anda harus menjalankan `xcode-select --install` untuk mengunduh paket dengan alat dan header baris perintah. Kemudian buka `/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg` dan ikuti penginstal untuk menginstal alat baris perintah dan header. Anda hanya perlu melakukan ini sekali dan sebelum memanggil`cmake`. Jika Anda sudah menginstal alat baris perintah dan header, Anda tidak perlu menjalankan perintah ini lagi.

Selesaikan langkah-langkah berikut:

****

1. Instal cmake:
   + Di macOS, jalankan `brew install cmake pkg-config srtp` 
   + di Ubuntu, jalankan `sudo apt-get install pkg-config cmake libcap2 libcap-dev`

1. Dapatkan kunci akses dan kunci rahasia Akun AWS yang ingin Anda gunakan untuk demo ini.

1. Jalankan perintah berikut untuk membuat `build` direktori di WebRTC C SDK yang diunduh, dan jalankan darinya: `cmake`

   ```
   $ mkdir -p amazon-kinesis-video-streams-webrtc-sdk-c/build; cd amazon-kinesis-video-streams-webrtc-sdk-c/build; cmake ..
   ```

1. Sekarang Anda berada di `build` direktori yang baru saja Anda buat dengan langkah di atas, jalankan `make` untuk membangun WebRTC C SDK dan sampel yang disediakan.
**catatan**  
 Tidak `kvsWebrtcClientMasterGstSample` akan dibangun jika sistem tidak `gstreamer` diinstal. Untuk memastikannya dibangun (di macOS), Anda harus menjalankan: `brew install gstreamer gst-plugins-base gst-plugins-good` 

## Jalankan sampel SDK
<a name="gs-run-c-sample"></a>

Setelah Anda menyelesaikan prosedur di atas, Anda berakhir dengan contoh aplikasi berikut di `build` direktori Anda:
+ `kvsWebrtcClientMaster`- Aplikasi ini mengirimkan sampel frame H264/Opus (jalur:/samples/h264SampleFrames and /samples/opusSampleFrames) melalui saluran pensinyalan. Ini juga menerima audio yang masuk, jika diaktifkan di browser. Ketika diperiksa di browser, itu mencetak metadata dari paket audio yang diterima di terminal Anda.
+ `kvsWebrtcClientViewer`- Aplikasi ini menerima sampel bingkai H264/Opus dan mencetaknya. 
+ `kvsWebrtcClientMasterGstSample`- Aplikasi ini mengirimkan sampel frame H264/Opus dari pipa. GStreamer 

Untuk menjalankan salah satu sampel ini, selesaikan langkah-langkah berikut:

1. Siapkan lingkungan Anda dengan Akun AWS kredensil Anda:

   ```
   export AWS_ACCESS_KEY_ID=YourAccessKey
   export AWS_SECRET_ACCESS_KEY=YourSecretKey
   export AWS_DEFAULT_REGION=YourAWSRegion
   ```

   Jika Anda menggunakan AWS kredensil sementara, ekspor juga token sesi Anda:

   ```
   export AWS_SESSION_TOKEN=YourSessionToken
   ```

   Jika Anda memiliki jalur sertifikat CA kustom untuk disetel, Anda dapat mengaturnya menggunakan:

   ```
   export AWS_KVS_CACERT_PATH=../certs/cert.pem
   ```
**catatan**  
Secara default, sertifikat SSL CA diatur ke.. /certs/cert.pem yang menunjuk ke file dalam repositori ini di. [GitHub](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/certs/cert.pem)

1. Jalankan salah satu aplikasi sampel dengan meneruskan nama yang ingin Anda berikan ke saluran pensinyalan Anda. Aplikasi membuat saluran pensinyalan menggunakan nama yang Anda berikan. Misalnya, untuk membuat saluran pensinyalan yang dipanggil `myChannel` dan untuk mulai mengirim sampel frame H264/Opus melalui saluran ini, jalankan perintah berikut: 

   ```
   ./kvsWebrtcClientMaster myChannel
   ```

   Ketika aplikasi baris perintah mencetak`Connection established`, Anda dapat melanjutkan ke langkah berikutnya.

1. Sekarang saluran pensinyalan Anda dibuat dan master yang terhubung sedang mengalirkan media ke sana, Anda dapat melihat aliran ini. Misalnya, Anda dapat melihat streaming langsung ini di aplikasi web. Untuk melakukannya, buka WebRTC SDK Test Page menggunakan langkah-langkah [Gunakan aplikasi sampel](kvswebrtc-sdk-js.md#build-sdk-js) dan atur nilai berikut menggunakan kredensi yang sama dan saluran pensinyalan AWS yang sama yang Anda tentukan untuk master di atas:
   + ID kunci akses
   + Kunci akses rahasia
   + Nama saluran pensinyalan
   + ID Klien (opsional)

   Pilih **Mulai penampil** untuk memulai streaming video langsung dari sampel bingkai H264/Opus.

## Video tutorial
<a name="sdk-c-video"></a>

Video ini menunjukkan cara menghubungkan kamera Anda dan memulai dengan Amazon Kinesis Video Streams untuk WebRTC.




# Amazon Kinesis Video Streams dengan WebRTC JavaScript SDK untuk aplikasi web
<a name="kvswebrtc-sdk-js"></a>

Anda dapat menemukan Kinesis Video Streams dengan JavaScript WebRTC SDK untuk aplikasi web dan sampel yang sesuai di. [GitHub](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js)

**Topics**
+ [Instal SDK](#install-sdk-js)
+ [WebRTC SDK dokumentasi JavaScript](#docs-sdk-js)
+ [Gunakan aplikasi sampel](#build-sdk-js)
+ [Edit aplikasi sampel](#run-sdk-js)

## Instal SDK
<a name="install-sdk-js"></a>

Apakah dan bagaimana Anda menginstal Kinesis Video Streams dengan JavaScript WebRTC SDK tergantung pada apakah kode dijalankan dalam modul atau skrip browser. `Node.js`

------
#### [ NodeJS module ]

[Cara yang lebih disukai untuk menginstal Kinesis Video Streams dengan JavaScript WebRTC SDK untuk Node.js adalah dengan menggunakan npm, pengelola paket Node.js.](https://www.npmjs.com/)

Paket ini di-host di [https://www.npmjs.com/package/amazon-kinesis-video-streams-webrtc](https://www.npmjs.com/package/amazon-kinesis-video-streams-webrtc?activeTab=readme).

Untuk menginstal SDK ini di `Node.js` project Anda, gunakan terminal untuk menavigasi ke direktori yang sama dengan project Anda: `package.json`

Ketik berikut ini:

```
npm install amazon-kinesis-video-streams-webrtc
```

Anda dapat mengimpor kelas SDK seperti modul Node.js biasa:

```
// JavaScript
const SignalingClient = require('amazon-kinesis-video-streams-webrtc').SignalingClient;
// TypeScript
import { SignalingClient } from 'amazon-kinesis-video-streams-webrtc';
```

------
#### [ Browser ]

Anda tidak perlu menginstal SDK untuk menggunakannya dalam skrip browser. Anda dapat memuat paket SDK yang dihosting langsung AWS dengan skrip di halaman HTML Anda.

Untuk menggunakan SDK di browser, tambahkan elemen skrip berikut ke halaman HTML Anda:

```
<script src="https://unpkg.com/amazon-kinesis-video-streams-webrtc/dist/kvs-webrtc.min.js"></script>
```

Setelah SDK dimuat di halaman Anda, SDK tersedia dari variabel global `KVSWebRTC` (atau`window.KVSWebRTC`). 

Misalnya, `window.KVSWebRTC.SignalingClient`.

------

## WebRTC SDK dokumentasi JavaScript
<a name="docs-sdk-js"></a>

[Dokumentasi untuk metode SDK ada di GitHub readme, di bawah Dokumentasi.](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js?tab=readme-ov-file#documentation)

Di bagian [Penggunaan](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js?tab=readme-ov-file#usage), ada informasi tambahan untuk mengintegrasikan SDK ini bersama dengan AWS SDK JavaScript untuk membangun aplikasi penampil berbasis web.

Lihat `examples` direktori untuk contoh aplikasi lengkap, termasuk peran master dan penampil.

## Gunakan aplikasi sampel
<a name="build-sdk-js"></a>

Kinesis Video Streams dengan WebRTC juga menghosting aplikasi sampel yang dapat Anda gunakan untuk membuat saluran pensinyalan baru atau terhubung ke saluran yang ada dan menggunakannya sebagai master atau penampil.

Kinesis Video Streams dengan aplikasi sampel WebRTC terletak di. [GitHub](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html)

Kode untuk aplikasi sampel ada di `examples` direktori.

**Topics**
+ [Streaming peer-to-peer dari aplikasi sampel ke Konsol Manajemen AWS](#sdk-js-stream-console)
+ [Streaming peer-to-peer dari aplikasi sampel ke aplikasi sampel](#sdk-js-stream-test)
+ [Streaming peer-to-peer dengan WebRTC Ingestion dari halaman sampel ke halaman sampel](#sdk-js-stream-ingestion)

### Streaming peer-to-peer dari aplikasi sampel ke Konsol Manajemen AWS
<a name="sdk-js-stream-console"></a>



1. Buka [Kinesis Video Streams dengan aplikasi sampel WebRTC](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html) dan lengkapi yang berikut ini:
   + Wilayah AWS. Misalnya,`us-west-2`. 
   + Kunci AWS akses dan kunci rahasia untuk pengguna atau peran IAM Anda. Biarkan token sesi kosong jika Anda menggunakan AWS kredensi jangka panjang.
   + Nama saluran pensinyalan yang ingin Anda sambungkan.

     Jika Anda ingin terhubung ke saluran pensinyalan baru, pilih **Buat Saluran** untuk membuat saluran pensinyalan dengan nilai yang disediakan di kotak. 
**catatan**  
Nama saluran pensinyalan Anda harus unik untuk akun dan wilayah saat ini. Anda dapat menggunakan huruf, angka, garis bawah (\$1), dan tanda hubung (-), tetapi bukan spasi.
   + Apakah Anda ingin mengirim audio, video, atau keduanya.
   + WebRTC Tertelan dan Penyimpanan. Perluas node dan pilih salah satu dari berikut ini: 
     + Pilih **Secara otomatis menentukan mode konsumsi.** 
     + **Pastikan **Secara otomatis menentukan mode konsumsi** tidak dipilih dan atur penggantian manual ke OFF.** 
**catatan**  
**Secara otomatis menentukan mode konsumsi** memiliki aplikasi memanggil [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html)API untuk menentukan mode mana yang akan dijalankan (atau konsumsi Peer-to-peer WebRTC). Panggilan API tambahan ini menambahkan sedikit waktu startup.   
Jika Anda tahu sebelumnya mode mana saluran pensinyalan ini berjalan, gunakan penggantian manual untuk melewati panggilan API ini. 
   + Generasi kandidat ICE. Biarkan`STUN`/`TURN`dipilih dan biarkan `Trickle ICE` diaktifkan.

1. Pilih **Mulai Master** untuk terhubung ke saluran pensinyalan.

   Izinkan akses ke and/or mikrofon kamera Anda, jika diperlukan.

1. Buka konsol [Kinesis Video](https://console.aws.amazon.com//kinesisvideo/home/) Streams di. Konsol Manajemen AWS

   Pastikan wilayah yang benar dipilih.

1. Di navigasi kiri, pilih **[saluran pensinyalan](https://console.aws.amazon.com//kinesisvideo/home#/signalingChannels/)**. 

   Pilih nama saluran pensinyalan di atas. Gunakan bilah pencarian, jika perlu.

1. Perluas bagian **Penampil pemutaran media**.

1. Pilih tombol **putar** pada pemutar video. Ini bergabung dengan sesi WebRTC sebagai. `viewer`

   Media yang sedang dikirim pada halaman demo harus ditampilkan di Konsol Manajemen AWS.

### Streaming peer-to-peer dari aplikasi sampel ke aplikasi sampel
<a name="sdk-js-stream-test"></a>

1. Buka [Kinesis Video Streams dengan aplikasi sampel WebRTC](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html) dan lengkapi informasi berikut:
   + Wilayah AWS. Misalnya,`us-west-2`. 
   + Kunci AWS akses dan kunci rahasia untuk pengguna atau peran IAM Anda. Biarkan token sesi kosong jika Anda menggunakan AWS kredensi jangka panjang.
   + Nama saluran pensinyalan yang ingin Anda sambungkan.

     Jika Anda ingin terhubung ke saluran pensinyalan baru, pilih **Buat Saluran** untuk membuat saluran pensinyalan dengan nilai yang disediakan di kotak. 
**catatan**  
Nama saluran pensinyalan Anda harus unik untuk akun dan wilayah saat ini. Anda dapat menggunakan huruf, angka, garis bawah (\$1), dan tanda hubung (-), tetapi bukan spasi.
   + Apakah Anda ingin mengirim audio, video, atau keduanya.
   + WebRTC Tertelan dan Penyimpanan. Perluas node dan pilih salah satu dari berikut ini: 
     + Pilih **Secara otomatis menentukan mode konsumsi.** 
     + **Pastikan **Secara otomatis menentukan mode konsumsi** tidak dipilih dan atur penggantian manual ke OFF.** 
**catatan**  
**Secara otomatis menentukan mode konsumsi** memiliki aplikasi memanggil [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html)API untuk menentukan mode mana yang akan dijalankan (atau konsumsi Peer-to-peer WebRTC). Panggilan API tambahan ini menambahkan sedikit waktu startup.   
Jika Anda tahu sebelumnya mode mana saluran pensinyalan ini berjalan, gunakan penggantian manual untuk melewati panggilan API ini. 
   + Generasi kandidat ICE. Biarkan`STUN`/`TURN`dipilih dan biarkan `Trickle ICE` diaktifkan.

1. Pilih **Mulai Master** untuk terhubung ke saluran pensinyalan sebagai `master` peran.

   Izinkan akses ke and/or mikrofon kamera Anda, jika diperlukan.

1. Buka tab browser lain dan buka [Kinesis Video Streams dengan aplikasi contoh WebRTC](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html). Semua informasi dari proses sebelumnya harus dimuat.

1. Gulir ke bawah dan pilih **Mulai Penampil** untuk terhubung ke saluran pensinyalan sebagai `viewer` peran.

   Anda harus melihat media dipertukarkan antara `master` dan`viewer`.

### Streaming peer-to-peer dengan WebRTC Ingestion dari halaman sampel ke halaman sampel
<a name="sdk-js-stream-ingestion"></a>

1. Ikuti [Menelan media dari browser](ingest-media.md#ingest-browser) untuk menghubungkan peserta utama dan pastikan itu terhubung ke sesi penyimpanan.

1. Ikuti [Tambahkan pemirsa ke sesi konsumsi](ingest-media.md#ingest-add-viewers) untuk menambahkan peserta pemirsa.

   Peserta pemirsa akan terhubung dan menerima media dari sesi penyimpanan. Mereka dapat mengirim audio opsional kembali ke sesi penyimpanan.

   Sesi penyimpanan menangani pencampuran media yang diterima dari peserta master dan pemirsa dan mengirimkannya ke tujuan yang sesuai.

1. Anda dapat melihat dan menggunakan media yang dicerna melalui pemutaran [Kinesis Video Streams](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/how-playback.html).

## Edit aplikasi sampel
<a name="run-sdk-js"></a>

Untuk mengedit SDK dan contoh aplikasi untuk tujuan pengembangan, ikuti petunjuk di bawah ini.

**Prasyarat**

NodeJS versi 16\$1

**catatan**  
Kami merekomendasikan mengunduh versi dukungan jangka panjang (LTS) terbaru dari [https://nodejs. org/en/download](https://nodejs.org/en/download).

**Edit aplikasi sampel**

1. Unduh Kinesis Video Streams dengan JavaScript WebRTC SDK di.

   Ketik berikut ini di terminal:

   ```
   git clone https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js.git
   ```

1. Arahkan ke direktori dengan file package.json. File ini terletak di direktori root repositori.

   Ketik berikut ini di terminal:

   ```
   cd amazon-kinesis-video-streams-webrtc-sdk-js
   ```

1. Instal dependensi. 

   Ketik perintah [CLI npm](https://docs.npmjs.com/cli/v10/commands) berikut di terminal:

   ```
   npm install
   ```

1. Mulai server web untuk mulai melayani halaman web. 

   Ketik perintah [CLI npm](https://docs.npmjs.com/cli/v10/commands) berikut di terminal:

   ```
   npm run develop
   ```

1. Di browser Anda, kunjungi [http://localhost:3001/](http://localhost:3001/).

   Anda dapat melakukan pengeditan ke halaman web dengan mengedit file di `examples` direktori.

# Amazon Kinesis Video Streams WebRTC SDK untuk Android
<a name="kvswebrtc-sdk-android"></a>

 step-by-stepPetunjuk berikut menjelaskan cara mengunduh, membuat, dan menjalankan Kinesis Video Streams dengan WebRTC SDK for Android dan sampelnya yang sesuai.

**catatan**  
Amazon Kinesis Video Streams IPv6 tidak mendukung alamat di Android. Lihat informasi selengkapnya tentang [menonaktifkan IPv6 di perangkat Android Anda](https://www.cactusvpn.com/tutorials/how-to-disable-ipv6-on-android/).

## Unduh SDK
<a name="download-sdk-android"></a>

Untuk mengunduh SDK WebRTC di Android, jalankan perintah berikut:

```
$ git clone https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-android.git
```

## Membangun SDK
<a name="build-sdk-android"></a>

Untuk membangun SDK WebRTC di Android, selesaikan langkah-langkah berikut:

1. **Impor Android WebRTC SDK ke lingkungan pengembangan terintegrasi (IDE) Android Studio dengan membuka dengan Open as Project. `amazon-kinesis-video-streams-webrtc-sdk-android/build.gradle`** 

1. Jika Anda membuka proyek untuk pertama kalinya, secara otomatis akan disinkronkan. Jika tidak - memulai sinkronisasi. Ketika Anda melihat kesalahan build, pilih untuk menginstal apa pun yang diperlukan SDKs dengan memilih **Instal paket SDK yang hilang**, lalu pilih **Terima** dan selesaikan penginstalan.

1. Konfigurasikan setelan Amazon Cognito (kumpulan pengguna dan kumpulan identitas). Untuk langkah-langkah detail, lihat[Konfigurasikan Amazon Cognito untuk SDK](#build-sdk-android-cognito). Ini menghasilkan pengaturan autentikasi dan otorisasi yang diperlukan untuk membangun Android WebRTC SDK.

1. Di IDE Android Anda, buka `awsconfiguration.json` (dari`src/main/res/raw/`). File tersebut terlihat seperti berikut:

   ```
   {
     "Version": "1.0",
     "CredentialsProvider": {
       "CognitoIdentity": {
         "Default": {
           "PoolId": "REPLACE_ME",
           "Region": "REPLACE_ME"
         }
       }
     },
     "IdentityManager": {
       "Default": {}
     },
     "CognitoUserPool": {
       "Default": {
         "AppClientSecret": "REPLACE_ME",
         "AppClientId": "REPLACE_ME",
         "PoolId": "REPLACE_ME",
         "Region": "REPLACE_ME"
       }
     }
   }
   ```

   Perbarui `awsconfiguration.json` dengan nilai yang dihasilkan dengan menjalankan langkah-langkah di[Konfigurasikan Amazon Cognito untuk SDK](#build-sdk-android-cognito).

1. Pastikan perangkat Android Anda terhubung ke komputer tempat Anda menjalankan IDE Android. Di Android IDE, pilih perangkat yang terhubung lalu buat dan jalankan WebRTC Android SDK.

   Langkah ini menginstal aplikasi yang dipanggil `AWSKinesisVideoWebRTCDemoApp` di perangkat Android Anda. Dengan menggunakan aplikasi ini, Anda dapat memverifikasi streaming WebRTC langsung antara audio/video klien perangkat seluler, web, dan IoT.

## Jalankan aplikasi sampel
<a name="run-sdk-android"></a>

****

Selesaikan langkah-langkah berikut:

1. Di perangkat Android Anda, buka **AWSKinesisVideoWebRTCDemoAplikasi** dan masuk menggunakan akun baru (dengan membuatnya terlebih dahulu) atau akun Amazon Cognito yang sudah ada.

1. Di **AWSKinesisVideoWebRTCDemoApp**, navigasikan ke halaman **Konfigurasi Saluran** dan buat saluran pensinyalan baru atau pilih yang sudah ada.
**catatan**  
**Saat ini, dengan menggunakan contoh aplikasi di SDK ini, Anda hanya dapat menjalankan satu saluran pensinyalan di AWSKinesis VideoWeb RTCDemo App.**

1. Opsional: pilih **ID Klien** unik jika Anda ingin terhubung ke saluran ini sebagai penampil. ID klien hanya diperlukan jika beberapa pemirsa terhubung ke saluran. Ini membantu master saluran mengidentifikasi masing-masing pemirsa.

1. Pilih Wilayah AWS dan apakah Anda ingin mengirim data audio atau video, atau keduanya.

1. Untuk memverifikasi peer-to-peer streaming, lakukan salah satu hal berikut:
**catatan**  
Pastikan Anda menentukan nama saluran pensinyalan, AWS wilayah, ID penampil, dan ID AWS akun yang sama pada semua klien yang Anda gunakan dalam demo ini.
   + Peer-to-peer streaming antara dua perangkat Android: master dan viewer
     + Menggunakan prosedur di atas, unduh, buat, dan jalankan Android WebRTC SDK di dua perangkat Android. 
     + Buka **AWSKinesisVideoWebRTCDemoAplikasi** di satu perangkat Android dalam mode master (pilih **MULAI MASTER**) untuk memulai sesi baru (saluran pensinyalan).
**catatan**  
Saat ini, hanya ada satu master untuk saluran pensinyalan tertentu.
     + Buka **AWSKinesisVideoWebRTCDemoAplikasi** di perangkat Android kedua Anda dalam mode penampil untuk terhubung ke saluran pensinyalan (sesi) yang dimulai pada langkah di atas (pilih **MULAI PENAMPIL**).

       Verifikasi bahwa pemirsa dapat melihat audio/video data master.
   + Peer-to-peer streaming antara master SDK yang disematkan dan penampil perangkat Android
     + Unduh, buat, dan jalankan mode master [Amazon Kinesis Video Streams dengan WebRTC SDK di C untuk perangkat yang disematkan](kvswebrtc-sdk-c.md) di perangkat kamera. 
     + Menggunakan prosedur di atas, unduh, buat, dan jalankan Android WebRTC SDK di perangkat Android. Buka **AWSKinesisVideoWebRTCDemoAplikasi** di perangkat Android ini dalam mode penampil dan verifikasi bahwa penampil dapat melihat audio/video data master SDK yang disematkan.
   + Peer-to-peer streaming antara perangkat Android sebagai master dan browser web sebagai penampil
     + Menggunakan prosedur di atas, unduh, buat, dan jalankan Android WebRTC SDK di perangkat Android. Buka **AWSKinesisVideoWebRTCDemoAplikasi** di perangkat Android ini dalam mode master (pilih **MULAI MASTER**) untuk memulai sesi baru (saluran pensinyalan).
     + Unduh, buat, dan jalankan penampil [Amazon Kinesis Video Streams dengan WebRTC JavaScript SDK untuk aplikasi web](kvswebrtc-sdk-js.md) as dan verifikasi bahwa pemirsa dapat melihat audio/video master Android. 

## Konfigurasikan Amazon Cognito untuk SDK
<a name="build-sdk-android-cognito"></a>

### Prasyarat
<a name="androidsdk-prerequisites"></a>
+ Kami merekomendasikan [Android Studio](https://developer.android.com/studio/index.html) untuk memeriksa, mengedit, dan menjalankan kode aplikasi. Kami merekomendasikan menggunakan versi stabil terbaru.
+ Dalam kode contoh, Anda memberikan kredensi Amazon Cognito.

Ikuti prosedur ini untuk menyiapkan kumpulan pengguna Amazon Cognito dan kumpulan identitas.

### Siapkan kumpulan pengguna
<a name="setup-user-pool"></a>

**Untuk mengatur kumpulan pengguna**

1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home) dan verifikasi wilayah tersebut benar.

1. Di navigasi di sebelah kiri pilih **Kumpulan pengguna**.

1. Di bagian **User pool**, pilih **Create user pool**.

1. Lengkapi bagian berikut:

   1. **Langkah 1: Konfigurasikan pengalaman masuk** - Di bagian opsi **masuk kumpulan pengguna Cognito**, pilih opsi yang sesuai.

      Pilih **Selanjutnya**.

   1. **Langkah 2: Konfigurasikan persyaratan keamanan** - Pilih opsi yang sesuai.

      Pilih **Selanjutnya**.

   1. **Langkah 3: Konfigurasikan pengalaman pendaftaran** - Pilih opsi yang sesuai.

      Pilih **Selanjutnya**.

   1. **Langkah 4: Konfigurasikan pengiriman pesan** - Pilih opsi yang sesuai.

      Di bidang **pemilihan peran IAM**, pilih peran yang ada atau buat peran baru.

      Pilih **Selanjutnya**.

   1. **Langkah 5: Integrasikan aplikasi Anda** - Pilih opsi yang sesuai.

      Di bidang **Klien aplikasi awal**, pilih **Klien rahasia**.

      Pilih **Selanjutnya**.

   1. **Langkah 6: Tinjau dan buat** - Tinjau pilihan Anda dari bagian sebelumnya, lalu pilih **Buat kumpulan pengguna**.

1. Pada halaman **User pool**, pilih pool yang baru saja Anda buat.

   Salin **ID kumpulan Pengguna** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CognitoUserPool.Default.PoolId`.

1. Pilih tab **Integrasi aplikasi** dan pergi ke bagian bawah halaman.

1. Di bagian **Daftar klien Aplikasi**, pilih **nama klien Aplikasi** yang baru saja Anda buat.

   Salin **ID Klien** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CognitoUserPool.Default.AppClientId`.

1. Tunjukkan **rahasia Klien** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CognitoUserPool.Default.AppClientSecret`.

### Siapkan kolam identitas
<a name="setup-identity-pool"></a>

**Untuk mengatur kumpulan identitas**

1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home) dan verifikasi wilayah tersebut benar.

1. Di navigasi di sebelah kiri pilih **Identity pool**.

1. Pilih **Buat kumpulan identitas**.

1. Konfigurasikan kumpulan identitas.

   1. **Langkah 1: Konfigurasikan kepercayaan kumpulan identitas** - Lengkapi bagian berikut:
      + **Akses pengguna - Pilih Akses** yang **Diautentikasi**
      + **Sumber identitas yang diautentikasi** - Pilih kumpulan **pengguna Amazon Cognito**

      Pilih **Selanjutnya**.

   1. **Langkah 2: Konfigurasikan izin** - Di bagian **peran yang diautentikasi**, lengkapi bidang berikut:
      + Peran **IAM - Pilih Buat peran** **IAM baru**
      + **Nama peran IAM** - Masukkan nama dan catat untuk langkah selanjutnya.

      Pilih **Selanjutnya**.

   1. **Langkah 3: Hubungkan penyedia identitas** - Di bagian **Rincian kumpulan pengguna**, lengkapi bidang berikut: 
      + **ID kumpulan pengguna** - Pilih kumpulan pengguna yang Anda buat sebelumnya.
      + **ID klien aplikasi** - Pilih ID klien aplikasi yang Anda buat sebelumnya.

      Pilih **Selanjutnya**.

   1. **Langkah 4: Konfigurasikan properti** - Ketik nama di bidang **Identity pool name**.

      Pilih **Selanjutnya**.

   1. **Langkah 5: Tinjau dan buat** - Tinjau pilihan Anda di setiap bagian, lalu pilih **Buat kumpulan identitas**.

1. Pada halaman **Identity pool**, pilih kumpulan identitas baru Anda.

   Salin **ID kumpulan Identitas** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CredentialsProvider.CognitoIdentity.Default.PoolId`.

1. Perbarui izin untuk peran IAM.

   1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Di navigasi di sebelah kiri, pilih **Peran**.

   1. Temukan dan pilih peran yang Anda buat di atas.
**catatan**  
Gunakan bilah pencarian, jika perlu.

   1. Pilih kebijakan izin terlampir.

      Pilih **Edit**.

   1. Pilih tab **JSON** dan ganti kebijakan dengan yang berikut:

      ```
      {
          "Version": "2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "cognito-identity:*",
                      "kinesisvideo:*"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
      ```

      Pilih **Selanjutnya**.

   1. Pilih kotak di samping **Setel versi baru ini sebagai default** jika belum dipilih.

      Pilih **Simpan perubahan**.

# Amazon Kinesis Video Streams WebRTC SDK untuk iOS
<a name="kvswebrtc-sdk-ios"></a>

 step-by-stepPetunjuk berikut menjelaskan cara mengunduh, membuat, dan menjalankan SDK WebRTC Kinesis Video Streams di iOS dan sampelnya yang sesuai.

## Unduh SDK
<a name="download-sdk-js"></a>

Untuk mengunduh SDK WebRTC di iOS, jalankan perintah berikut:

```
$ git clone https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-ios.git
```

## Membangun SDK
<a name="build-sdk-ios"></a>

Selesaikan langkah-langkah berikut:

1. Impor SDK WebRTC iOS ke lingkungan pengembangan terintegrasi (IDE) XCode di komputer iOS dengan `KinesisVideoWebRTCDemoApp.xcworkspace` membuka (path: - /Swift/ App.xcWorkspace). amazon-kinesis-video-streams webrtc-sdk-ios AWSKinesis VideoWeb RTCDemo

1. Jika Anda membuka proyek untuk pertama kalinya, proyek akan dibangun secara otomatis. Jika tidak, mulailah membangun.

   Anda mungkin melihat kesalahan berikut: 

   ```
   error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
   ```

   Jika Anda melihat ini, lakukan hal berikut:

   1. Ubah direktori kerja Anda saat ini menjadi `amazon-kinesis-video-streams-webrtc-sdk-ios/Swift` dan jalankan yang berikut di baris perintah:

      ```
      pod cache clean --all
      pod install
      ```

   1. Ubah direktori kerja Anda saat ini menjadi `amazon-kinesis-video-streams-webrtc-sdk-ios` dan jalankan yang berikut di baris perintah:

      ```
      $ git checkout Swift/Pods/AWSCore/AWSCore/Service/AWSService.m
      ```

   1. `Build`lagi.

1. Konfigurasikan setelan Amazon Cognito (kumpulan pengguna dan kumpulan identitas). Untuk langkah-langkah detail, lihat[Konfigurasikan Amazon Cognito untuk SDK](#build-sdk-ios-cognito). Ini menghasilkan pengaturan otentikasi dan otorisasi yang diperlukan untuk membangun SDK WebRTC iOS.

1. Di IDE Anda, buka `awsconfiguration.json` file (dari`/Swift/KVSiOSApp`). File tersebut terlihat seperti berikut:

   ```
   {
       "Version": "1.0",
       "CredentialsProvider": {
           "CognitoIdentity": {
               "Default": {
                   "PoolId": "REPLACEME",
                   "Region": "REPLACEME"
               }
           }
       },
       "IdentityManager": {
           "Default": {}
       },
       "CognitoUserPool": {
           "Default": {
               "AppClientSecret": "REPLACEME",
               "AppClientId": "REPLACEME",
               "PoolId": "REPLACEME",
               "Region": "REPLACEME"
           }
       }
   }
   ```

   Perbarui `awsconfiguration.json` dengan nilai yang dihasilkan dengan menjalankan langkah-langkah di[Konfigurasikan Amazon Cognito untuk SDK](kvswebrtc-sdk-android.md#build-sdk-android-cognito).

1. Di IDE Anda, buka `Constants.swift` file (dari`/Swift/KVSiOSApp`). File tersebut terlihat seperti berikut:

   ```
   import Foundation
   import AWSCognitoIdentityProvider
   
   let CognitoIdentityUserPoolRegion = AWSRegionType.USWest2
   let CognitoIdentityUserPoolId = "REPLACEME"
   let CognitoIdentityUserPoolAppClientId = "REPLACEME"
   let CognitoIdentityUserPoolAppClientSecret = "REPLACEME"
   
   let AWSCognitoUserPoolsSignInProviderKey = "UserPool"
   let CognitoIdentityPoolID = "REPLACEME"
   
   let AWSKinesisVideoEndpoint = "https://kinesisvideo.us-west-2.amazonaws.com"
   let AWSKinesisVideoKey = "kinesisvideo"
   
   let VideoProtocols =  ["WSS", "HTTPS"]
   
   let ConnectAsMaster = "connect-as-master"
   let ConnectAsViewer = "connect-as-viewer"
   
   let MasterRole = "MASTER"
   let ViewerRole = "VIEWER"
   
   let ClientID = "ConsumerViewer"
   ```

   Perbarui `Constants.swift` dengan nilai yang dihasilkan dengan menjalankan langkah-langkah di[Konfigurasikan Amazon Cognito untuk SDK](kvswebrtc-sdk-android.md#build-sdk-android-cognito).

1. Pastikan perangkat iOS Anda terhubung ke komputer Mac tempat Anda menjalankan XCode. Di XCode, pilih perangkat yang terhubung lalu buat dan jalankan WebRTC iOS SDK.

   Langkah ini menginstal aplikasi yang dipanggil `AWSKinesisVideoWebRTCDemoApp` di perangkat iOS Anda. Dengan menggunakan aplikasi ini, Anda dapat memverifikasi streaming WebRTC langsung antara audio/video klien perangkat seluler, web, dan IoT.

## Jalankan aplikasi sampel
<a name="run-sdk-ios"></a>

****

Selesaikan langkah-langkah berikut:

1. Di perangkat iOS Anda, buka **AWSKinesisVideoWebRTCDemoAplikasi** dan masuk menggunakan akun baru (dengan membuatnya terlebih dahulu) atau akun Amazon Cognito yang sudah ada.

1. Di **AWSKinesisVideoWebRTCDemoApp**, navigasikan ke halaman **Konfigurasi Saluran** dan buat saluran pensinyalan baru atau pilih yang sudah ada.
**catatan**  
**Saat ini, dengan menggunakan contoh aplikasi di SDK ini, Anda hanya dapat menjalankan satu saluran pensinyalan di AWSKinesis VideoWeb RTCDemo App.**

1. (Opsional) Pilih **ID Klien** unik jika Anda ingin terhubung ke saluran ini sebagai penampil. ID Klien hanya diperlukan jika beberapa pemirsa terhubung ke saluran. Ini membantu master saluran mengidentifikasi masing-masing pemirsa.

1. Pilih Wilayah AWS dan apakah Anda ingin mengirim data audio atau video, atau keduanya.

1. Untuk memverifikasi peer-to-peer streaming, lakukan salah satu hal berikut:
**catatan**  
Pastikan Anda menentukan nama saluran pensinyalan, AWS wilayah, ID penampil, dan ID AWS akun yang sama pada semua klien yang Anda gunakan dalam demo ini.
   + Peer-to-peer streaming antara dua perangkat iOS: master dan viewer
     + Menggunakan prosedur di atas, unduh, buat, dan jalankan SDK WebRTC iOS di dua perangkat iOS. 
     + Buka **AWSKinesisVideoWebRTCDemoAplikasi** di satu perangkat iOS dalam mode master (pilih **MULAI MASTER**) untuk memulai sesi baru (saluran pensinyalan).
**catatan**  
Saat ini, hanya ada satu master untuk saluran pensinyalan tertentu.
     + Buka **AWSKinesisVideoWebRTCDemoAplikasi** di perangkat iOS kedua Anda dalam mode penampil untuk terhubung ke saluran pensinyalan (sesi) yang dimulai pada langkah di atas (pilih **MULAI PENAMPIL**).

       Verifikasi bahwa pemirsa dapat melihat audio/video data master.
   + Peer-to-peer streaming antara master SDK yang disematkan dan penampil perangkat iOS
     + Unduh, buat, dan jalankan mode master [Amazon Kinesis Video Streams dengan WebRTC SDK di C untuk perangkat yang disematkan](kvswebrtc-sdk-c.md) di perangkat kamera. 
     + Menggunakan prosedur di atas, unduh, buat, dan jalankan SDK WebRTC iOS di perangkat iOS. Buka **AWSKinesisVideoWebRTCDemoAplikasi** di perangkat iOS ini dalam mode penampil dan verifikasi bahwa penampil iOS dapat melihat audio/video data master SDK yang disematkan.
   + Peer-to-peer streaming antara perangkat iOS sebagai master dan browser web sebagai penampil
     + Menggunakan prosedur di atas, unduh, buat, dan jalankan SDK WebRTC iOS di perangkat iOS. Buka **AWSKinesisVideoWebRTCDemoAplikasi** di perangkat iOS ini dalam mode master (pilih **MULAI MASTER**) untuk memulai sesi baru (saluran pensinyalan).
     + Unduh, buat, dan jalankan penampil [Amazon Kinesis Video Streams dengan WebRTC JavaScript SDK untuk aplikasi web](kvswebrtc-sdk-js.md) as dan verifikasi bahwa JavaScript pemirsa dapat melihat audio/video master Android. 

## Konfigurasikan Amazon Cognito untuk SDK
<a name="build-sdk-ios-cognito"></a>

### Prasyarat
<a name="iossdk-prerequisites"></a>
+ Kami merekomendasikan XCode untuk memeriksa, mengedit, dan menjalankan kode aplikasi. Kami merekomendasikan versi terbaru.
+ Dalam kode contoh, Anda memberikan kredensi Amazon Cognito.

Ikuti prosedur ini untuk menyiapkan kumpulan pengguna Amazon Cognito dan kumpulan identitas.

### Siapkan kumpulan pengguna
<a name="setup-user-pool"></a>

**Untuk mengatur kumpulan pengguna**

1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home) dan verifikasi wilayah tersebut benar.

1. Di navigasi di sebelah kiri pilih **Kumpulan pengguna**.

1. Di bagian **User pool**, pilih **Create user pool**.

1. Lengkapi bagian berikut:

   1. **Langkah 1: Konfigurasikan pengalaman masuk** - Di bagian opsi **masuk kumpulan pengguna Cognito**, pilih opsi yang sesuai.

      Pilih **Selanjutnya**.

   1. **Langkah 2: Konfigurasikan persyaratan keamanan** - Pilih opsi yang sesuai.

      Pilih **Selanjutnya**.

   1. **Langkah 3: Konfigurasikan pengalaman pendaftaran** - Pilih opsi yang sesuai.

      Pilih **Selanjutnya**.

   1. **Langkah 4: Konfigurasikan pengiriman pesan** - Pilih opsi yang sesuai.

      Di bidang **pemilihan peran IAM**, pilih peran yang ada atau buat peran baru.

      Pilih **Selanjutnya**.

   1. **Langkah 5: Integrasikan aplikasi Anda** - Pilih opsi yang sesuai.

      Di bidang **Klien aplikasi awal**, pilih **Klien rahasia**.

      Pilih **Selanjutnya**.

   1. **Langkah 6: Tinjau dan buat** - Tinjau pilihan Anda dari bagian sebelumnya, lalu pilih **Buat kumpulan pengguna**.

1. Pada halaman **User pool**, pilih pool yang baru saja Anda buat.

   Salin **ID kumpulan Pengguna** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CognitoUserPool.Default.PoolId`.

1. Pilih tab **Integrasi aplikasi** dan pergi ke bagian bawah halaman.

1. Di bagian **Daftar klien Aplikasi**, pilih **nama klien Aplikasi** yang baru saja Anda buat.

   Salin **ID Klien** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CognitoUserPool.Default.AppClientId`.

1. Tunjukkan **rahasia Klien** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CognitoUserPool.Default.AppClientSecret`.

### Siapkan kolam identitas
<a name="setup-identity-pool"></a>

**Untuk mengatur kumpulan identitas**

1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home) dan verifikasi wilayah tersebut benar.

1. Di navigasi di sebelah kiri pilih **Identity pool**.

1. Pilih **Buat kumpulan identitas**.

1. Konfigurasikan kumpulan identitas.

   1. **Langkah 1: Konfigurasikan kepercayaan kumpulan identitas** - Lengkapi bagian berikut:
      + **Akses pengguna - Pilih Akses** yang **Diautentikasi**
      + **Sumber identitas yang diautentikasi** - Pilih kumpulan **pengguna Amazon Cognito**

      Pilih **Selanjutnya**.

   1. **Langkah 2: Konfigurasikan izin** - Di bagian **peran yang diautentikasi**, lengkapi bidang berikut:
      + Peran **IAM - Pilih Buat peran** **IAM baru**
      + **Nama peran IAM** - Masukkan nama dan catat untuk langkah selanjutnya.

      Pilih **Selanjutnya**.

   1. **Langkah 3: Hubungkan penyedia identitas** - Di bagian **Rincian kumpulan pengguna**, lengkapi bidang berikut: 
      + **ID kumpulan pengguna** - Pilih kumpulan pengguna yang Anda buat sebelumnya.
      + **ID klien aplikasi** - Pilih ID klien aplikasi yang Anda buat sebelumnya.

      Pilih **Selanjutnya**.

   1. **Langkah 4: Konfigurasikan properti** - Ketik nama di bidang **Identity pool name**.

      Pilih **Selanjutnya**.

   1. **Langkah 5: Tinjau dan buat** - Tinjau pilihan Anda di setiap bagian, lalu pilih **Buat kumpulan identitas**.

1. Pada halaman **Identity pool**, pilih kumpulan identitas baru Anda.

   Salin **ID kumpulan Identitas** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CredentialsProvider.CognitoIdentity.Default.PoolId`.

1. Perbarui izin untuk peran IAM.

   1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Di navigasi di sebelah kiri, pilih **Peran**.

   1. Temukan dan pilih peran yang Anda buat di atas.
**catatan**  
Gunakan bilah pencarian, jika perlu.

   1. Pilih kebijakan izin terlampir.

      Pilih **Edit**.

   1. Pilih tab **JSON** dan ganti kebijakan dengan yang berikut:

      ```
      {
          "Version": "2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "cognito-identity:*",
                      "kinesisvideo:*"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
      ```

      Pilih **Selanjutnya**.

   1. Pilih kotak di samping **Setel versi baru ini sebagai default** jika belum dipilih.

      Pilih **Simpan perubahan**.

# Metrik klien untuk C SDK
<a name="kvswebrtc-reference"></a>

Aplikasi yang dibangun dengan Amazon Kinesis Video Streams dengan WebRTC terdiri dari berbagai bagian yang bergerak, termasuk jaringan, pensinyalan, pertukaran kandidat, koneksi rekan, dan pertukaran data. Kinesis Video Streams dengan WebRTC di C mendukung berbagai metrik sisi klien yang memungkinkan Anda memantau dan melacak kinerja dan penggunaan komponen ini dalam aplikasi Anda. [Metrik yang didukung terbagi dalam dua kategori utama: metrik khusus yang didefinisikan secara khusus untuk implementasi sinyal dan jaringan Kinesis Video Streams, dan metrik spesifik protokol terkait media dan data yang berasal dari standar W3C.](https://www.w3.org/TR/webrtc-stats/) Perhatikan bahwa hanya sebagian dari metrik standar W3C yang saat ini didukung untuk Kinesis Video Streams dengan WebRTC di C. 

**Topics**
+ [Metrik pensinyalan](#kvswebrtc-reference-signaling)
+ [Metrik standar W3C didukung untuk C SDK](#kvswebrtc-reference-w3cstandard)

## Metrik pensinyalan
<a name="kvswebrtc-reference-signaling"></a>

Metrik pensinyalan dapat digunakan untuk memahami bagaimana klien pensinyalan berperilaku saat aplikasi Anda berjalan. Anda dapat menggunakan `STATUS signalingClientGetMetrics (SIGNALING_CLIENT_HANDLE, PSignalingClientMetrics)` API untuk mendapatkan metrik pensinyalan ini. Berikut adalah contoh pola penggunaan:

```
SIGNALING_CLIENT_HANDLE signalingClientHandle;
SignalingClientMetrics signalingClientMetrics;
STATUS retStatus = signalingClientGetMetrics(signalingClientHandle, &signalingClientMetrics);
printf("Signaling client connection duration: %" PRIu64 " ms",
       (signalingClientMetrics.signalingClientStats.connectionDuration / HUNDREDS_OF_NANOS_IN_A_MILLISECOND));
```

Definisi `signalingClientStats` dapat ditemukan di [Stats.h.](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/src/include/com/amazonaws/kinesis/video/webrtcclient/Stats.h)

Metrik pensinyalan berikut saat ini didukung:


****  

| Metrik | Deskripsi | 
| --- | --- | 
| cpApiCallLatensi | Hitung latensi untuk panggilan API bidang kontrol. Perhitungan dilakukan dengan menggunakan Exponential Moving Average (EMA). Panggilan terkait meliputi: DescribeChannel, createChannel, dan deleteChannel. getChannelEndpoint  | 
| dpApiCallLatensi | Hitung latensi untuk panggilan API bidang data. Perhitungan dilakukan dengan menggunakan Exponential Moving Average (EMA). Panggilan terkait meliputi: getIceConfig. | 
| signalingClientUptime | Ini menunjukkan waktu keberadaan objek klien. Setiap kali metrik ini dipanggil, nilai uptime terbaru dipancarkan. | 
| KoneksiDurasi | Jika koneksi dibuat, ini memancarkan durasi koneksi hidup. Lain, nilai 0 dipancarkan. Ini berbeda dengan memberi sinyal uptime klien karena, koneksi datang dan pergi, tetapi signalingClientUptime merupakan indikasi dari objek klien itu sendiri. | 
| numberOfMessagesDikirim | Nilai ini diperbarui ketika rekan mengirimkan penawaran, jawaban, atau kandidat ICE. | 
| numberOfMessagesDiterima | Tidak seperti numberOfMessages Terkirim, metrik ini diperbarui untuk semua jenis pesan pensinyalan. Jenis pesan pensinyalan tersedia diSIGNALING\$1MESSAGE\$1TYPE. | 
| iceRefreshCount | Ini bertambah saat getIceConfig dipanggil. Tingkat di mana ini dipanggil didasarkan pada TTL sebagai bagian dari konfigurasi ICE yang diterima. Setiap kali satu set konfigurasi ICE baru diterima, timer diatur untuk menyegarkan waktu berikutnya, mengingat validitas kredensil dalam konfigurasi dikurangi beberapa masa tenggang.  | 
| numberOfErrors | Penghitung digunakan untuk melacak jumlah kesalahan yang dihasilkan dalam klien pensinyalan. Kesalahan yang dihasilkan saat mendapatkan konfigurasi ICE, mendapatkan status pensinyalan, melacak metrik pensinyalan, mengirim pesan pensinyalan, dan menghubungkan klien pensinyalan ke soket web agar pesan dilacak. send/receive  | 
| numberOfRuntimeKesalahan | Metrik mencakup kesalahan yang terjadi saat inti klien pensinyalan sedang berjalan. Skenario seperti kegagalan menyambung kembali, kegagalan penerimaan pesan, dan kesalahan penyegaran konfigurasi ICE dilacak di sini. | 
| numberOfReconnects | Metrik bertambah pada setiap penyambungan kembali. Ini adalah metrik yang berguna untuk memahami stabilitas koneksi jaringan dalam pengaturan. | 

## Metrik standar W3C didukung untuk C SDK
<a name="kvswebrtc-reference-w3cstandard"></a>

Subset dari metrik standar [W3C](https://www.w3.org/TR/webrtc-stats/) saat ini didukung untuk aplikasi yang dibangun dengan WebRTC C SDK. Ini termasuk dalam kategori berikut:
+ Jaringan:
  + [Kandidat Es](https://www.w3.org/TR/webrtc-stats/#icecandidate-dict*): metrik ini memberikan informasi tentang kandidat lokal dan jarak jauh yang dipilih untuk pertukaran data antara rekan-rekan. Ini termasuk sumber server kandidat, alamat IP, jenis kandidat yang dipilih untuk komunikasi, dan prioritas kandidat. Metrik ini berguna sebagai laporan snapshot.
  + [Ice Server](https://www.w3.org/TR/webrtc-stats/#ice-server-dict*): metrik ini untuk mengumpulkan informasi operasional tentang berbagai server ICE yang didukung. Ini berguna ketika mencoba memahami server yang terutama digunakan untuk pemeriksaan komunikasi dan konektivitas. Dalam beberapa kasus, juga berguna untuk memeriksa metrik ini jika pengumpulan kandidat gagal. 
  + [Pasangan Kandidat Es](https://www.w3.org/TR/webrtc-stats/#candidatepair-dict*): metrik ini untuk memahami jumlah bytes/packets yang dipertukarkan antara rekan-rekan dan juga pengukuran terkait waktu.
+ Media dan data:
  + [RTP Inbound Jarak Jauh](https://www.w3.org/TR/webrtc-stats/#remoteinboundrtpstats-dict*): metrik ini mewakili perspektif titik akhir dari aliran data yang dikirim oleh pengirim.
  + [Outbound RTP](https://www.w3.org/TR/webrtc-stats/#dom-rtcoutboundrtpstreamstats): metrik ini memberikan informasi tentang aliran RTP keluar. Mereka juga bisa sangat berguna saat menganalisis streaming berombak atau streaming berhenti.
  + [RTP masuk](https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats): metrik ini memberikan informasi tentang media yang masuk. 
  + [Metrik saluran data](https://www.w3.org/TR/webrtc-stats/#dcstats-dict*): metrik ini dapat membantu Anda menganalisis jumlah pesan dan byte yang dikirim dan diterima melalui saluran data. Metrik dapat ditarik dengan menggunakan ID saluran.

Anda dapat menggunakan `STATUS rtcPeerConnectionGetMetrics (PRtcPeerConnection, PRtcRtpTransceiver, PRtcStats)` API untuk mengumpulkan metrik yang terkait dengan ICE, RTP, dan saluran data. Berikut adalah contoh penggunaan:

```
RtcStats rtcStats;
rtcStats.requestedTypeOfStats = RTC_STATS_TYPE_LOCAL_CANDIDATE;
STATUS retStatus = rtcPeerConnectionGetMetrics (pRtcPeerConnection, NULL, &rtcStats);
printf(“Local Candidate address: %s\n”, rtcStats.rtcStatsObject.localIceCandidateStats.address);
```

Berikut contoh lain yang menunjukkan pola penggunaan untuk mendapatkan statistik terkait transceiver:

```
RtcStats rtcStats;
PRtcRtpTransceiver pVideoRtcRtpTransceiver;
rtcStats.requestedTypeOfStats = RTC_STATS_TYPE_OUTBOUND_RTP;
STATUS retStatus = rtcPeerConnectionGetMetrics (pRtcPeerConnection, pVideoRtcRtpTransceiver, &rtcStats);
printf(“Number of packets discarded on send: %s\n”, rtcStats.rtcStatsObject.outboundRtpStreamStats.packetsDiscardedOnSend);
```

Dalam contoh di atas, jika argumen kedua untuk rtcPeerConnection GetMetrics () adalah NULL, data untuk transceiver pertama dalam daftar dikembalikan.

[Definisi untuk rtcStatsObject dapat ditemukan di [Stats.h](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/src/include/com/amazonaws/kinesis/video/webrtcclient/Stats.h). dan definisi untuk RtcStats dapat ditemukan di Include.h.](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h) 

[Penggunaan sampel dari APIs dan metrik yang berbeda dapat ditemukan di direktori [sampel](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/tree/master/samples) di repositori WebRTC C SDK dan di repositori demo Kinesis Video Stream.](https://github.com/aws-samples/amazon-kinesis-video-streams-demos/tree/master/canary/webrtc-c/src)

Metrik standar [W3C](https://www.w3.org/TR/webrtc-stats/) berikut saat ini didukung untuk aplikasi yang dibangun dengan WebRTC C SDK.

**Topics**
+ [Jaringan](#kvswebrtc-reference-ice)
+ [Media](#kvswebrtc-reference-media)
+ [Saluran data](#kvswebrtc-reference-datachannel)

### Jaringan
<a name="kvswebrtc-reference-ice"></a>

Metrik Server ICE:


****  

| Metrik | Deskripsi | 
| --- | --- | 
| URL | URL dari STUN/TURN server yang sedang dilacak | 
| Port | Nomor port yang digunakan oleh klien | 
| Protokol | Protokol transportasi diekstrak dari URI ICE Server. Jika nilainya UDP, ICE mencoba TURN over UDP, kalau tidak ICE mencoba TURN over. TCP/TLS. If the URI does not contain transport, ICE tries TURN over UDP and TCP/TLS Dalam kasus STUN server, bidang ini kosong. | 
| Total Permintaan Terkirim | Nilai diperbarui untuk setiap permintaan kandidat srflx dan saat mengirim permintaan yang mengikat dari kandidat giliran. | 
| Total Tanggapan Diterima | Nilai diperbarui setiap kali respons pengikatan STUN diterima. | 
| Total Waktu Perjalanan Pulang Pergi | Nilai diperbarui setiap kali respons yang setara diterima untuk permintaan. Paket permintaan dilacak dalam peta hash dengan checksum sebagai kuncinya. | 

Statistik Kandidat ICE: Hanya informasi tentang kandidat yang dipilih (lokal dan jarak jauh) yang disertakan.


****  

| Metrik | Deskripsi | 
| --- | --- | 
| alamat | Ini menunjukkan alamat IP kandidat lokal dan jarak jauh. | 
| port | Nomor port kandidat | 
| protokol | Protokol digunakan untuk mendapatkan kandidat. Nilai yang valid adalah UDP/TCP. | 
| Jenis KandidateType | Jenis kandidat yang dipilih - host, srflx atau relay. | 
| prioritas | Prioritas kandidat lokal dan jarak jauh yang dipilih. | 
| url | Sumber kandidat lokal yang dipilih. Ini memberikan indikasi apakah kandidat yang dipilih diterima dari server STUN atau server TURN. | 
| RelayProtocol | Jika server TURN digunakan untuk mendapatkan kandidat lokal yang dipilih, bidang ini menunjukkan protokol apa yang digunakan untuk mendapatkannya. Nilai yang valid adalah TCP/UDP. | 

Statistik Pasangan Calon ICE: Hanya informasi tentang pasangan calon yang dipilih yang disertakan.


****  

| Metrik | Deskripsi | 
| --- | --- | 
| localCandidateId | ID kandidat lokal yang dipilih dalam pasangan. | 
| remoteCandidateId | ID kandidat jarak jauh yang dipilih dalam pasangan.  | 
| negara | Keadaan pasangan calon yang sedang diperiksa. | 
| dinominasikan | Setel ke TRUE karena statistik ditarik untuk pasangan kandidat yang dipilih. | 
| PaketsSent | Jumlah paket yang dikirim Ini dihitung dalam . panggilan dalam writeFrame panggilan. Informasi ini juga dapat diekstraksi dari Statistik RTP keluar, tetapi karena pasangan kandidat Ice menyertakan lastPacketSent stempel waktu, mungkin berguna untuk menghitung jumlah paket yang dikirim antara dua titik waktu. | 
| PaketDiterima | Ini diperbarui setiap kali incomingDataHandler dipanggil. | 
| olehTessent | Ini dihitung iceAgentSendPacket() dalam writeFrame() panggilan. Ini berguna saat menghitung bit rate. Saat ini, ini juga termasuk header dan padding karena lapisan ICE tidak menyadari format paket RTP. | 
| BytesDiterima | Ini diperbarui setiap kali incomingDataHandler dipanggil. Saat ini, ini juga termasuk header dan padding karena lapisan ICE tidak menyadari format paket RTP. | 
| lastPacketSentStempel waktu | Ini diperbarui setiap kali paket dikirim. Ini dapat digunakan bersama dengan PacketsSent dan waktu mulai yang direkam dalam aplikasi ke laju transfer paket saat ini. | 
| lastPacketReceivedStempel waktu | Ini diperbarui saat menerima data diincomingDataHandler(). Ini dapat digunakan bersama dengan PacketsReceived untuk menyimpulkan tingkat penerimaan paket saat ini. Waktu mulai harus direkam di lapisan aplikasi di transceiverOnFrame() callback. | 
| firstRequestTimestamp | Terekam ketika permintaan pengikatan STUN pertama berhasil dikirim masuk. iceAgentSendStunPacket() Ini dapat digunakan bersama dengan lastRequestTimestamp dan requestsSent untuk menemukan waktu rata-rata antara permintaan pengikatan STUN. | 
| lastRequestTimestamp | Direkam setiap kali permintaan pengikatan STUN berhasil dikirim masuk. iceAgentSendStunPacket() | 
| lastResponseTimestamp | Direkam setiap kali respons pengikatan STUN diterima. | 
| totalRoundTripWaktu | Diperbarui saat respons yang mengikat diterima untuk permintaan. Permintaan dan respons dipetakan dalam tabel hash berdasarkan checksum.  | 
| currentRoundTripWaktu | Waktu perjalanan pulang pergi terbaru diperbarui ketika tanggapan yang mengikat diterima untuk permintaan pada pasangan kandidat.  | 
| Permintaan Diterima | Penghitung yang diperbarui pada setiap permintaan pengikatan STUN yang diterima. | 
| PermintaanSent | Penghitung yang diperbarui pada setiap permintaan pengikatan STUN yang dikirim masukiceAgentSendStunPacket().  | 
| TanggapanTerkirim | Penghitung yang diperbarui pada setiap respons pengikatan STUN yang dikirim sebagai tanggapan atas permintaan yang mengikat dihandleStunPacket(). | 
| TanggapanDiterima | Penghitung yang diperbarui pada setiap respons pengikatan STUN yang diterima dihandleStunPacket().  | 
| packetsDiscardedOnKirim |  Diperbarui saat pengiriman paket gagal. Dengan kata lain, ini diperbarui ketika iceUtilsSendData() gagal. Ini berguna untuk menentukan persentase paket yang dijatuhkan dalam durasi tertentu. | 
| bytesDiscardedOnKirim | Diperbarui saat pengiriman paket gagal. Dengan kata lain, ini diperbarui ketika iceUtilsSendData() gagal. Ini berguna saat menentukan persentase paket yang dijatuhkan dalam durasi tertentu. Perhatikan bahwa penghitung juga menyertakan header paket. | 

### Media
<a name="kvswebrtc-reference-media"></a>

Statistik RTP Keluar


****  

| Metrik | Deskripsi | 
| --- | --- | 
| voiceActivityFlag | Ini saat ini merupakan bagian dari RtcEncoderStats didefinisikan dalam Include.h. Bendera diatur ke TRUE jika paket audio terakhir berisi suara. Bendera saat ini tidak diatur dalam sampel. | 
| PaketsSent | Ini menunjukkan jumlah total paket RTP yang dikirim untuk SSRC yang dipilih. Ini adalah bagian dari [https://www.w3. org/TR/webrtc-stats/ \$1sentrtpstats -dict\$1](https://www.w3.org/TR/webrtc-stats/#sentrtpstats-dict*) dan disertakan sebagai bagian dari statistik keluar. Ini bertambah setiap kali writeFrame () dipanggil. | 
| olehTessent | Jumlah total byte tidak termasuk header RTP dan padding yang dikirim. Ini diperbarui pada setiap panggilan WriteFrame. | 
| EncoderImplementasi | Ini diperbarui oleh lapisan aplikasi sebagai bagian dari RtcEncoderStats objek.  | 
| packetsDiscardedOnKirim | Bidang ini diperbarui jika agen ICE gagal mengirim paket RTP terenkripsi karena alasan apa pun dalam panggilan. iceAgentSendPacket | 
| bytesDiscardedOnKirim | Bidang ini juga diperbarui jika agen ICE gagal mengirim paket RTP terenkripsi karena alasan apa pun dalam panggilan tersebut. iceAgentSendPacket | 
| FrameSent | Ini bertambah hanya jika jenis taktik aliran media adalah MEDIA\$1STREAM\$1TRACK\$1KIND\$1VIDEO. | 
| hugeFramesSent | Penghitung ini diperbarui untuk bingkai yang 2,5 kali ukuran rata-rata bingkai. Ukuran frame diperoleh dengan menghitung fps (berdasarkan waktu hitungan frame terakhir yang diketahui dan jumlah frame yang dikodekan dalam interval waktu) dan menggunakan targetBitRate yang RtcEncoderStats ditetapkan oleh aplikasi.  | 
| FrameDisandikan | Penghitung ini diperbarui hanya untuk trek video setelah pengkodean frame berhasil. Ini diperbarui pada setiap panggilan WriteFrame. | 
| keyFramesEncoded | Penghitung ini diperbarui hanya untuk trek video setelah berhasil menyandikan bingkai kunci. Ini diperbarui pada setiap panggilan WriteFrame. | 
| framesDiscardedOnKirim | Ini diperbarui ketika pengiriman bingkai gagal karena kegagalan iceAgentSendPacket panggilan. Sebuah frame terdiri dari sekelompok paket dan saat ini, framesDiscardedOn Send gagal jika ada paket yang dibuang saat mengirim karena kesalahan. | 
| FrameWidth | Ini idealnya mewakili lebar bingkai dari bingkai yang dikodekan terakhir. Saat ini, ini diatur ke nilai oleh aplikasi sebagai bagian dari RtcEncoderStats \$1 \$1 dan tidak terlalu penting. | 
| FrameHeight | Ini idealnya mewakili ketinggian bingkai dari bingkai yang dikodekan terakhir. Saat ini, ini diatur ke nilai oleh aplikasi sebagai bagian dari RtcEncoderStats dan tidak terlalu penting. | 
| frameBitDepth |  Ini mewakili kedalaman bit per lebar piksel dari bingkai yang dikodekan terakhir. Saat ini, ini diatur oleh aplikasi sebagai bagian dari RtcEncoderStats dan diterjemahkan ke dalam statistik keluar.  | 
| NackCount | Nilai ini diperbarui setiap kali NACK diterima pada paket RTP dan upaya ulang untuk mengirim paket dilakukan. Tumpukan mendukung transmisi ulang paket saat menerima NACK. | 
| FirCount | Nilai diperbarui saat menerima paket FIR (onRtcpPacket-> FIRPacket onRTCP). Ini menunjukkan seberapa sering aliran tertinggal dan harus melewati bingkai untuk mengejar ketinggalan. Paket FIR saat ini tidak diterjemahkan untuk mengekstrak bidang, jadi, meskipun hitungan diatur, tidak ada tindakan yang diambil. | 
| PliCount | Nilai diperbarui saat menerima paket PLI (-> onRTCP)onRtcpPacket. PLIPacket Ini menunjukkan bahwa sejumlah data video yang dikodekan telah hilang untuk satu atau lebih frame. | 
| SliCount | Nilai diperbarui saat menerima paket SLI (-> onRTCP)onRtcpPacket. SLIPacket Ini menunjukkan seberapa sering kehilangan paket mempengaruhi satu frame. | 
| qualityLimitationResolutionPerubahan | Saat ini, tumpukan mendukung metrik ini, namun, lebar dan tinggi bingkai tidak dipantau untuk setiap bingkai yang dikodekan. | 
| lastPacketSentStempel waktu | Stempel waktu di mana paket terakhir dikirim. Ini diperbarui pada setiap panggilan WriteFrame. | 
| headerBytesSent | Jumlah total header RTP dan byte padding yang dikirim untuk SSRC ini tidak termasuk muatan RTP yang sebenarnya. | 
| bytesDiscardedOnKirim | Ini diperbarui ketika pengiriman bingkai gagal karena kegagalan panggilan iceAgentSend paket. Sebuah frame terdiri dari sekelompok paket, yang pada gilirannya terdiri dari byte dan saat ini, bytesDiscardedOn Send gagal jika ada paket yang dibuang saat mengirim karena kesalahan. | 
| retransmittedPacketsSent | Jumlah paket yang ditransmisikan kembali pada penerimaan. PLI/SLI/NACK Saat ini, tumpukan hanya menghitung paket resent NACK karena transmisi ulang berbasis PLI dan SLI tidak didukung. | 
| retransmittedBytesSent | Jumlah byte yang ditransmisikan kembali pada penerimaan. PLI/SLI/NACK Saat ini, tumpukan hanya menghitung byte resent dari NACK karena transmisi ulang berbasis PLI dan SLI tidak didukung. | 
| TargetBitrate | Ini diatur dalam tingkat aplikasi. | 
| totalEncodedBytesTarget | Ini ditingkatkan dengan ukuran frame target dalam byte setiap kali frame dikodekan. Ini diperbarui menggunakan parameter ukuran dalam struktur Frame. | 
| framesPerSecond | Ini dihitung berdasarkan waktu yang direkam untuk bingkai terenkode terakhir yang diketahui dan jumlah frame yang dikirim dalam satu detik. | 
| totalEncodeTime | Ini diatur ke nilai arbitrer dalam aplikasi dan diterjemahkan ke statistik keluar secara internal. | 
| totalPacketSendKeterlambatan | Ini saat ini diatur ke 0 karena iceAgentSend Packet mengirim paket segera. | 

Statistik RTP masuk jarak jauh:


****  

| Metrik | Deskripsi | 
| --- | --- | 
| roundTripTime | Nilai diekstraksi dari laporan penerima RTCP saat menerima paket RTCP tipe 201 (laporan penerima). Laporan tersebut terdiri dari rincian seperti laporan pengirim terakhir dan penundaan sejak laporan pengirim terakhir untuk menghitung waktu pulang pergi. Laporan pengirim dihasilkan kira-kira setiap 200 milidetik yang terdiri dari informasi seperti jumlah paket yang dikirim dan byte yang dikirim yang diekstraksi dari statistik keluar. | 
| totalRoundTripWaktu | Jumlah waktu perjalanan pulang pergi dihitung | 
| FraksiHilang | Merupakan fraksi paket RTP yang hilang untuk SSRC sejak ReporFractionLost sebelumnya dikirim. sender/receiver  | 
| LaporanDiterima | Diperbarui setiap kali paket jenis laporan penerima diterima. | 
| roundTripTimePengukuran | Menunjukkan jumlah total laporan yang diterima untuk SSRC yang berisi waktu pulang pergi yang valid. Namun, saat ini nilai ini bertambah terlepas sehingga artinya sama dengan ReportsReceived. | 

Statistik RTP Masuk:


****  

| Metrik | Deskripsi | 
| --- | --- | 
| PaketDiterima | Penghitung diperbarui ketika paket diterima untuk SSRC tertentu. | 
| jitter | Metrik ini menunjukkan paket Jitter yang diukur dalam hitungan detik untuk SSRC tertentu. | 
| jitterBufferDelay | Metrik ini menunjukkan jumlah waktu yang dihabiskan oleh setiap paket dalam buffer jitter. | 
| jitterBufferEmittedHitungan | Jumlah total sampel audio atau bingkai video yang keluar dari buffer jitter.  | 
| PaketDibuang | Penghitung diperbarui ketika buffer Jitter penuh dan paket tidak dapat didorong ke dalamnya. Ini dapat digunakan untuk menghitung persentase paket yang dibuang dalam durasi tetap. | 
| BingkaiDijatuhkan | Nilai ini diperbarui saat onFrameDroppedFunc() dipanggil.  | 
| lastPacketReceivedStempel waktu | Merupakan stempel waktu di mana paket terakhir diterima untuk SSRC ini. | 
| headerBytesReceived | Penghitung diperbarui saat menerima paket RTP. | 
| BytesDiterima | Jumlah byte yang diterima. Ini tidak termasuk byte header. Metrik ini dapat digunakan untuk menghitung bit rate yang masuk. | 
| packetsFailedDecryption | Ini bertambah ketika dekripsi paket SRTP gagal. | 

### Saluran data
<a name="kvswebrtc-reference-datachannel"></a>

Metrik saluran data:


****  

| Metrik | Deskripsi | 
| --- | --- | 
| label | Label adalah nama saluran data yang sedang diperiksa. | 
| protokol | Karena tumpukan kami menggunakan SCTP, protokol diatur ke SCTP konstan. | 
| dataChannelIdentifier | Pengidentifikasi genap atau ganjil digunakan untuk mengidentifikasi saluran data secara unik. Ini diperbarui ke nilai ganjil jika SDK adalah penawaran dan nilai genap jika SDK adalah penjawab. | 
| negara | Status saluran data saat statistik ditanyakan. Saat ini, dua status yang didukung adalah RTC\$1DATA\$1CHANNEL\$1STATE\$1CONNECTING (saat saluran dibuat) dan RTC\$1DATA\$1CHANNEL\$1STATE\$1OPEN (Set dalam acara onOpen ()). | 
| PesanSent | Penghitung diperbarui saat SDK mengirim pesan melalui saluran data. | 
| olehTessent | Penghitung diperbarui dengan byte dalam pesan yang dikirim. Ini dapat digunakan untuk memahami berapa banyak byte yang tidak dikirim karena kegagalan, yaitu, untuk memahami persentase byte yang dikirim. | 
| PesanDiterima | Metrik bertambah dalam onMessage() callback. | 
| BytesDiterima | Metrik dihasilkan dalam onMessage() callback. | 