Hi
We have found that in kamailio processing if you: 1. set msg->path_vec 2. call msg_apply_changes() 3. t_telay
The route-header of the outgoing message is set twice.
We think this is because msg_apply_changes() adds the router header if the path is set - but leaves the path set. So the router header is added again when you t_relay.
To fix this: --- a/modules/textopsx/textopsx.c +++ b/modules/textopsx/textopsx.c @@ -166,7 +166,7 @@ static int msg_apply_changes_f(sip_msg_t *msg, char *str1, char *str2) } else { obuf.s = build_req_buf_from_sip_req(msg, (unsigned int*)&obuf.len, &dst, - BUILD_NO_LOCAL_VIA|BUILD_NO_VIA1_UPDATE); + BUILD_NO_PATH|BUILD_NO_LOCAL_VIA|BUILD_NO_VIA1_UPDATE); } if(obuf.s == NULL) {
This stops msg_apply_changes() from adding the router header if path is set.
Any objections to comitting this to master? Might other functionality be effected?
The alternative is for msg_apply_changes() to add the router header but then unset the path.
Regards Richard.