getOrCreateHoldingBridge function

void getOrCreateHoldingBridge(
  1. Channel channel
)

Implementation

void getOrCreateHoldingBridge(Channel channel) {
  // client.bridges.list((err: Error, bridges: Bridge[]) {
  //     let mixingBridges = bridges.filter((candidate: Bridge) => {
  //         return candidate['bridge_type'] === 'mixing';
  //     });
  //     print('Mixing bridges', mixingBridges.length);

  //     client.channels.list((err: Error, channels: Channel[]) => {
  //         let activeChannels = channels;
  //         print('Active channels', activeChannels.length);
  //         print('Active bridges', bridges.length);
  //     });
  // });

  client.bridges.list((err, bridges) {
    Bridge holdingBridge = bridges.firstWhere((Bridge candidate) {
      return candidate.bridge_type == 'holding';
    });

    if (holdingBridge != null) {
      print('Using existing holding bridge ${holdingBridge.id}');

      originate(channel, holdingBridge);
    } else {
      client.bridges.create((err, holdingBridge) {
        if (err) {
          throw err;
        }

        print('Created new holding bridge ${holdingBridge.id}');

        originate(channel, holdingBridge);
      }, type: "holding");
    }
  });
}