|
@@ -172,7 +172,7 @@ void run_trans_callbacks( int type , struct cell *trans,
|
|
|
{
|
|
|
static struct tmcb_params params = {0,0,0,0};
|
|
|
struct tm_callback *cbp;
|
|
|
- avp_list_t* backup_from, *backup_to, *backup_dom_from, *backup_dom_to;
|
|
|
+ avp_list_t* backup_from, *backup_to, *backup_dom_from, *backup_dom_to, *backup_uri_from, *backup_uri_to;
|
|
|
|
|
|
params.req = req;
|
|
|
params.rpl = rpl;
|
|
@@ -181,6 +181,8 @@ void run_trans_callbacks( int type , struct cell *trans,
|
|
|
if (trans->tmcb_hl.first==0 || ((trans->tmcb_hl.reg_types)&type)==0 )
|
|
|
return;
|
|
|
|
|
|
+ backup_uri_from = set_avp_list(AVP_CLASS_URI | AVP_TRACK_FROM, &trans->uri_avps_from );
|
|
|
+ backup_uri_to = set_avp_list(AVP_CLASS_URI | AVP_TRACK_TO, &trans->uri_avps_to );
|
|
|
backup_from = set_avp_list(AVP_CLASS_USER | AVP_TRACK_FROM, &trans->user_avps_from );
|
|
|
backup_to = set_avp_list(AVP_CLASS_USER | AVP_TRACK_TO, &trans->user_avps_to );
|
|
|
backup_dom_from = set_avp_list(AVP_CLASS_DOMAIN | AVP_TRACK_FROM, &trans->domain_avps_from);
|
|
@@ -197,6 +199,8 @@ void run_trans_callbacks( int type , struct cell *trans,
|
|
|
set_avp_list(AVP_CLASS_DOMAIN | AVP_TRACK_FROM, backup_dom_from );
|
|
|
set_avp_list(AVP_CLASS_USER | AVP_TRACK_TO, backup_to );
|
|
|
set_avp_list(AVP_CLASS_USER | AVP_TRACK_FROM, backup_from );
|
|
|
+ set_avp_list(AVP_CLASS_URI | AVP_TRACK_TO, backup_uri_to );
|
|
|
+ set_avp_list(AVP_CLASS_URI | AVP_TRACK_FROM, backup_uri_from );
|
|
|
}
|
|
|
|
|
|
|
|
@@ -205,7 +209,7 @@ void run_reqin_callbacks( struct cell *trans, struct sip_msg *req, int code )
|
|
|
{
|
|
|
static struct tmcb_params params = {0,0,0,0};
|
|
|
struct tm_callback *cbp;
|
|
|
- avp_list_t* backup_from, *backup_to, *backup_dom_from, *backup_dom_to;
|
|
|
+ avp_list_t* backup_from, *backup_to, *backup_dom_from, *backup_dom_to, *backup_uri_from, *backup_uri_to;
|
|
|
|
|
|
params.req = req;
|
|
|
params.code = code;
|
|
@@ -213,6 +217,8 @@ void run_reqin_callbacks( struct cell *trans, struct sip_msg *req, int code )
|
|
|
if (req_in_tmcb_hl->first==0)
|
|
|
return;
|
|
|
|
|
|
+ backup_uri_from = set_avp_list(AVP_CLASS_URI | AVP_TRACK_FROM, &trans->uri_avps_from );
|
|
|
+ backup_uri_to = set_avp_list(AVP_CLASS_URI | AVP_TRACK_TO, &trans->uri_avps_to );
|
|
|
backup_from = set_avp_list(AVP_CLASS_USER | AVP_TRACK_FROM, &trans->user_avps_from );
|
|
|
backup_to = set_avp_list(AVP_CLASS_USER | AVP_TRACK_TO, &trans->user_avps_to );
|
|
|
backup_dom_from = set_avp_list(AVP_CLASS_DOMAIN | AVP_TRACK_FROM, &trans->domain_avps_from);
|
|
@@ -223,6 +229,8 @@ void run_reqin_callbacks( struct cell *trans, struct sip_msg *req, int code )
|
|
|
params.param = &(cbp->param);
|
|
|
cbp->callback( trans, cbp->types, ¶ms );
|
|
|
}
|
|
|
+ set_avp_list(AVP_CLASS_URI | AVP_TRACK_TO, backup_uri_to );
|
|
|
+ set_avp_list(AVP_CLASS_URI | AVP_TRACK_FROM, backup_uri_from );
|
|
|
set_avp_list(AVP_CLASS_DOMAIN | AVP_TRACK_TO, backup_dom_to );
|
|
|
set_avp_list(AVP_CLASS_DOMAIN | AVP_TRACK_FROM, backup_dom_from );
|
|
|
set_avp_list(AVP_CLASS_USER | AVP_TRACK_TO, backup_to );
|