Hello. We use 2 kamailio servers cluster and we have porblems with db. Database failed pecause of error:
Could not execute Write_rows_v1 event on table production.location; Duplicate entry 'uloc-54aae947-86d-a67' for key 'ruid_idx', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log FIRST, end_log_pos 380, Internal MariaDB error code: 1062
But a location table no row 'ruid_idx' and no entry uloc-54aae947-86d-a67.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/30
We have 2M lines in carrierroute, so we often need to get back the ID of the line from the DB from carrierroute.
This commit creates a new modparam "id_in_avp" for the module carrierroute which may be 0 - 2
0 - no ID, only the description is saved in the avp
1 - ID and descrptiotion is saved in the AVP
2 - Only ID is saved in the AVP.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/221
-- Commit Summary --
* Added modparam id_in_avp for carrierroute so the ID may be returned to the AVP variable for easier debugging
-- File Changes --
M modules/carrierroute/carrierroute.c (7)
M modules/carrierroute/cr_db.c (61)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/221.patchhttps://github.com/kamailio/kamailio/pull/221.diff
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/221
Hi,
I am using Kamailio version: kamailio 4.3.0 (x86_64/linux) c6aa95 on CentOS 6
I am trying to encapsulate ISUP in the INVITE:
```
...
if(has_body("application/sdp"))
{
set_body_multipart();
if(msg_apply_changes())
{
$var(isup) = "7e Od 04 55 75 69 20 4d 61 6b 65 43 61 6c 6c";
append_body_part("$var(isup)","application/isup; version=itu-t92+","signal; handling=optional");
xlog("L_INFO", "ISUP Changes Applied Succesfully");
}
}
ds_select_dst("2","8");
...
```
And getting the following error:
```
kamailio: DEBUG: <core> [msg_translator.c:1691]: get_boundary(): boundary is <--unique-boundary-1>
...
kamailio: DEBUG: <core> [msg_translator.c:1808]: check_boundaries(): last bondary without -- at the end
kamailio: DEBUG: <core> [msg_translator.c:1612]: replace_body(): old size body[365] actual[534]
kamailio: CRITICAL: <core> [data_lump.c:463]: free_lump(): non free-able lump: 0x7f7a33d5ae40 flags=1
```
and then Kamailio crashes.
DEBUG:
```
Jul 9 15:21:56 kamailiohost kamailio: DEBUG: <core> [msg_translator.c:1808]: check_boundaries(): last bondary without -- at the end
Jul 9 15:21:56 kamailiohost kamailio: DEBUG: <core> [msg_translator.c:1612]: replace_body(): old size body[365] actual[513]
Jul 9 15:21:56 kamailiohost kamailio: CRITICAL: <core> [data_lump.c:463]: free_lump(): non free-able lump: 0x7fc340edc270 flags=1
```
Can you please recommend?
p.s. as per: http://lists.sip-router.org/pipermail/sr-users/2015-July/089018.html
Thanks,
Andrei
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/240
Hi, we use pretty recent kamailio:
```
version: kamailio 4.4.0-dev2 (x86_64/linux) 1a758d
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, F_MALLOC, DBG_F_MALLOC, 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: 1a758d
compiled on 14:49:47 Jul 20 2015 with gcc 4.8.2
```
The case:
consider the mobile SIP agent which switches between networks (e.g. wifi -> mobile) during the call. It sends re-INVITE with its new location.
We use keep-alives provided by dialog module. And it seems that keep-alives don't use new address and are always sent to initial address.
Any thoughts?
Thanks.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/273
The commit contains pua_usrloc modifications, which simplifies the publish and regisration processes: in every REGISTER an implicit publish is built in. In this way, a device e.g. do not need to send two individual request towards kamailio (REGISTER, PUBLISH), it can be achieved in a single but extended REGISTER request.
Another small fix is that if the publication is expired (due to broken TCP e.g.), a "closed" NOTIFY should be sent to the contacts.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/177
-- Commit Summary --
* Adding publish in registration functionality
-- File Changes --
M modules/pua_usrloc/pua_usrloc.c (4)
M modules/pua_usrloc/ul_publish.c (152)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/177.patchhttps://github.com/kamailio/kamailio/pull/177.diff
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/177
Right now kamailio.service is available in pkg/kamailio/fedora/17 but not in pkg/kamailio/deb.
With both Ubuntu and Debian switched to systemd it would make sense to unify packaging and use .service for deb packages as well.
In addition to give users chance to better test this before next LTS release it might make sense to add builds for ubuntu 15.04 too.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/294
Kex module updated to also give some details about memory used by each module.
Changed f_*, q_* and tlsf_* memory stubs to also include the module name.
Added 2 new memory API functions(for each of the memory algos) which will
iterate throughout the memory fragments and agregate the memory size used by
each function in order to print it.
Tested with MEMMNG=0,1,2 and MEMDBG=0,1. Use "kamcmd mem.stat mod_name pkg/shm/all" to test
Updated doku.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/225
-- Commit Summary --
* kex: per module memory debugging
-- File Changes --
M events.c (25)
M events.h (4)
M mem/f_malloc.c (135)
M mem/f_malloc.h (47)
M mem/mem.h (32)
M mem/q_malloc.c (113)
M mem/q_malloc.h (40)
M mem/shm_mem.c (4)
M mem/shm_mem.h (32)
M mem/src_loc.h (2)
M mem/tlsf.c (105)
M mem/tlsf.h (32)
M modules/ctl/binrpc_run.c (12)
M modules/kex/doc/kex_admin.xml (76)
M modules/kex/kex_mod.c (7)
A modules/kex/mod_stats.c (288)
A modules/kex/mod_stats.h (37)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/225.patchhttps://github.com/kamailio/kamailio/pull/225.diff
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/225
- There are relatively few differences between the example configuration files.
- The time needed to maintain three separate files doesn't match the benefit.
- The power of the #!define and #!ifdef system negates the need for separate examples.
- It is simple enough to remove #!ifdef sections if one wishes to slim down the file size.
- I'll do a consolidation if no valid argument against it is raised.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/209
I have 3 registrars being replicated to each other using dmq_usrloc. These registrars sit behind proxy servers. I use the path header to specify the received address. When the nathelper module is enabled, the nathelper then sends keep alive options messages from all three registrars for the same contact instead of the node that processed the original registration.
I am using in-memory replication (db_mode = 0), so the server_id core parameter does not seem to be taking affect for in-memory replication, i believe this is only for database mode only. I currently have server_id set differently for each registrar, to no effect.
nathelper module configuration parameters are as follows:
```
modparam("nathelper", "natping_interval", 20)
modparam("nathelper", "natping_processes", 4)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "sipping_from", "sip:keepalive@domain.com")
modparam("nathelper", "sipping_method", "OPTIONS")
modparam("nathelper", "force_socket", NAT_PING_SOCKET)
```
NAT_PING_SOCKET is set to the local interface of each registrar where I want the message to originate from:
```
# Registrar01
#!define NAT_PING_SOCKET "10.7.0.170:5060"
# Registrar02
#!define NAT_PING_SOCKET "10.7.0.171:5060"
# Registrar03
#!define NAT_PING_SOCKET "10.7.0.172:5060"
```
server_id is set for each registrar
```
# Registrar01
server_id=001
# Registrar02
server_id=002
# Registrar03
server_id=003
```
I noticed that when the force_socket is set and a registration is sent from a node that did not process the request, then an options messages is sent via the forced_socket but the originating IP is that of the primary interface of the node, in this case, the kamailio listening address on the 10.6.0.0/24 segment, and example message follows:
```
12:42:13.320519 00:50:56:91:5e:77 > 00:50:56:91:64:fe, ethertype IPv4 (0x0800), length 455: (tos 0x60, ttl 64, id 62009, offset 0, flags [none], proto UDP (17), length 441)
10.6.0.170.sip > 10.7.0.109.sip: [udp sum ok] SIP, length: 413
OPTIONS sip:subscriber01@172.16.0.138:5060;alias=78.143.152.30~49233~1 SIP/2.0
Via: SIP/2.0/UDP 10.6.0.170:5060;branch=0
Route: <sip:10.7.0.109;lr;received=sip:78.143.152.30:49233>
From: sip:keepalive@domain.com;tag=uloc-3-55e0473b-1503-af38-6cf5fbae-864c1976
To: sip:subscriber01@172.16.0.138:5060;alias=78.143.152.30~49233~1
Call-ID: 9f855711-a24ef866-112a3d5(a)10.6.0.170
CSeq: 1 OPTIONS
Content-Length: 0
```
The MAC address above confirms that the sending interface is that of force_socket for nathelper, but the source IP address is that of the primary interface of the registrar.
This results in martian source messages on the target proxy server:
```
Aug 31 12:42:13 proxy01 kernel: martian source 10.7.0.109 from 10.6.0.170, on dev eth1
Aug 31 12:42:13 proxy01 kernel: ll header: 00:50:56:91:64:fe:00:50:56:91:5e:77:08:00
```
I suspect the latter issue (martian source) will resolve itself if the registrar not processing the registration stops sending nathelper keep alive messages for contacts it did not itself process.
Please let me know if you require any additional information from me to debug this issue further.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/310