If I run set_contact_alias nothing happens - the contact remains the same on the outbound message There's no error returned and debug logs indicate a proper header
However, if I add "msg_apply_changes()" on the line after set_contact_alias the Contact sent to next hop has the alias content No other changes
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/445
Hi devs,
I'm trying to make the db_cassandra work for my kamailio specifically userblacklist module.
I've cassanda keyspace and tables defined along with the db_schema directory structure defined as instructed however the debug logs keep telling me that table 'version' doesn't exist.
I've taken a look inside the dbcassa_table.c file
https://github.com/kamailio/kamailio/blob/master/modules/db_cassandra/dbcas…
Somewhere in this function it just doesn't get hold of "tbc" and hence it throws up error.
Here is how I've figured out this code.
hash = core_hash(dbn, tbn, DBCASSA_TABLE_SIZE);
**if(!hash)
LM_ERR("hash NOT FOUND\n");**
hashidx = hash % DBCASSA_TABLE_SIZE;
**if(!hashidx)
LM_ERR("hashidx NOT FOUND\n");**
ref_read_data(dbcassa_tbl_htable[hashidx].lock);
tbc = dbcassa_tbl_htable[hashidx].dtp;
**if(!tbc)
LM_ERR("TBC NOT FOUND\n");**
while(tbc) {
LM_DBG("found dbname=%.*s, table=%.*s\n", tbc->dbname.len, tbc->dbname.s, tbc->name.len, tbc->name.s);
if(tbc->hash==hash && tbc->dbname.len == dbn->len
&& tbc->name.len == tbn->len
&& !strncasecmp(tbc->dbname.s, dbn->s, dbn->len)
&& !strncasecmp(tbc->name.s, tbn->s, tbn->len)) {
memcpy(full_path_buf + dbcassa_schema_path.len, dbn->s, dbn->len);
len = dbcassa_schema_path.len + dbn->len;
full_path_buf[len++] = '/';
memcpy(full_path_buf + len, tbn->s, tbn->len);
full_path_buf[len + tbn->len] = '\0';
if(dbcassa_check_mtime(&tbc->mt) == 0)
return tbc;
old_tbc = tbc;
break;
}
tbc = tbc->next;
}
unref_read_data(dbcassa_tbl_htable[hashidx].lock);
**if(!old_tbc) {
LM_ERR("OLD_TBC NOT FOUND\n");**
return NULL;
}
and upon starting of kamailio after recompiling the module I see these lines printed.
0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:149]: db_cassa_new_connection(): opening connection: cassa://xxxx:xxxx@127.0.0.1:9160/kamailio
0(15574) DEBUG: <core> [mem/f_malloc.c:439]: fm_malloc(): fm_malloc(0x7f9c14f8a010, 48) called from db_cassandra: dbcassa_base.cpp: db_cassa_new_connection(155)
0(15574) DEBUG: <core> [mem/f_malloc.c:514]: fm_malloc(): fm_malloc(0x7f9c14f8a010, 48) returns address 0x7f9c150055f0
0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:161]: db_cassa_new_connection(): 0x7f9c150055f0=pkg_malloc(48)
0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:117]: dbcassa_open(): Opened connection to Cassandra cluster 127.0.0.1:9160
0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:955]: db_cassa_query(): query table=version
**0(15574) ERROR: db_cassandra [dbcassa_table.c:463]: dbcassa_db_get_table(): TBC NOT FOUND
0(15574) ERROR: db_cassandra [dbcassa_table.c:486]: dbcassa_db_get_table(): OLD_TBC NOT FOUND**
0(15574) ERROR: db_cassandra [dbcassa_base.cpp:449]: cassa_translate_query(): table version does not exist!
0(15574) ERROR: db_cassandra [dbcassa_base.cpp:962]: db_cassa_query(): Failed to query Cassandra cluster
0(15574) ERROR: <core> [db.c:397]: db_table_version(): error in db_query
0(15574) ERROR: <core> [db.c:436]: db_check_table_version(): querying version for table userblacklist
0(15574) ERROR: userblacklist [db_userblacklist.c:86]: userblacklist_db_init(): during table version check.
0(15574) DEBUG: <core> [db_pool.c:100]: pool_remove(): removing connection from the pool
0(15574) DEBUG: <core> [mem/f_malloc.c:575]: fm_free(): fm_free(0x7f9c14f8a010, 0x7f9c150055f0), called from db_cassandra: dbcassa_base.cpp: db_cassa_free_connection(203)
0(15574) DEBUG: <core> [mem/f_malloc.c:594]: fm_free(): fm_free: freeing block alloc'ed from db_cassandra: dbcassa_base.cpp: db_cassa_new_connection(155)
0(15574) DEBUG: <core> [mem/f_malloc.c:575]: fm_free(): fm_free(0x7f9c14f8a010, 0x7f9c15005318), called from core: db.c: db_do_close(356)
0(15574) DEBUG: <core> [mem/f_malloc.c:594]: fm_free(): fm_free: freeing block alloc'ed from core: db.c: db_do_init2(298)
0(15574) ERROR: <core> [sr_module.c:968]: init_mod(): Error while initializing module userblacklist (/usr/local/lib64/kamailio/modules/userblacklist.so)
ERROR: error while initializing modules
Kindly look into this and let me know how to make this work.
Thanks,
Sammy
---
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/618
This is a snip from the user's mailing list, I'm just adding it to the issue tracker, as it is yet to be confirmed as a bug, only here for tracking pruporses:
```
I have a situation where I have 2 devices registering with the same AOR, I have the registrar module's max_contacts parameter set to 1 and I use the 0x04 flag on the save function.
When I use dmq_usrloc for replication, I can see 2 contacts registered for the AOR on the "client" nodes whereas the node where the actual registration took place only has 1 contact for the AOR.
```
```
It seems to me like another bug, although again I'm not familiar with the module so can't be sure without looking that it is not intended behaviour.
I plan to look later this week when I have some time but in the meantime, you can send me the examples directly if you like.
```
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/265
Kamailio takes care of sending in-dialog keep-alives using OPTIONS when dlg_set_attribute ka-src and ka-dst is used. It also sends OPTIONS to correct address if a client sends Re-Invite indicating a network change, which is a common case with mobile clients (switching between mobile-data and Wifi) fixed in #273
The problem is that it ends the dialog on missing even one keep-alive response. Missing a response is possible when the client is handling the network change and keep-alive is sent around that time.
Thus, having a configurable counter after which you expect to end the dialog might be helpful. For eg. you decide to end the dialog after we miss 3 responses for keep-alives in a row.
Something like dlg_set_attribute(ka-src, 3) where 3 indicates the number of responses that can be missed before ending the dialog.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/438
Kamailio had an abort happend and does a coredump. Sorry I doesn't have debug symbols on this machine.
Kamailio:
```
root@voip-integration-cust1:~ # kamailio -V
version: kamailio 4.4.0 (amd64/freebsd) d4f23c
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_PTHREAD_MUTEX, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, select, kqueue.
id: d4f23c
compiled on 16:52:24 Apr 30 2016 with clang 3.4
```
Log:
```
May 4 17:55:27 <local0.crit> voip-integration-cust1 kamailio[1177]: CRITICAL: <core> [pass_fd.c:275]: receive_fd(): EOF on 12
May 4 17:55:27 <kern.info> voip-integration-cust1 kernel: pid 1147 (kamailio), uid 986: exited on signal 6 (core dumped)
May 4 17:55:27 <kern.info> voip-integration-cust1 kernel: pid 1146 (kamailio), uid 986: exited on signal 6 (core dumped)
May 4 17:55:27 <local0.alert> voip-integration-cust1 kamailio[1145]: ALERT: <core> [main.c:739]: handle_sigs(): child process 1147 exited by a signal 6
May 4 17:55:27 <local0.alert> voip-integration-cust1 kamailio[1145]: ALERT: <core> [main.c:742]: handle_sigs(): core was generated
May 4 17:55:27 <kern.info> voip-integration-cust1 kernel: pid 1148 (kamailio), uid 986: exited on signal 6 (core dumped)
```
Backtrace:
```
#0 0x000000080110235a in thr_kill () from /lib/libc.so.7
#1 0x0000000801102346 in raise () from /lib/libc.so.7
#2 0x00000008011022c9 in abort () from /lib/libc.so.7
#3 0x0000000800e3195a in pthread_attr_getaffinity_np () from /lib/libthr.so.3
#4 0x0000000800e2d046 in pthread_mutex_destroy () from /lib/libthr.so.3
#5 0x0000000805b436b5 in rpc_reply () from /usr/local/lib/kamailio/modules/tm.so
#6 0x0000000805b23f18 in tm_reply_mutex_lock () from /usr/local/lib/kamailio/modules/tm.so
#7 0x0000000805b34ba2 in reply_received () from /usr/local/lib/kamailio/modules/tm.so
#8 0x000000000057146b in forward_reply ()
#9 0x0000000000570cca in forward_reply ()
#10 0x00000000004682a4 in receive_msg ()
#11 0x0000000000645023 in udp_rcv_loop ()
#12 0x0000000000543cad in main_loop ()
#13 0x00000000005519a5 in main ()
```
---
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/604
I would like the URI transformations to be more generic so one can pick up the URI scheme, like HTTP: or TEL:
Just an idea
---
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/592
ENV: Debian 8
So on most Linux systems the /var/run folder is a tmpfs and after which clears after each reboot
As I try to start up kamailio after a reboot through kamctl I get the following error.
"ERROR: PID file /var/run/kamailio.pid does not exist -- Kamailio start failed"
Because kamailio does not have the permission to write to the /var/run folder as the kamailio user.
Would it be possible to add in the "kamctl" code a section where the SPECIFIED PID LOCATION (/var/run/kamailio) is checked and if it does not exist create it as the root user and chown it to the SPECIFIED USER (kamailio)? The way I have patched it for now is to create a init script that creates a /var/run/kamailio folder and chmods it to kamailio:kamailio
Thanks everyone!
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/231