getOrCreateHoldingBridge function

void getOrCreateHoldingBridge(
  1. Channel channel
)

Implementation

void getOrCreateHoldingBridge(Channel channel) async {
  // 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);
  //     });
  // });

  var bridges = client.bridges.list();
  bridges.then((bridgesList) {
    print("Bridges: ${bridgesList.length}");
    var holdingBridge = bridgesList.where((Bridge candidate) {
      return candidate.bridge_type == 'holding';
    }).toList();
    print(holdingBridge.length);

    if (holdingBridge.isNotEmpty) {
      print('Using existing holding bridge ${holdingBridge[0].id}');

      originate(channel, holdingBridge[0]);
    } else {
      var bridge = client.bridges.create(type: "holding"); // {

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

        originate(channel, bridge);
      });
    }
  });

  // client.bridges.list((err, bridges) {
  //   var 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");
  //   }
  // });
}