Bagikan melalui


Pustaka klien Azure Communication Call Automation untuk JavaScript - versi 1.2.0

Paket ini berisi JavaScript SDK untuk Azure Communication Call Automation. Automasi Panggilan memberi pengembang kemampuan untuk membangun alur kerja panggilan cerdas berbasis server, dan perekaman panggilan untuk saluran suara dan PSTN.

Gambaran Umum Automasi | PanggilanDokumentasi produk

Memulai

Prasyarat

Menginstal

npm install @azure/communication-call-automation

Dukungan browser

Bundel JavaScript

Untuk menggunakan pustaka klien ini di browser, pertama-tama Anda perlu menggunakan bunder. Untuk detail tentang cara melakukan ini, silakan lihat dokumentasi bundling kami.

Konsep utama

Nama Deskripsi
CallAutomationClient CallAutomationClient adalah antarmuka utama untuk pengembang yang menggunakan pustaka klien ini. Ini dapat digunakan untuk memulai panggilan dengan createCall atau answerCall.
CallConnection CallConnection mewakili panggilan yang sedang berlangsung. Setelah panggilan dibuat dengan createCall atau answerCall, tindakan lebih lanjut dapat dilakukan untuk panggilan, seperti transfer atau addParticipant.
CallMedia CallMedia dapat digunakan untuk melakukan tindakan terkait media, seperti play, untuk memutar file media. Ini dapat diambil dari mapan CallConnection.
CallRecording CallRecording dapat digunakan untuk merekam tindakan terkait, seperti startRecording. Ini dapat diambil dari CallAutomationClient.
Peristiwa Panggilan Balik Peristiwa panggilan balik adalah peristiwa yang dikirim kembali selama durasi panggilan. Ini memberikan informasi dan status panggilan, seperti CallConnected. CallbackUrl harus disediakan selama createCall dan answerCall, dan peristiwa panggilan balik akan dikirim ke url ini. Anda dapat menggunakan callAutomationEventParser untuk mengurai peristiwa ini ketika tiba.
Peristiwa Panggilan Masuk Ketika panggilan masuk terjadi (yang dapat dijawab dengan answerCall), peristiwa eventgrid panggilan masuk akan dikirim. Ini berbeda dari peristiwa Callback di atas, dan harus diatur pada portal Azure. Lihat Panggilan Masuk untuk detailnya.
CallAutomationEventProcessor CallAutomationEventProcessor adalah cara yang meyakinkan untuk menangani peristiwa panggilan balik tengah panggilan balik seperti CallConnected. Ini akan memastikan korelasi antara panggilan dan peristiwa dengan lebih mudah. Lihat contoh di bawah ini untuk penggunaannya.

Contoh

Menginisialisasi CallAutomationClient

import { CallAutomationClient } from '@azure/communication-call-automation';
import { DefaultAzureCredential } from "@azure/identity"; 

// Your unique Azure Communication service endpoint
const credential = new DefaultAzureCredential(); 
const endpointUrl = '<ENDPOINT>' 
const callAutomationClient = new CallAutomationClient(endpointUrl, credential); 

Panggilan Create

import { CommunicationUserIdentifier } from "@azure/communication-common";
import { CallAutomationClient, CallInvite } from '@azure/communication-call-automation';

// target endpoint for ACS User
const target: CommunicationUserIdentifier = {
  communicationUserId:
    "8:acs:...",
}

// make invitation
const callInvite: CallInvite = {
   targetParticipant:target
};

// callback url to recieve callback events
const callbackUrl = "https://<MY-EVENT-HANDLER-URL>/events";

// send out the invitation, creating call
const response = callAutomationClient.createCall(callInvite, callbackUrl);

Putar Media

// from callconnection of response above, play media of media file
const myFile: FileSource = { uri: "https://<FILE-SOURCE>/<SOME-FILE>.wav" }
const response = callConnection.getCallMedia().playToAll(myFile);

Menangani peristiwa panggilan balik Mid-Connection

Untuk menangani peristiwa pertengahan koneksi dengan mudah, SDK Call Automation menyediakan cara yang lebih mudah untuk menangani peristiwa ini. Lihat CallAutomationEventProcessor. Ini akan memastikan korelasi antara panggilan dan peristiwa dengan lebih mudah.

const eventProcessor: CallAutomationEventProcessor = await callAutomationClient.getEventProcessor();
eventProcessor.processEvents(incomingEvent);

ProcessEvents diperlukan agar EventProcessor berfungsi. Setelah peristiwa dikonsumsi oleh EventProcessor, Anda dapat mulai menggunakan fiturnya.

Lihat di bawah ini misalnya: tempat Anda melakukan panggilan dengan CreateCall, dan tunggu peristiwa panggilan CallConnected.

// send out the invitation, creating call
const callInvite = new CallInvite(target);
const callbackUrl = "https://<MY-EVENT-HANDLER-URL>/events";
const callResult = callAutomationClient.createCall(callInvite, callbackUrl);

// giving 30 seconds timeout for waiting on createCall's event, 'CallConnected'
const createCallEventResult : CreateCallEventResult = await callResult.waitForEventProcessor(undefined, 30000);
// once this returns, call is now established!

// check if it was successful
if (createCallEventResult.isSuccess)
{
  // work with callConnected event
  const callConnectedEvent : CallConnected = createCallEventResult.successResult!;
}

Pemecahan Masalah

Langkah berikutnya

Berkontribusi

Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.