Exemplo n.º 1
0
        public void AriClient_OnChannelDtmfReceivedEvent(ISipApiClient sipApiClient, DtmfReceivedEvent dtmfReceivedEvent)
        {
            DigitTimeoutTimer.Stop();
            _call.Logger.Debug($"OnChannel Dtmf Received Event {dtmfReceivedEvent.LineId}");
            if (_call.GetCurrentState() == State.LanguagePrompts)
            {
                return;
            }
            if (dtmfReceivedEvent.LineId != _call.CallState.GetIncomingLineId())
            {
                return;
            }

            LogDtmfValue(dtmfReceivedEvent);

            CaptureDigitIfInValidState(dtmfReceivedEvent);

            if (_call.GetCurrentState() == State.PlayingInterruptiblePrompt)
            {
                _promptPlayer.StopPrompt();
            }

            ProcessDigitsReceived();
        }
Exemplo n.º 2
0
        public async void AriClient_OnChannelDtmfReceivedEvent(ISipApiClient sipApiClient, DtmfReceivedEvent dtmfReceivedEvent)
        {
            DigitTimeoutTimer.Stop();
            if (_call.GetCurrentState() == State.LanguagePrompts)
            {
                return;
            }
            if (!ShouldProcessDigit(dtmfReceivedEvent))
            {
                return;
            }
            _call.Logger.Debug($"OnChannel Dtmf Received Event {dtmfReceivedEvent.LineId}");

            LogDtmfValue(dtmfReceivedEvent);

            CaptureDigitIfInValidState(dtmfReceivedEvent);

            if (_call.GetCurrentState() == State.PlayingInterruptiblePrompt)
            {
                await _promptPlayer.StopPromptAsync();
            }

            await ProcessDigitsReceived();
        }