[commit] r6988 - freeswitch/trunk/src/mod/endpoints/mod_sofia
Author: brian Date: Wed Dec 26 17:41:40 2007 New Revision: 6988 Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Log: collect info from bye and so we can get it in cdr Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Wed Dec 26 17:41:40 2007 @@ -106,6 +106,33 @@ return; } +void sofia_handle_sip_i_bye(switch_core_session_t *session, int status, + char const *phrase, + nua_t *nua, + sofia_profile_t *profile, + nua_handle_t *nh, + sofia_private_t *sofia_private, + sip_t const *sip, + tagi_t tags[]) +{ + switch_channel_t *channel = NULL; + const char *rtp_txstat_header; + const char *rtp_rxstat_header; + if (session) { + channel = switch_core_session_get_channel(session); + if (sip->sip_user_agent && !switch_strlen_zero(sip->sip_user_agent->g_string)){ + switch_channel_set_variable(channel, "sip_user_agent", sip->sip_user_agent->g_string); + } + if ((rtp_txstat_header = sofia_glue_get_unknown_header(sip, "rtp-txstat"))) { + switch_channel_set_variable(channel, "sip_rtp_txstat", rtp_txstat_header); + } + if ((rtp_rxstat_header = sofia_glue_get_unknown_header(sip, "rtp-rxstat"))) { + switch_channel_set_variable(channel, "sip_rtp_rxstat", rtp_rxstat_header); + } + + } + return; +} void sofia_event_callback(nua_event_t event, int status, @@ -222,7 +249,10 @@ case nua_i_fork: case nua_r_info: case nua_r_bye: + break; case nua_i_bye: + sofia_handle_sip_i_bye(session, status, phrase, nua, profile, nh, sofia_private, sip, tags); + break; case nua_r_unsubscribe: case nua_r_publish: case nua_i_cancel:
participants (1)
-
Freeswitch SVN