[sr-dev] [kamailio/kamailio] wrong callback type after asynchronous SAR to HSS (distinct PSI) (#1160)

christoph-v notifications at github.com
Wed Jun 21 14:30:01 CEST 2017


### 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 at vict-ims.net) --> OK
5) I registered some user from a Zoiper Client --> OK
6) I told zoiper to call sip:04321234501 at 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 at 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/files/1091394/logs-tshark-routes_2017_06_21.zip)
```

#### SIP Traffic

<!--
-->

```
[logs-tshark-routes_2017_06_21.zip](https://github.com/kamailio/kamailio/files/1091394/logs-tshark-routes_2017_06_21.zip)
```

### 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 at 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 at 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 at 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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-dev/attachments/20170621/8762dd29/attachment.html>


More information about the sr-dev mailing list