openzap: more ss7 custom data

This commit is contained in:
Moises Silva 2010-05-20 18:47:10 -04:00
parent d30930a430
commit c93e392dca
2 changed files with 9 additions and 7 deletions

View File

@ -481,7 +481,7 @@ struct zap_caller_data {
char collected[25]; char collected[25];
int CRV; int CRV;
int hangup_cause; int hangup_cause;
uint8_t raw_data[1024]; char raw_data[1024];
uint32_t raw_data_len; uint32_t raw_data_len;
uint32_t flags; uint32_t flags;
zap_caller_state_t call_state; zap_caller_state_t call_state;

View 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.ani.digits, (char *)event->calling.digits);
zap_set_string(zchan->caller_data.dnis.digits, (char *)event->called.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); zap_set_string(zchan->caller_data.rdnis.digits, (char *)event->rdnis.digits);
if (event->isup_in_rdnis_size) { if (event->custom_data_size) {
zap_set_string((char *)zchan->caller_data.raw_data, (char *)event->isup_in_rdnis); zap_set_string(zchan->caller_data.raw_data, event->custom_data);
zchan->caller_data.raw_data_len = event->isup_in_rdnis_size; zchan->caller_data.raw_data_len = event->custom_data_size;
} }
if (strlen(event->calling_name)) { 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.screen = event->calling.screening_ind;
zchan->caller_data.pres = event->calling.presentation_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) { if (event->custom_data_size) {
char* p = NULL; char* p = NULL;
p = strstr((char*)event->custom_data,"PRI001-ANI2-"); p = strstr(event->custom_data,"PRI001-ANI2-");
if (p!=NULL) { if ( p != NULL) {
int ani2 = 0; int ani2 = 0;
sscanf(p, "PRI001-ANI2-%d", &ani2); sscanf(p, "PRI001-ANI2-%d", &ani2);
snprintf(zchan->caller_data.aniII, 5, "%.2d", ani2); snprintf(zchan->caller_data.aniII, 5, "%.2d", ani2);
} }
} }
zap_set_state_locked(zchan, ZAP_CHANNEL_STATE_RING); zap_set_state_locked(zchan, ZAP_CHANNEL_STATE_RING);