internal Boolean RaiseCallback(tsip_dialog_event_type_t type, TSIP_Message message) { if (mCallback != null) { return(mCallback(type, message)); } return(false); }
/// <summary> /// Callback function called to alert the dialog for new events from the transaction/transport layers /// </summary> /// <param name="type"></param> /// <param name="message"></param> /// <returns></returns> private Boolean OnCallbackEvent(tsip_dialog_event_type_t type, TSIP_Message message) { Boolean ret = false; switch (type) { case tsip_dialog_event_type_t.I_MSG: { if (message != null) { if (message.IsResponse) { TSIP_Response response = message as TSIP_Response; // // RESPONSE // if (response.Is1xx) { ret = base.ExecuteAction((Int32)FSMAction._1xx, message, null); } else if (response.Is2xx) { ret = base.ExecuteAction((Int32)FSMAction._2xx, message, null); } else if (response.StatusCode == 401 || response.StatusCode == 407 || response.StatusCode == 421 || response.StatusCode == 494) { ret = base.ExecuteAction((Int32)FSMAction._401_407_421_494, message, null); } else if (response.StatusCode == 423) { ret = base.ExecuteAction((Int32)FSMAction._423, message, null); } else { // Alert User ret = base.ExecuteAction((Int32)FSMAction.Error, message, null); /* TSK_DEBUG_WARN("Not supported status code: %d", TSIP_RESPONSE_CODE(msg)); */ } } else { // // REQUEST // if (message.IsREGISTER) { ret = base.ExecuteAction((Int32)FSMAction.iREGISTER, message, null); } } } break; } case tsip_dialog_event_type_t.CANCELED: { ret = base.ExecuteAction((Int32)FSMAction.Cancel, message, null); break; } case tsip_dialog_event_type_t.TERMINATED: case tsip_dialog_event_type_t.TIMEDOUT: case tsip_dialog_event_type_t.ERROR: case tsip_dialog_event_type_t.TRANSPORT_ERROR: { ret = base.ExecuteAction((Int32)FSMAction.TransportError, message, null); break; } } return true; }
/// <summary> /// Callback function called to alert the dialog for new events from the transaction/transport layers /// </summary> /// <param name="type"></param> /// <param name="message"></param> /// <returns></returns> private Boolean OnCallbackEvent(tsip_dialog_event_type_t type, TSIP_Message message) { Boolean ret = false; switch (type) { case tsip_dialog_event_type_t.I_MSG: { if (message != null) { if (message.IsResponse) { TSIP_Response response = message as TSIP_Response; // // RESPONSE // if (response.Is1xx) { ret = base.ExecuteAction((Int32)FSMAction._1xx, message, null); } else if (response.Is2xx) { ret = base.ExecuteAction((Int32)FSMAction._2xx, message, null); } else if (response.StatusCode == 401 || response.StatusCode == 407 || response.StatusCode == 421 || response.StatusCode == 494) { ret = base.ExecuteAction((Int32)FSMAction._401_407_421_494, message, null); } else if (response.StatusCode == 423) { ret = base.ExecuteAction((Int32)FSMAction._423, message, null); } else { // Alert User ret = base.ExecuteAction((Int32)FSMAction.Error, message, null); /* TSK_DEBUG_WARN("Not supported status code: %d", TSIP_RESPONSE_CODE(msg)); */ } } else { // // REQUEST // if (message.IsREGISTER) { ret = base.ExecuteAction((Int32)FSMAction.iREGISTER, message, null); } } } break; } case tsip_dialog_event_type_t.CANCELED: { ret = base.ExecuteAction((Int32)FSMAction.Cancel, message, null); break; } case tsip_dialog_event_type_t.TERMINATED: case tsip_dialog_event_type_t.TIMEDOUT: case tsip_dialog_event_type_t.ERROR: case tsip_dialog_event_type_t.TRANSPORT_ERROR: { ret = base.ExecuteAction((Int32)FSMAction.TransportError, message, null); break; } } return(true); }
internal static Boolean Signal(tsip_dialog_event_type_t eventType, TSip_Session sipSession, String phrase, TSIP_Message sipMessage) { TSIP_EventDialog @event = new TSIP_EventDialog(eventType, sipSession, phrase, sipMessage); return(@event.Signal()); }
internal TSIP_EventDialog(tsip_dialog_event_type_t eventType, TSip_Session sipSession, String phrase, TSIP_Message sipMessage) : base(sipSession, 0, phrase, sipMessage, tsip_event_type_t.DIALOG) { mEventType = eventType; }
internal static Boolean Signal(tsip_dialog_event_type_t eventType, TSip_Session sipSession, String phrase, TSIP_Message sipMessage) { TSIP_EventDialog @event = new TSIP_EventDialog(eventType, sipSession, phrase, sipMessage); return @event.Signal(); }
internal Boolean RaiseCallback(tsip_dialog_event_type_t type) { return(this.RaiseCallback(type, null)); }