Module: kamailio Branch: master Commit: b4e11cb25d848651406e0ad355d54f10db971761 URL: https://github.com/kamailio/kamailio/commit/b4e11cb25d848651406e0ad355d54f10db971761
Author: Daniel-Constantin Mierla <mico...@gmail.com> Committer: Daniel-Constantin Mierla <mico...@gmail.com> Date: 2019-07-29T13:51:57+02:00 core: skip to-tag when computing via branch for invite, ack and cancel - proper functionality for stateless proxy in case of negative ACK (in this case the INVITE has no To-tag, but ACK has it and resulted in different via branch, making downstream proxy to not match transaction) --- Modified: src/core/char_msg_val.h --- Diff: https://github.com/kamailio/kamailio/commit/b4e11cb25d848651406e0ad355d54f10db971761.diff Patch: https://github.com/kamailio/kamailio/commit/b4e11cb25d848651406e0ad355d54f10db971761.patch --- diff --git a/src/core/char_msg_val.h b/src/core/char_msg_val.h index 79461cd836..436f58b401 100644 --- a/src/core/char_msg_val.h +++ b/src/core/char_msg_val.h @@ -38,6 +38,7 @@ inline static int char_msg_val( struct sip_msg *msg, char *cv ) { str src[8]; + str sempty = str_init(""); if (unlikely(!check_transaction_quadruple(msg))) { LM_ERR("can't calculate char_value due to a parsing error\n"); @@ -55,7 +56,12 @@ inline static int char_msg_val( struct sip_msg *msg, char *cv ) } /* use only the from & to tags */ src[0]=get_from(msg)->tag_value; - src[1]=get_to(msg)->tag_value; + if(msg->first_line.u.request.method_value + & (METHOD_INVITE|METHOD_ACK|METHOD_CANCEL)) { + src[1]=sempty; + } else { + src[1]=get_to(msg)->tag_value; + } src[2]= msg->callid->body; src[3]= msg->first_line.u.request.uri; src[4]= get_cseq( msg )->number; _______________________________________________ Kamailio (SER) - Development Mailing List sr-dev@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev