]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
openzap: more ss7 custom data
authorMoises Silva <moy@sangoma.com>
Thu, 20 May 2010 22:47:10 +0000 (18:47 -0400)
committerMoises Silva <moy@sangoma.com>
Thu, 20 May 2010 22:47:10 +0000 (18:47 -0400)
libs/openzap/src/include/openzap.h
libs/openzap/src/ozmod/ozmod_sangoma_boost/ozmod_sangoma_boost.c

index 8fde5795d54b7757859ad9741c79154ccc8a10f4..6a8c2d73c4dae2e707ff31df2736c9fcd3f74969 100644 (file)
@@ -481,7 +481,7 @@ struct zap_caller_data {
        char collected[25];
        int CRV;
        int hangup_cause;       
-       uint8_t raw_data[1024];
+       char raw_data[1024];
        uint32_t raw_data_len;
        uint32_t flags;
        zap_caller_state_t call_state;
index f2573456903cdbc7c498dbc71f5f9cd79a8b124a..12a5e872d7907545eef185e4a1aff86cb4e903f3 100644 (file)
@@ -831,9 +831,9 @@ static void handle_call_start(zap_span_t *span, sangomabc_connection_t *mcon, sa
        zap_set_string(zchan->caller_data.ani.digits, (char *)event->calling.digits);
        zap_set_string(zchan->caller_data.dnis.digits, (char *)event->called.digits);
        zap_set_string(zchan->caller_data.rdnis.digits, (char *)event->rdnis.digits);
-       if (event->isup_in_rdnis_size) {
-               zap_set_string((char *)zchan->caller_data.raw_data, (char *)event->isup_in_rdnis);
-               zchan->caller_data.raw_data_len = event->isup_in_rdnis_size;
+       if (event->custom_data_size) {
+               zap_set_string(zchan->caller_data.raw_data, event->custom_data);
+               zchan->caller_data.raw_data_len = event->custom_data_size;
        }
 
        if (strlen(event->calling_name)) {
@@ -855,15 +855,17 @@ static void handle_call_start(zap_span_t *span, sangomabc_connection_t *mcon, sa
        zchan->caller_data.screen = event->calling.screening_ind;
        zchan->caller_data.pres = event->calling.presentation_ind;
 
+       /* more info about custom data: http://www.ss7box.com/smg_manual.html#ISUP-IN-RDNIS-NEW */
        if (event->custom_data_size) {
                char* p = NULL;
 
-               p = strstr((char*)event->custom_data,"PRI001-ANI2-");
-               if (p!=NULL) {
+               p = strstr(event->custom_data,"PRI001-ANI2-");
+               if ( p != NULL) {
                        int ani2 = 0;
                        sscanf(p, "PRI001-ANI2-%d", &ani2);
                        snprintf(zchan->caller_data.aniII, 5, "%.2d", ani2);
-               }       
+               }
+
        }
 
        zap_set_state_locked(zchan, ZAP_CHANNEL_STATE_RING);