SIPSorcery.AppServer.DialPlan.ForkCall.ForkCall C# (CSharp) Method

ForkCall() public method

The ForkCall allows a SIP call to be forked to multiple destinations. To do this it utilises multiple simultaneous SIPCallDescriptor objects and consolidates their responses to work out what should and shouldn't be forwarded onto the client that initiated the call. The ForkCall acts as a classic SIP forking proxy. The ForkCall is capable of both multiple forwards and also of follow on forwarding in the event of a call leg of multiple forwards not succeeding. As an example: Dial(provider1&provider2|provider3&provider4|provider5&provider6) The handling of this call would be: 1. The call would be simultaneously forwarded to provider1 and provider2, 2. If the call was not successfully answered in step 1 the call would be simultaneously forwarded to provider3 and provider4, 3. If the call was not successfully answered in step 2 the call would be simultaneously forwarded to provider5 and provider6, 4. If the call was not successfully answered in step 3 the client call would be sent an error response. 5. If the client cancels the call at any time during the call all forwarding operations will halt.
public ForkCall ( SIPTransport sipTransport, SIPMonitorLogDelegate statefulProxyLogEvent, QueueNewCallDelegate queueNewCall, DialStringParser dialStringParser, string username, string adminMemberId, SIPEndPoint outboundProxy, ISIPCallManager callManager, DialPlanContext dialPlanContext ) : System
sipTransport SIPSorcery.SIP.SIPTransport The SIP transport layer that will handle the forked calls.
statefulProxyLogEvent SIPMonitorLogDelegate A delegate that allows the owning object to receive notifications from the ForkCall.
queueNewCall QueueNewCallDelegate A delegate that can be used to queue a new call with the SIP application server call manager. This /// delegate is used when a fork call generates a B2B call that requires the incoming dialplan for a called user to be processed.
dialStringParser DialStringParser The dial string parser is used when a redirect response is received on a forked call leg. The /// parser can then be applied to the redirect SIP URI to generate new call legs to be added to the ForkCall.
username string The username of the call owner.
adminMemberId string The admin ID of the call owner.
outboundProxy SIPSorcery.SIP.SIPEndPoint The outbound proxy to use for all SIP traffic originated. Can be null if an outbound proxy is not /// being used.
callManager ISIPCallManager
dialPlanContext DialPlanContext
return System
        public ForkCall(
            SIPTransport sipTransport,
            SIPMonitorLogDelegate statefulProxyLogEvent,
            QueueNewCallDelegate queueNewCall,
            DialStringParser dialStringParser,
            string username,
            string adminMemberId,
            SIPEndPoint outboundProxy,
            ISIPCallManager callManager,
            DialPlanContext dialPlanContext)
        {
            m_sipTransport = sipTransport;
            m_statefulProxyLogEvent = statefulProxyLogEvent;
            QueueNewCall_External = queueNewCall;
            m_dialStringParser = dialStringParser;
            m_username = username;
            m_adminMemberId = adminMemberId;
            m_outboundProxySocket = outboundProxy;
            m_callManager = callManager;
            m_dialPlanContext = dialPlanContext;
        }

Same methods

ForkCall::ForkCall ( SIPTransport sipTransport, SIPMonitorLogDelegate statefulProxyLogEvent, QueueNewCallDelegate queueNewCall, DialStringParser dialStringParser, string username, string adminMemberId, SIPEndPoint outboundProxy, ISIPCallManager callManager, DialPlanContext dialPlanContext, List &switchCallTransactions ) : System