### Description
app_python and, in some places, app_python3 handles KEMI calls with 4 and more parameters
incorrectly. It uses "or" operations instead of "and" and thus it will
always tries to convert the call into a "str-str-str-str" invocation.
Also it's missing a "ssii" variant for calling e.g. KSR.htable.sht_setxi()
#### Reproduction
Try to call KSR.htable.sht_setxs() or KSR.htable.sht_setxi() with app_python.
#### Log Messages
```
ERROR: app_python [apy_kemi.c:342]: sr_apy_kemi_exec_func_ex(): unable to retrieve
str-str-str-str params 4
```
### Possible Solutions
Clean up app_python and app_python3 by changing "or" to "and" in lines
like this one:
```
if(ket->ptypes[0]==SR_KEMIP_STR
|| ket->ptypes[1]==SR_KEMIP_STR
|| ket->ptypes[2]==SR_KEMIP_INT
|| ket->ptypes[3]==SR_KEMIP_INT)
```
Further, app_python lacks a "ssii" parameter handler so using
KSR.htable.sht_setxi() is not possible.
**I could contribute a pull request if no core developer has time to fix it.**
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.2.2 (x86_64/linux)
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, 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_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 5.3.1
```
--
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/1944