Flexコールを着信したときにブラウザで着信音を鳴らす方法

本記事はオリジナルのヘルプ記事を翻訳したものになります。

Flexにて着信コールを受けた際、ブラウザで着信音を鳴らす最も良い方法は、reservationCreated eventを検知(Listen)し、オーディオを再生させる方法です。プラグインコードは以下のようになります。

let alertSound = new Audio("https://mysite.com/sounds/alert.mp3");
alertSound.loop = true;

const resStatus = ["accepted","canceled","rejected","rescinded","timeout"];

manager.workerClient.on("reservationCreated", function(reservation) {
  if (
reservation.task.taskChannelUniqueName === "voice" &&
reservation.task.attributes.direction === "inbound"
) {
alertSound.play();
} resStatus.forEach((e) => { reservation.on(e, () => { alertSound.pause() }); }); });

上記コードは、着信コールがFlex上でWokerに受電許可され応答されるまで、オーディオファイル※をリピートで再生します。(※: 本例ではalert.mp3)

このコードを実行するには、まず1行目用のオーディオファイルを用意し、またファイルのURLを書き換え後、コードをinit()関数に追加して下さい。ホストされたFlex Instanceへのコード追加については、こちらをご覧ください: Creating Plugins for Twilio Flex.

注意: オーディオファイルはTwilioのプロキシサーバからアクセス可能な必要があります。デスクトップ上のローカルファイルではこれらのメソッドは挙動しません。Twilio Assetsへオーディオファイルをアップロードしご利用頂くことも可能です。

ブラウザがどのオーディオデバイスを使っているか調べる方法

MediaDevices インターフェースのenumerateDevices()を利用することで、利用可能なオーディオ出力デバイス一覧をリクエストする事が可能です。

navigator.mediaDevices.enumerateDevices();

希望のデバイスIDを特定したら、HTMLMediaElement.setSinkId()により値を渡してください。

注意: これらのメソッドはChrome 49+ および Edge17+に対応しています。現時点では、その他のブラウザでの動作を保証するものではありません。

Have more questions? Submit a request
Powered by Zendesk