openzap: custom data

This commit is contained in:
Moises Silva 2010-05-20 16:08:22 -04:00
parent 8bdd2f2dc2
commit 5d4db94d27
2 changed files with 17 additions and 0 deletions

View File

@ -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) {

View File

@ -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);