From 5d4db94d27c61942509db8533d2ed545cf75e505 Mon Sep 17 00:00:00 2001 From: Moises Silva <moy@sangoma.com> Date: Thu, 20 May 2010 16:08:22 -0400 Subject: [PATCH] openzap: custom data --- libs/openzap/mod_openzap/mod_openzap.c | 8 ++++++++ .../src/ozmod/ozmod_sangoma_boost/ozmod_sangoma_boost.c | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/libs/openzap/mod_openzap/mod_openzap.c b/libs/openzap/mod_openzap/mod_openzap.c index 12d1664db1..1fb42ea0f5 100644 --- a/libs/openzap/mod_openzap/mod_openzap.c +++ b/libs/openzap/mod_openzap/mod_openzap.c @@ -1244,6 +1244,11 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi caller_data.ani.type = outbound_profile->destination_number_ton; } + if ((var = switch_event_get_header(var_event, "openzap_custom_call_data")) || (var = switch_core_get_variable("openzap_custom_call_data"))) { + zap_set_string((char *)caller_data.raw_data, var); + caller_data.raw_data_len = strlen(var); + } + caller_data.ani.plan = outbound_profile->destination_number_numplan; /* blindly copy data from outbound_profile. They will be overwritten @@ -1438,6 +1443,9 @@ zap_status_t zap_channel_from_event(zap_sigmsg_t *sigmsg, switch_core_session_t switch_channel_set_variable(channel, "openzap_span_name", sigmsg->channel->span->name); switch_channel_set_variable_printf(channel, "openzap_span_number", "%d", sigmsg->channel->span_id); switch_channel_set_variable_printf(channel, "openzap_chan_number", "%d", sigmsg->channel->chan_id); + if (sigmsg->channel->caller_profile.raw_data_len) { + switch_channel_set_variable_printf(channel, "openzap_custom_call_data", "%s", sigmsg->channel->caller_profile.raw_data); + } switch_channel_set_state(channel, CS_INIT); if (switch_core_session_thread_launch(session) != SWITCH_STATUS_SUCCESS) { diff --git a/libs/openzap/src/ozmod/ozmod_sangoma_boost/ozmod_sangoma_boost.c b/libs/openzap/src/ozmod/ozmod_sangoma_boost/ozmod_sangoma_boost.c index c32878debd..f257345690 100644 --- a/libs/openzap/src/ozmod/ozmod_sangoma_boost/ozmod_sangoma_boost.c +++ b/libs/openzap/src/ozmod/ozmod_sangoma_boost/ozmod_sangoma_boost.c @@ -338,6 +338,11 @@ static ZIO_CHANNEL_REQUEST_FUNCTION(sangoma_boost_channel_request) event.called.ton = caller_data->ani.type; event.called.npi = caller_data->ani.plan; + if (caller_data->raw_data_len) { + zap_set_string((char *)event.isup_in_rdnis, (char *)caller_data->raw_data); + event.isup_in_rdnis_size = caller_data->raw_data_len; + } + OUTBOUND_REQUESTS[r].status = BST_WAITING; OUTBOUND_REQUESTS[r].span = span; @@ -826,6 +831,10 @@ 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 (strlen(event->calling_name)) { zap_set_string(zchan->caller_data.cid_name, (char *)event->calling_name);