4

I am looking for play sounds whenever any new calls comes in using this

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Rahul Mistry
  • 43
  • 1
  • 4

1 Answers1

5

Twilio docs at https://www.twilio.com/docs/flex/developer/ui/sound-and-audio were unclear so I pulled from https://support.twilio.com/hc/en-us/articles/360010784433-How-Do-You-Make-the-Browser-Ring-When-a-Flex-Call-Comes-In- . Here's a barebones Flex UI Plugin:

import { FlexPlugin } from "flex-plugin";
export default class MyPlugin extends FlexPlugin {
  constructor() {
    super("MyPlugin");
  }
  init(flex, manager) {
    const alertSound = new Audio(
      "https://public-path-to-your-audio.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();
          });
        });
      }
    );
  }
}
Quentin Hayot
  • 7,786
  • 6
  • 45
  • 62
spanky
  • 1,479
  • 2
  • 11
  • 22
  • This code works great but was missing a direction check. My agents reported that it was ringing when emitting calls too. I edited your code with my fix. Please let me know if you prefer that I create another answer. – Quentin Hayot Jul 29 '21 at 11:54