Esempio n. 1
0
        public void CancelNotRequiredCallLegs(CallCancelCause cancelCause)
        {
            try
            {
                m_commandCancelled = true;
                FireProxyLogEvent(new SIPMonitorConsoleEvent(SIPMonitorServerTypesEnum.AppServer, SIPMonitorEventTypesEnum.DialPlan, "Cancelling all call legs for ForkCall app.", m_username));

                // Cancel all forwarded call legs.
                if (m_switchCalls.Count > 0)
                {
                    ISIPClientUserAgent[] inProgressCalls = (from ua in m_switchCalls where !ua.IsUACAnswered select ua).ToArray();
                    for (int index = 0; index < inProgressCalls.Length; index++)
                    {
                        ISIPClientUserAgent uac = inProgressCalls[index];
                        uac.Cancel();
                    }
                }

                // Signal any delayed calls that they are no longer required.
                foreach (SIPCallDescriptor callDescriptor in m_delayedCalls)
                {
                    callDescriptor.DelayMRE.Set();
                }

                CallLegCompleted();
            }
            catch (Exception excp)
            {
                logger.Error("Exception ForkCall CancelAllCallLegs. " + excp);
            }
        }
Esempio n. 2
0
 private void UACCallProgress(ISIPClientUserAgent uac, SIPResponse progressResponse)
 {
     try
     {
         if (m_commandCancelled)
         {
             //logger.Debug("Call " + uac.CallDescriptor.Uri + " should not be in a progress state after a cancel. Cancel again.");
             uac.Cancel();
         }
         else
         {
             CallProgress(progressResponse.Status, progressResponse.ReasonPhrase, null, progressResponse.Header.ContentType, progressResponse.Body, uac);
         }
     }
     catch (Exception excp)
     {
         logger.Error("Exception ForkCall UACCallProgress. " + excp);
     }
 }
Esempio n. 3
0
 private void UACCallProgress(ISIPClientUserAgent uac, SIPResponse progressResponse)
 {
     try
     {
         if (m_commandCancelled)
         {
             //logger.Debug("Call " + uac.CallDescriptor.Uri + " should not be in a progress state after a cancel. Cancel again.");
             uac.Cancel();
         }
         else
         {
             CallProgress(progressResponse.Status, progressResponse.ReasonPhrase, null, progressResponse.Header.ContentType, progressResponse.Body, uac);
         }
     }
     catch (Exception excp)
     {
         logger.Error("Exception ForkCall UACCallProgress. " + excp);
     }
 }
Esempio n. 4
0
        private void Uac_CallFailed(ISIPClientUserAgent uac, string errorMessage)
        {
            logger.Debug($"{ prefix } Call to { endpoint } failed");

            uac.Cancel();
        }