예제 #1
0
 internal Boolean RaiseCallback(tsip_transac_event_type_t type)
 {
     return(this.RaiseCallback(type, null));
 }
예제 #2
0
        private Boolean OnCallbackEvent(tsip_transac_event_type_t type, TSIP_Message message)
        {
            Boolean ret = true;

            switch (type)
            {
                case tsip_transac_event_type_t.IncomingMessage:
                    {
                        if (message != null && message.IsResponse)
                        {
                            if ((message as TSIP_Response).Is1xx)
                            {
                                ret = base.ExecuteAction((Int32)FSMAction._1xx, message);
                            }
                            else if ((message as TSIP_Response).Is23456)
                            {
                                ret = base.ExecuteAction((Int32)FSMAction._200_to_699, message);
                            }
                            else
                            {
                                TSK_Debug.Error("Not supported status code: {0}", (message as TSIP_Response).StatusCode);
                            }
                        }
                        break;
                    }

                case tsip_transac_event_type_t.Canceled:
                case tsip_transac_event_type_t.Terminated:
                case tsip_transac_event_type_t.TimedOut:
                default:
                    {
                        break;
                    }

                case tsip_transac_event_type_t.Error:
                    {
                        ret = base.ExecuteAction((Int32)FSMAction.Error, message);
                        break;
                    }

                case tsip_transac_event_type_t.TransportError:
                    {
                        ret = base.ExecuteAction((Int32)FSMAction.TransportError, message);
                        break;
                    }
            }

            return ret;
        }