public async Task DoStep(ISettings settings, ICall call) { await call.StopHoldingBridge(); _callBridge = await call.CreateBridge(BridgeType.NoDTMF); call.CallState.SetBridge(_callBridge); await call.AddLineToBridge(call.CallState.GetIncomingLineId(), _callBridge.Id); await call.AddLineToBridge(call.CallState.GetOutgoingLineId(), _callBridge.Id); var stepSettings = (BridgeCallStepSettings)settings; call.AddStepToProcessQueue(stepSettings.NextStep); call.FireStateChange(Trigger.NextCallFlowStep); }
public async Task DoStep(Step step, ICall call) { if (!string.IsNullOrEmpty(call.CallState.GetBridgeId())) { await call.StopHoldingBridge().ConfigureAwait(false); } _callBridge = await call.CreateBridge(BridgeType.NoDTMF).ConfigureAwait(false); call.CallState.SetBridge(_callBridge); await call.AddLineToBridge(call.CallState.GetIncomingLineId(), _callBridge.Id).ConfigureAwait(false); await call.AddLineToBridge(call.CallState.GetOutgoingLineId(), _callBridge.Id).ConfigureAwait(false); call.AddStepToProcessQueue(step.GetStepFromConnector(NextStep)); call.FireStateChange(Trigger.NextCallFlowStep); }