There are two proxies of version 1.6.4.-2 which has been installed on the same server.
One proxy (proxy1) using B2B “top hiding” and located in /usr/local/sbc and using one signaling port
Another proxy (proxy2) is just SIP proxy and located in /usr/local/opensips1.6.4/ and using another signaling port
Both proxies using the same ip address of the server
some UA – proxy1 – proxy2 – some gateway
When UA generate CANCEL then proxy1 does some strange things with FROM or TO uri headers (you can see it in attachment). Because of this proxy2 cannot parse CANCEL properly and transaction in proxy2 cannot be canceled.
I found that this problem appears when I use append_hf() to add some header in local route of the proxy1 before sending INVITE to proxy2. Without this adding problem disappears.