### Description Kamailio has two IP interfaces: one (192.168.0.206) towards the Internet-based endpoints and the second (10.197.184.1) - toward my internal SIP servers. I am trying to disable the topology hiding when the messages are sent to my internal SIP servers. In order to achieve this, I added the special event_route block: ``` event_route[topoh:msg-outgoing] { if ($sndfrom(ip) == "10.197.184.1" ) { drop; } } ``` The problem is that the topoh module generates ERROR when trying to parse the response for the "dropped" request: ``` Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [th_msg.c:401]: th_unmask_via(): =======via[1] Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [th_msg.c:402]: th_unmask_via(): hdr: [Via] Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [th_msg.c:404]: th_unmask_via(): body: 100: [SIP/2.0/UDP 10.197.184.1;branch=z9hG4bK3fe4.fc634d55237786cb052f1c0d4fd7d949.0;received=10.197.184.1] Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [th_msg.c:401]: th_unmask_via(): =======via[2] Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [th_msg.c:402]: th_unmask_via(): hdr: [Via] Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [th_msg.c:404]: th_unmask_via(): body: 96: [SIP/2.0/UDP 192.168.6.108:5260;received=192.168.6.108;TH=div;rport=5260;branch=z9hG4bK2821386093] Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [th_msg.c:438]: th_unmask_via(): +body: 5: [DÏã#Ã] Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) ERROR: <core> [core/parser/parse_via.c:1808]: parse_via(): bad char <D> on state 100 Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) ERROR: <core> [core/parser/parse_via.c:2704]: parse_via(): parsing via on: <DÏã#Ã Aug 11 09:32:57 weyl kamailio[31439]: X> Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) ERROR: <core> [core/parser/parse_via.c:2710]: parse_via(): via parse error Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) ERROR: topoh [th_msg.c:464]: th_unmask_via(): cannot find cookie in via2 Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [th_msg.c:597]: th_flip_record_route(): no record route header Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [topoh_mod.c:389]: th_msg_received(): adding cookie: uc Aug 11 09:32:57 weyl kamailio[31439]: 19(31536) DEBUG: topoh [th_msg.c:1034]: th_add_hdr_cookie(): added cookie header [TH: uch Aug 11 09:32:57 weyl kamailio[31439]: ] ``` This problem was also [topoh-error-logs.tar.gz](https://github.com/kamailio/kamailio/files/5056198/topoh-error-logs.tar.gz) discussed here: https://lists.kamailio.org/pipermail/sr-users/2019-February/104730.html. ### Troubleshooting
#### Reproduction
<!-- If the issue can be reproduced, describe how it can be done. -->
#### Debugging Data
[topoh-error-logs.tar.gz](https://github.com/kamailio/kamailio/files/5056184/topoh-error-logs.tar.gz)
``` (paste your debugging data here) ```
#### Log Messages
ref. the attached file ``` (paste your log messages here) ```
#### SIP Traffic Ref. the attached file. A relevant SIP messages trace excerpt is here: ``` ==================== tag: rcv pid: 31533 process: 16 time: 1597138377.884735 date: Tue Aug 11 09:32:57 2020 proto: udp ipv4 srcip: 192.168.6.108 srcport: 5260 dstip: 192.168.0.206 dstport: 5060 ~~~~~~~~~~~~~~~~~~~~ INVITE sip:9992003@leotst.weyl.in.xorcom.com:5060 SIP/2.0^M Via: SIP/2.0/UDP 192.168.6.108:5260;rport;branch=z9hG4bK2821386093^M From: "9000" sip:2001@leotst.weyl.in.xorcom.com;tag=399dbddb56237da^M To: sip:9992003@leotst.weyl.in.xorcom.com:5060^M Call-ID: 9d993e292700d20@192.168.6.108^M CSeq: 20 INVITE^M Contact: sip:2001@192.168.6.108:5260;transport=UDP^M Max-Forwards: 70^M User-Agent: Htek UC903 V2.0.4.6.15 001fc11cc555^M Supported: replaces^M Subject: SIP Call^M Expires: 120^M Allow: INVITE, ACK, UPDATE, INFO, CANCEL, BYE, OPTIONS, REFER, SUBSCRIBE, NOTIFY, MESSAGE, PRACK^M Content-Type: application/sdp^M Content-Length: 236^M ^M v=0^M o=- 887 886 IN IP4 192.168.6.108^M s=SIP Call^M c=IN IP4 192.168.6.108^M t=0 0^M m=audio 12100 RTP/AVP 0 8 101^M a=rtpmap:0 PCMU/8000^M a=ptime:20^M a=rtpmap:8 PCMA/8000^M a=rtpmap:101 telephone-event/8000^M a=fmtp:101 0-11,16^M a=sendrecv^M .......................... ==================== tag: snd pid: 31533 process: 16 time: 1597138377.929560 date: Tue Aug 11 09:32:57 2020 proto: udp ipv4 srcip: 10.197.184.1 srcport: 5060 dstip: 10.197.184.108 dstport: 5060 ~~~~~~~~~~~~~~~~~~~~ INVITE sip:9992003@leotst.weyl.in.xorcom.com:5060 SIP/2.0^M Record-Route: sip:10.197.184.1;r2=on;lr;did=67a.f1e1^M Record-Route: sip:192.168.0.206;r2=on;lr;did=67a.f1e1^M Via: SIP/2.0/UDP 10.197.184.1;branch=z9hG4bK3fe4.fc634d55237786cb052f1c0d4fd7d949.0^M Via: SIP/2.0/UDP 192.168.6.108:5260;received=192.168.6.108;TH=div;rport=5260;branch=z9hG4bK2821386093^M From: "9000" sip:2001@leotst.weyl.in.xorcom.com;tag=399dbddb56237da^M To: sip:9992003@leotst.weyl.in.xorcom.com:5060^M Call-ID: 9d993e292700d20@192.168.6.108^M CSeq: 20 INVITE^M Contact: sip:2001@192.168.6.108:5260;transport=UDP;alias=192.168.6.108~5260~1^M Max-Forwards: 69^M User-Agent: Htek UC903 V2.0.4.6.15 001fc11cc555^M Supported: replaces^M Subject: SIP Call^M Expires: 120^M Allow: INVITE, ACK, UPDATE, INFO, CANCEL, BYE, OPTIONS, REFER, SUBSCRIBE, NOTIFY, MESSAGE, PRACK^M Content-Type: application/sdp^M Content-Length: 252^M TH: dih^M X-cpbxmt-srcip: 192.168.6.108^M ^M v=0^M o=- 887 886 IN IP4 10.197.184.1^M s=SIP Call^M c=IN IP4 10.197.184.1^M t=0 0^M m=audio 11554 RTP/AVP 0 8 101^M a=rtpmap:0 PCMU/8000^M a=ptime:20^M a=rtpmap:8 PCMA/8000^M a=rtpmap:101 telephone-event/8000^M a=fmtp:101 0-11,16^M a=sendrecv^M a=nortpproxy:yes^M |||||||||||||||||||| ==================== |||||||||||||||||||| ==================== tag: rcv pid: 31536 process: 19 time: 1597138377.930085 date: Tue Aug 11 09:32:57 2020 proto: udp ipv4 srcip: 10.197.184.108 srcport: 5060 dstip: 10.197.184.1 dstport: 5060 ~~~~~~~~~~~~~~~~~~~~ SIP/2.0 401 Unauthorized^M Via: SIP/2.0/UDP 10.197.184.1;branch=z9hG4bK3fe4.fc634d55237786cb052f1c0d4fd7d949.0;received=10.197.184.1^M Via: SIP/2.0/UDP 192.168.6.108:5260;received=192.168.6.108;TH=div;rport=5260;branch=z9hG4bK2821386093^M From: "9000" sip:2001@leotst.weyl.in.xorcom.com;tag=399dbddb56237da^M To: sip:9992003@leotst.weyl.in.xorcom.com:5060;tag=as36995166^M Call-ID: 9d993e292700d20@192.168.6.108^M CSeq: 20 INVITE^M Server: GHJ-5.1.10^M Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE^M Supported: replaces, timer^M WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="34e38346"^M Content-Length: 0^M
```
### Possible Solutions
<!-- If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix. -->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
``` # kamailio -v version: kamailio 5.4.0 (x86_64/linux) flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: unknown compiled with gcc 7.5.0
```
* **Operating System**:
``` Ubuntu 18.04 ```
Can you try with the patch referenced above (for now in master branch only)?
I'll try the patch and let you know the result. I also paid attention that 'topoh' modifies the 'via' header field of the request. It inserts the "TH=div" parameter: Original request: ``` INVITE sip:9992003@leotst.weyl.in.xorcom.com:5060 SIP/2.0^M Via: SIP/2.0/UDP 192.168.6.108:5260;rport;branch=z9hG4bK2821386093^M ``` the forwarded request: ``` INVITE sip:9992003@leotst.weyl.in.xorcom.com:5060 SIP/2.0^M Record-Route: sip:10.197.184.1;r2=on;lr;did=67a.f1e1^M Record-Route: sip:192.168.0.206;r2=on;lr;did=67a.f1e1^M Via: SIP/2.0/UDP 10.197.184.1;branch=z9hG4bK3fe4.fc634d55237786cb052f1c0d4fd7d949.0^M Via: SIP/2.0/UDP 192.168.6.108:5260;received=192.168.6.108;TH=div;rport=5260;branch=z9hG4bK2821386093^M ``` Is it correct behavior?
Leonid
Hi Daniel, The patch fixed the problem. Thank you! If you do not mind, I have two questions regarding the issue: 1) When the patch will be incorporated into an official release? 2) Is it ok that 'topoh' adds some cookies to 'via' even when I disable the topology hiding for a request in the event_route[topoh:msg-outgoing] block? (ref. my previous posts)
Closed #2437.
I pushed a commit to remove that special Via cookie parameter. This week I will backport fixes from maser to branch 5.4 and the plan is to release 5.4.1 in the first part of next week.
Reopen if still some issue there.
The documentation for the event_route needs to be adapted as well, I think.