//private SIPAccount m_destinationSIPAccount; public SIPB2BUserAgent( QueueNewCallDelegate queueCall, SIPTransport sipTranpsort, string uacOwner, string uacAdminMemberId ) { QueueNewCall_External = queueCall; m_sipTransport = sipTranpsort; m_uacOwner = uacOwner; m_uacAdminMemberId = uacAdminMemberId; }
//private SIPAccount m_destinationSIPAccount; public SIPB2BUserAgent( SIPMonitorLogDelegate logDelegate, QueueNewCallDelegate queueCall, SIPTransport sipTranpsort, string uacOwner, string uacAdminMemberId ) { Log_External = logDelegate; QueueNewCall_External = queueCall; m_sipTransport = sipTranpsort; m_uacOwner = uacOwner; m_uacAdminMemberId = uacAdminMemberId; }
/// <summary> /// See overload. /// </summary> /// <param name="switchCallTransactions">An empty list that will be filled with transactions that the ForkCall creates and that each /// represent an outgoing call. The calling object can use the list to check response codes to determine the result of each leg in the /// ForkCall.</param> public ForkCall( SIPTransport sipTransport, SIPMonitorLogDelegate statefulProxyLogEvent, QueueNewCallDelegate queueNewCall, DialStringParser dialStringParser, string username, string adminMemberId, SIPEndPoint outboundProxy, ISIPCallManager callManager, DialPlanContext dialPlanContext, out List <SIPTransaction> switchCallTransactions) : this(sipTransport, statefulProxyLogEvent, queueNewCall, dialStringParser, username, adminMemberId, outboundProxy, callManager, dialPlanContext) { switchCallTransactions = m_switchCallTransactions; }
/// <remarks> /// 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. /// </remarks> /// <param name="sipTransport">The SIP transport layer that will handle the forked calls.</param> /// <param name="statefulProxyLogEvent">A delegate that allows the owning object to receive notifications from the ForkCall.</param> /// <param name="queueNewCall">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.</param> /// <param name="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.</param> /// <param name="username">The username of the call owner.</param> /// <param name="adminMemberId">The admin ID of the call owner.</param> /// <param name="outboundProxy">The outbound proxy to use for all SIP traffic originated. Can be null if an outbound proxy is not /// being used.</param> 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; }
/// <summary> /// See overload. /// </summary> /// <param name="switchCallTransactions">An empty list that will be filled with transactions that the ForkCall creates and that each /// represent an outgoing call. The calling object can use the list to check response codes to determine the result of each leg in the /// ForkCall.</param> public ForkCall( SIPTransport sipTransport, SIPMonitorLogDelegate statefulProxyLogEvent, QueueNewCallDelegate queueNewCall, DialStringParser dialStringParser, string username, string adminMemberId, SIPEndPoint outboundProxy, ISIPCallManager callManager, DialPlanContext dialPlanContext, out List<SIPTransaction> switchCallTransactions) : this(sipTransport, statefulProxyLogEvent, queueNewCall, dialStringParser, username, adminMemberId, outboundProxy, callManager, dialPlanContext) { switchCallTransactions = m_switchCallTransactions; }
private QueueNewCallDelegate QueueNewCall_External; // Function delegate to allow new calls to be placed on the call manager and run through the dialplan logic. #endregion Fields #region Constructors /// <remarks> /// 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. /// </remarks> /// <param name="sipTransport">The SIP transport layer that will handle the forked calls.</param> /// <param name="statefulProxyLogEvent">A delegate that allows the owning object to receive notifications from the ForkCall.</param> /// <param name="queueNewCall">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.</param> /// <param name="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.</param> /// <param name="username">The username of the call owner.</param> /// <param name="adminMemberId">The admin ID of the call owner.</param> /// <param name="outboundProxy">The outbound proxy to use for all SIP traffic originated. Can be null if an outbound proxy is not /// being used.</param> 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; }
//private SIPAccount m_destinationSIPAccount; public SIPB2BUserAgent( SIPMonitorLogDelegate logDelegate, QueueNewCallDelegate queueCall, SIPTransport sipTranpsort, string uacOwner, string uacAdminMemberId ) { Log_External = logDelegate; QueueNewCall_External = queueCall; m_sipTransport = sipTranpsort; m_uacOwner = uacOwner; m_uacAdminMemberId = uacAdminMemberId; }