]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: ISDN - allow reception of NOTIFY msg
authorDavid Yat Sin <dyatsin@sangoma.com>
Wed, 3 Aug 2011 15:53:40 +0000 (11:53 -0400)
committerDavid Yat Sin <dyatsin@sangoma.com>
Wed, 3 Aug 2011 15:53:40 +0000 (11:53 -0400)
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_rcv.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.h

index 308e0abac4d5a515164a5ca396217522857f18fb..e95a582a45379be5d7c77c0d787bf71c7878cc63 100644 (file)
@@ -361,8 +361,9 @@ void sngisdn_process_cnst_ind (sngisdn_event_data_t *sngisdn_event)
                                                                                                        (evntType == MI_CALLPROC)?"PROCEED":
                                                                                                        (evntType == MI_PROGRESS)?"PROGRESS":
                                                                                                        (evntType == MI_SETUPACK)?"SETUP ACK":
-                                                                                                                       (evntType == MI_INFO)?"INFO":"UNKNOWN",
-                                                                                                                       suId, suInstId, spInstId, ces);
+                                                                                                       (evntType == MI_NOTIFY)?"NOTIFY":
+                                                                                                       (evntType == MI_INFO)?"INFO":"UNKNOWN",
+                                                                                                       suId, suInstId, spInstId, ces);
        
        switch(evntType) {
                case MI_CALLPROC:                       
@@ -493,7 +494,10 @@ void sngisdn_process_cnst_ind (sngisdn_event_data_t *sngisdn_event)
                                                break;
                                }
                        }
-
+                       break;
+               case MI_NOTIFY:
+                       ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Processing NOTIFY (suId:%u suInstId:%u spInstId:%u)\n", suId, suInstId, spInstId);
+                       /* Do nothing */
                        break;
                default:
                        ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Unhandled STATUS event\n");
index df791ef3cb1939b3a6314baf5a398423d53834ca..3788a9c25b74afebd255b23091c0cc2996619336 100644 (file)
@@ -168,7 +168,8 @@ void sngisdn_rcv_cnst_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, C
                                                                                                        (evntType == MI_CALLPROC)?"PROCEED":
                                                                                                        (evntType == MI_PROGRESS)?"PROGRESS":
                                                                                                        (evntType == MI_SETUPACK)?"SETUP ACK":
-                                                                                                                       (evntType == MI_INFO)?"INFO":"UNKNOWN",
+                                                                                                       (evntType == MI_NOTIFY)?"NOTIFY":
+                                                                                                       (evntType == MI_INFO)?"INFO":"UNKNOWN",
                                                                                                                        suId, suInstId, spInstId, ces);
 
        sngisdn_event = ftdm_malloc(sizeof(*sngisdn_event));
index abb6577924d9f1901780e4ce2b654d9662cd3be2..467ac7f9d8629522e7f98c2bd69fbf72fce05176 100644 (file)
@@ -737,8 +737,16 @@ uint32_t sngisdn_decode_ie(char *str, uint32_t *str_len, uint8_t current_codeset
                                                                                                                calling_subaddr_string, (j-1), get_code_2_str(type, dcodQ931TypeOfSubaddressTable), type);
                        }
                        break;
-               case PROT_Q931_IE_REDIRECTION_NUMBER:
                case PROT_Q931_IE_NOTIFICATION_IND:
+                       {
+                               uint8_t desc;
+
+                               desc = get_bits(OCTET(3),1,7);
+                               *str_len += sprintf(&str[*str_len], "%s (%d)\n",
+                                                                                                               get_code_2_str(desc, dcodQ931NotificationIndTable), desc);
+                       }
+                       break;
+               case PROT_Q931_IE_REDIRECTION_NUMBER:           
                case PROT_Q931_IE_DATE_TIME:
                case PROT_Q931_IE_INFORMATION_REQUEST:
                case PROT_Q931_IE_SIGNAL:
index 37b799d007a8d59f17d9a78acec686da62d2a0ee..b09bcbd33a7865169235f81dd2b8eadeaddd85b7 100644 (file)
@@ -591,4 +591,9 @@ struct code2str dcodQ931AssocInfoTable[] = {
        { -1,   "Invalid"},
 };
 
+
+struct code2str dcodQ931NotificationIndTable[] = {
+       { 0x71, "Call Information/event"},
+       { -1,   "Invalid"},
+};
 #endif /* __FTMOD_SANGOMA_ISDN_TRACE_H__ */