diff --git a/src/modules/rr/record.c b/src/modules/rr/record.c index 0b743569053..df3caf4a8d8 100644 --- a/src/modules/rr/record.c +++ b/src/modules/rr/record.c @@ -549,6 +549,11 @@ int record_route_preset(struct sip_msg* _m, str* _data) from = get_from(_m); } + if (rr_param_buf.len && rr_param_msg!=_m->id) { + /* rr_params were set for a different message -> reset buffer */ + rr_param_buf.len = 0; + } + l = anchor_lump(_m, _m->headers->name.s - _m->buf, 0, HDR_RECORDROUTE_T); if (!l) { LM_ERR("failed to create lump anchor\n"); @@ -812,6 +817,11 @@ int record_route_advertised_address(struct sip_msg* _m, str* _data) tag = 0; } + if (rr_param_buf.len && rr_param_msg!=_m->id) { + /* rr_params were set for a different message -> reset buffer */ + rr_param_buf.len = 0; + } + if(rr_ignore_sips==0) { sips = rr_is_sips(_m); }