add CALL_UPDATE event

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15119 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2009-10-08 16:52:55 +00:00
parent ee5510c243
commit aa9361d79f
7 changed files with 36 additions and 0 deletions

View File

@ -128,6 +128,7 @@ static const char *EVENT_NAMES[] = {
"NAT",
"RECORD_START",
"RECORD_STOP",
"CALL_UPDATE",
"ALL"
};

View File

@ -116,6 +116,7 @@ typedef enum {
ESL_EVENT_NAT,
ESL_EVENT_RECORD_START,
ESL_EVENT_RECORD_STOP,
ESL_EVENT_CALL_UPDATE,
ESL_EVENT_ALL
} esl_event_types_t;

View File

@ -1290,6 +1290,7 @@ typedef enum {
SWITCH_EVENT_NAT,
SWITCH_EVENT_RECORD_START,
SWITCH_EVENT_RECORD_STOP,
SWITCH_EVENT_CALL_UPDATE,
SWITCH_EVENT_ALL
} switch_event_types_t;

View File

@ -1284,6 +1284,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
if (!switch_strlen_zero(name)) {
char message[256] = "";
const char *ua = switch_channel_get_variable(tech_pvt->channel, "sip_user_agent");
switch_event_t *event;
if (switch_strlen_zero(number)) {
number = tech_pvt->caller_profile->destination_number;
@ -1303,6 +1304,22 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
TAG_END());
}
if (switch_event_create(&event, SWITCH_EVENT_CALL_UPDATE) == SWITCH_STATUS_SUCCESS) {
const char *uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Direction", "SEND");
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Callee-Name", name);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Callee-Number", number);
if (uuid) {
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid);
}
switch_channel_event_set_data(channel, event);
switch_event_fire(&event);
}
}
switch_safe_free(arg);

View File

@ -420,6 +420,7 @@ void sofia_update_callee_id(switch_core_session_t *session, sofia_profile_t *pro
const char *number = "unknown", *tmp;
switch_caller_profile_t *caller_profile;
char *dup = NULL;
switch_event_t *event;
if (sip->sip_to) {
number = sip->sip_to->a_url->url_user;
@ -450,6 +451,18 @@ void sofia_update_callee_id(switch_core_session_t *session, sofia_profile_t *pro
number = tmp;
}
if (switch_event_create(&event, SWITCH_EVENT_CALL_UPDATE) == SWITCH_STATUS_SUCCESS) {
const char *uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Direction", "RECV");
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Callee-Name", name);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Callee-Number", number);
if (uuid) {
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Bridged-To", uuid);
}
switch_channel_event_set_data(channel, event);
switch_event_fire(&event);
}
caller_profile = switch_channel_get_caller_profile(channel);
caller_profile->callee_id_name = switch_core_strdup(caller_profile->pool, name);
caller_profile->callee_id_number = switch_core_strdup(caller_profile->pool, number);
@ -5673,6 +5686,7 @@ void sofia_info_send_sipfrag(switch_core_session_t *aleg, switch_core_session_t
TAG_IF(!switch_strlen_zero(b_tech_pvt->user_via), SIPTAG_VIA_STR(b_tech_pvt->user_via)),
TAG_END());
}
}
}
}

View File

@ -1408,6 +1408,7 @@ SWITCH_DECLARE(void) switch_channel_event_set_extended_data(switch_channel_t *ch
event->event_id == SWITCH_EVENT_API ||
event->event_id == SWITCH_EVENT_RECORD_START ||
event->event_id == SWITCH_EVENT_RECORD_STOP ||
event->event_id == SWITCH_EVENT_CALL_UPDATE ||
event->event_id == SWITCH_EVENT_CUSTOM
) {

View File

@ -182,6 +182,7 @@ static char *EVENT_NAMES[] = {
"NAT",
"RECORD_START",
"RECORD_STOP",
"CALL_UPDATE"
"ALL"
};