Module: kamailio
Branch: 5.0
Commit: 826b3cab606fb51c7139fe81463aeb2409f40b67
URL: https://github.com/kamailio/kamailio/commit/826b3cab606fb51c7139fe81463aeb2…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2017-06-25T10:14:52+02:00
topoh: documented uri_prefix_checks parameter
(cherry picked from commit ca3f2fc6dd2c94410b225d2efb82081b828ddd01)
---
Modified: src/modules/topoh/doc/topoh_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/826b3cab606fb51c7139fe81463aeb2…
Patch: https://github.com/kamailio/kamailio/commit/826b3cab606fb51c7139fe81463aeb2…
---
diff --git a/src/modules/topoh/doc/topoh_admin.xml b/src/modules/topoh/doc/topoh_admin.xml
index 2d92f21e47..83850d277c 100644
--- a/src/modules/topoh/doc/topoh_admin.xml
+++ b/src/modules/topoh/doc/topoh_admin.xml
@@ -10,9 +10,9 @@
<!-- Module User's Guide -->
<chapter>
-
+
<title>&adminguide;</title>
-
+
<section>
<title>Overview</title>
<para>
@@ -253,7 +253,34 @@ modparam("topoh", "sanity_checks", 1)
</programlisting>
</example>
</section>
-
+ <section>
+ <title><varname>uri_prefix_checks</varname> (integer)</title>
+ <para>
+ If set to 1, topoh module will check if URIs to be decoded match
+ the expected prefix composed from mask IP and parameter name prefix.
+ It can make the topoh processing safer by avoiding to try decoding
+ URIs which were not encoded previously by topoh.
+ </para>
+ <para>
+ Note: do not enable this option if you have SIP devices that can
+ alter the URI values it takes from Contact or Record-Route headers
+ (like adding port 5060 when no port is in received URIs, or
+ thet introduce new parameters at unknown position).
+ </para>
+ <para>
+ <emphasis>
+ Default value is 0.
+ </emphasis>
+ </para>
+ <example>
+ <title>Set <varname>uri_prefix_checks</varname> parameter</title>
+ <programlisting format="linespecific">
+...
+modparam("topoh", "uri_prefix_checks", 1)
+...
+</programlisting>
+ </example>
+ </section>
</section>
</chapter>
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests.
If you have questions about using Kamailio or related to its configuration file,
ask on sr-users mailing list:
* http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
If you have questions about developing extensions to Kamailio or its existing
C code, ask on sr-dev mailing list
* http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
Please try to fill this template as much as possible for any issue. It helps the
developers to troubleshoot the issue.
If you submit a feature request (or enhancement), you can delete the text of
the template and only add the description of what you would like to be added.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
After upgrading kamailio from 4.4.5 to 5.0.2 ACK/BYE packets are routed incorrectly. Instead of routing from KAMAILIO INT IP to SIP UAC #2 ACK/BYE packets are routed from KAMAILIO EXT IP to KAMAILIO INT IP.
I attached two diagrams. First is from kamailio 4.4.5 with correct routing. Second is from kamailio 5.0.2 with wrong routing.
One of improtant notice is when topoh module is disabled ACK/BYE packets are routed correctly on kamailio 5.0.2.
Also in kamailio 5.0.2 DURI and RURI of ACK/BYE packets are populated not by Contact value of OK packet from SIP UA #2 but Record-Route value from OK packet. In kamailio 4.4.5 DURI is not populated at all and RURI is correct one.
### Troubleshooting
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
SIP trace diagram from kamailio 4.4.5: http://imgur.com/5J95spW
SIP trace diagram from kamailio 5.0.2: http://imgur.com/TDOGdgA
<!--
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`
```
version: kamailio 4.4.5 (x86_64/linux) f98162
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, 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
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: f98162
compiled on 03:47:31 Feb 27 2017 with gcc 4.8.5
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `uname -a`)
-->
```
Red Hat Enterprise Linux Server release 7.3 (Maipo)
Linux 2.6.32-042stab113.21 #1 SMP Wed Mar 23 11:05:25 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1165
Module: kamailio
Branch: master
Commit: ca3f2fc6dd2c94410b225d2efb82081b828ddd01
URL: https://github.com/kamailio/kamailio/commit/ca3f2fc6dd2c94410b225d2efb82081…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2017-06-25T10:00:01+02:00
topoh: documented uri_prefix_checks parameter
---
Modified: src/modules/topoh/doc/topoh_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/ca3f2fc6dd2c94410b225d2efb82081…
Patch: https://github.com/kamailio/kamailio/commit/ca3f2fc6dd2c94410b225d2efb82081…
---
diff --git a/src/modules/topoh/doc/topoh_admin.xml b/src/modules/topoh/doc/topoh_admin.xml
index c3366dd735..0d8bda5bb1 100644
--- a/src/modules/topoh/doc/topoh_admin.xml
+++ b/src/modules/topoh/doc/topoh_admin.xml
@@ -253,6 +253,34 @@ modparam("topoh", "sanity_checks", 1)
</programlisting>
</example>
</section>
+ <section>
+ <title><varname>uri_prefix_checks</varname> (integer)</title>
+ <para>
+ If set to 1, topoh module will check if URIs to be decoded match
+ the expected prefix composed from mask IP and parameter name prefix.
+ It can make the topoh processing safer by avoiding to try decoding
+ URIs which were not encoded previously by topoh.
+ </para>
+ <para>
+ Note: do not enable this option if you have SIP devices that can
+ alter the URI values it takes from Contact or Record-Route headers
+ (like adding port 5060 when no port is in received URIs, or
+ thet introduce new parameters at unknown position).
+ </para>
+ <para>
+ <emphasis>
+ Default value is 0.
+ </emphasis>
+ </para>
+ <example>
+ <title>Set <varname>uri_prefix_checks</varname> parameter</title>
+ <programlisting format="linespecific">
+...
+modparam("topoh", "uri_prefix_checks", 1)
+...
+</programlisting>
+ </example>
+ </section>
</section>
<section>
### Description
1) I used kamailio as an scscf (based on the configuration files from kamailio/examples/scscf)
2) I did some changes according to my needs
3) I did some Basic tests - the results were satisfying --> OK
4) I configured a distinct PSI on the HSS (sip:04321234501@vict-ims.net) --> OK
5) I registered some user from a Zoiper Client --> OK
6) I told zoiper to call sip:04321234501@vict-ims.net --> I received 555 AS Contacting Failed - iFC terminated dialog
### Troubleshooting
The SIP Response 555...... is misleading, in the WITH_DEBUG Logs we can see, the ims_isc module cannot deliver the INVITE message to the AS, because it "thinks", we are in an "on_failure" route, but the asynchronous SAR to the HSS was sent in an "request" route.
File 2017_06_20_distinct_psi_03_scscf_kamailio.log:
Line 642 - 660:
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: INFO: ims_registrar_scscf [cxdx_avp.c:138]: cxdx_get_avp(): cxdx_get_experimental_result_code: Failed finding avp
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: INFO: ims_registrar_scscf [cxdx_sar.c:84]: create_return_code(): created AVP successfully : [saa_return_code] - [1]
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[UNREG_SAR_REPLY] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=127 a=26 n=xlog
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[UNREG_SAR_REPLY] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=143 a=21 n=switch
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[UNREG_SAR_REPLY] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=130 a=26 n=xlog
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[UNREG_SAR_REPLY] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=131 a=5 n=route
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=673 a=26 n=xlog
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=675 a=24 n=t_newtran
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: tm [tm.c:1316]: w_t_newtran(): ERROR: t_newtran: transaction already in process 0x7ff2a6e66a58
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=677 a=25 n=set_dlg_profile
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=692 a=16 n=if
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=685 a=25 n=is_method
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=686 a=63 n=assign
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=687 a=63 n=assign
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=688 a=24 n=record_route
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=698 a=16 n=if
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: ERROR: *** cfgtrace:failure_route=[term] c=[/usr/local/etc/kamailio-scscf/kamailio-scscf-routes.cfg] l=692 a=26 n=isc_match_filter
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: INFO: ims_isc [mod.c:233]: isc_match_filter(): Checking triggers
Jun 20 16:14:12 vict-ims /usr/local/sbin/kamailio[108125]: CRITICAL: ims_isc [mod.c:284]: isc_match_filter(): SKIP: 0
Root cause must be found in TM module in file t_suspend.c in function t_continue(), where the type of the Routing block, that was suspended is written to the type of the new Routing block:
line 214 - 229
/* which route block type were we in when we were suspended */
cb_type = FAILURE_CB_TYPE;
switch (t->async_backup.backup_route) {
case REQUEST_ROUTE:
cb_type = **FAILURE_CB_TYPE**; <------------ this is the root cause, imho
break;
case FAILURE_ROUTE:
cb_type = FAILURE_CB_TYPE;
break;
case TM_ONREPLY_ROUTE:
cb_type = ONREPLY_CB_TYPE;
break;
case BRANCH_ROUTE:
cb_type = FAILURE_CB_TYPE;
break;
}
#### Reproduction
I can help to reproduce the issue. mailto:christoph.valentin@kapsch.net
Currently I have got an experimental test Setup using Zoiper Clients.
After week 27 I should have simulated test cases to repeat the Scenario "per mouse-click"
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
```
(paste your debugging data here)
```
#### Log Messages
<!--
-->
```
[logs-tshark-routes_2017_06_21.zip](https://github.com/kamailio/kamailio/fil…
```
#### SIP Traffic
<!--
-->
```
[logs-tshark-routes_2017_06_21.zip](https://github.com/kamailio/kamailio/fil…
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
```
[root@vict-ims ~]# kamailio -v
version: kamailio 4.4.5 (x86_64/linux) b0945e-dirty
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, 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
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: b0945e -dirty
compiled on 20:06:13 Jun 7 2017 with gcc 4.8.5
[root@vict-ims ~]#
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `uname -a`)
-->
```
[root@vict-ims ~]# uname -a
Linux vict-ims 3.10.0-229.el7.x86_64 #1 SMP Thu Jan 29 18:37:38 EST 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@vict-ims ~]#
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1160