Hi
I have a hashtable with about 2500 elements in it. Some of the key_names are the same and in the config file and I traverse them using the index.
The problem that I am having is that not all the values are loaded into memory. Lets say I have 5 entries with key_name and key_values like this:
1.2.34:5060:10.10.10 --> 0001232555690
1.2.34:5060:10.10.10 --> 0004562555691
1.2.34:5060:10.10.10 --> 0007892555692
1.2.34:5060:10.10.10 --> 0003212555693
1.2.34:5060:10.10.10 --> 0006542555694
when I do this
kamcmd htable.get mytable 1.2.34:5060:10.10.10[0]
kamcmd htable.get mytable 1.2.34:5060:10.10.10[1]
kamcmd htable.get mytable 1.2.34:5060:10.10.10[2]
kamcmd htable.get mytable 1.2.34:5060:10.10.10[3]
kamcmd htable.get mytable 1.2.34:5060:10.10.10[4]
I am supposed to get their values on the console but sometimes I can not get the 3rd or 4th value , instead I receive this error
error: 500 - Key name doesn't exist in htable.
What I have been doing so far is to delete extra/old keys from the physical hashtable and load the values again and then it works for a few days. But there is a process that adds entries to the hashtable and at some point it breaks again and I have to delete again old/unused ones.
I can not use 'expire' here because the time it takes to become "old" is unknown/variable.
This is how the table is defined..2^16 is more than enough to hold 2500 values. What am I missing here?
modparam("htable", "htable", "a=>size=16;autoexpire=0;dbtable=htable;")
I have taken pcap captures between the kamailio server and the db and I see all the values being transferred over the network when the kamailio is loading/refreshing the values from the db.
Is there another limit somewhere?
Also when I try to dump the values I get 'reply too big'.
modparam("ctl", "binrpc_max_body_size", 10240)
modparam("ctl", "binrpc_struct_max_body_size",10240)
./kamcmd htable.dump a
ERROR: reply too big
any assistance is highly appreciated
fborot
Hi all
Using version 5.4.x here.
I save the registrations with use_domain 0 but I do use the domain module to do
some checks.
If I execute "kamctl ul" show I can see the registrations but if I execute
"kamctl ul show username" I get
"ERROR: domain unknown: use usernames with domain or set default domain in
SIP_DOMAIN"
I understand I should use domain in case I was using it in the usrloc module
but I'm not.
How can I tell kamctl not to ask for domain?
cheers,
Jonm
--
PekePBX, the multitenant PBX solution
https://pekepbx.com
Hello,
I have a strange issue here with the Route header not been respected by the
Kamailio server.
I'm getting the INVITE from the SBC-1, adding my own RR header (SBC-2), and
send it to the SBC-3
This is the Invite I'm sending outside to the SBC-3 Proxy.
```
INVITE sip:+123456789@192.168.1.1:5060 SIP/2.0
Record-Route: <sip:SBC-2:5067;transport=tls;r2=on;ftag=as2b53df6f;lr>
Record-Route: <sip:SBC-1;ftag=as2b53df6f;lr>
```
I'm getting back 200OK with mirrored RR, the call is established
successfully.
But, the problem is with the BYE message coming from the SBC-3:
```
BYE sip:+123456789@192.168.1.2:5060 SIP/2.0
ROUTE:
<sip:SBC-2:5067;transport=tls;r2=on;ftag=as2b53df6f;lr>,<sip:SBC-1;ftag=as2b53df6f;lr>
```
There are 2 routes within a single header. Afaik, loose_function should
remove his own Route header (SBC-2) and forward the message to the next
Route (SBC-1), or to the URI if there are not other Routes. But, in my
case, for some reason Kamailio on SBC-2 is sending the request directly to
the URI, bypassing the SBC-1.
In the logs I'm getting the following errors:
*rr_do_force_send_socket(): no socket found to match second RR (sip:SBC-1)*
*rr_do_force_send_socket(): second RR uri is not myself (sip:SBC-1)*
To enforce the socket I was trying to use 'sn=interface', then I'm not
getting anymore this error - but still, Kamailio sends the message directly
to the URI, instead of SBC-1.
Is there anything wrong with my config, or I am missing something with the
Route headers?
Kamailio Version: version: kamailio 5.4.4 (x86_64/linux) bdf4e0
Thank you.
I have configured Kamailio for websockets support and I'm having issues
whenever I try to lookup a WS registered uac on the location table, it never
finds the contact even though the contact is present when I dump the list
via kamcmd. This issue only happens with WS, I tested using another user
agent with a different protocol and it works fine, not sure if this is
related to the fact that WS RURI doesn't really contain the AoR username.
The AoR is something like 104-p4f578, but the contact's address stored is
something like: sip:f0ck9vph@sjm8i3la4i7n.invalid;transport=ws;
--
Sent from: http://sip-router.1086192.n5.nabble.com/Users-f3.html
Hi guys,
I am a beginner in kamailio technology.
I want to use kamailio in secure mode with TLS.
But when I try to connect via TLS, I get this error in terminal:
Mar 08 12:29:36 KAMAILIO5 /usr/sbin/kamailio[1627]: ERROR: <core> [core/tcp_read.c:1512]: tcp_read_req(): ERROR: tcp_read_req: error reading - c: 0x7f6d71a82800 r: 0x7f6d71a828e8 (-1)
Mar 08 12:29:44 KAMAILIO5 /usr/sbin/kamailio[1629]: ERROR: tls [tls_util.h:42]: tls_err_ret(): TLS accept:error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
tls.cfg :
[server:default]
method = TLSv1.2+
verify_certificate = no
require_certificate = no
private_key = /etc/certs/kamailio/kamailio-key.pem
certificate = /etc/certs/kamailio/kamailio-cert.pem
ca_list = /etc/certs/demoCA/kamailio-cert.pem
I followed this tutorial to generate the ssl keys:
http://www.kamailio.net/dokuwiki/doku.php/tls:create-certificates
Can someone please help me?
Hi,
I am running kamailio 5.2.6 on centos 8 and openssl 1.1.1c and connecting and using it as a proxy sip endpoints to a legacy PBX over TLS.
The connection to the backend PBX is over TLS 1.2 . Whenever kamailio initiates a TLS connection to the PBX, it uses session ID and a random session id . The server side has a bug and cannot handle the TLS session resuse apparently because of some bug/issue in caching the TLS sessions.
The renegotiation and session_cache is by default turned off and I also explicitly set to 0 via modparam but kamailio would always send the session ID in the initial client hello and this is causing us trouble. Any help would be greatly appreciated.
https://kamailio.org/docs/modules/5.2.x/modules/tls.html#tls.p.renegotiation
Regards,
RK
For memory bugs like this ...
[mem/f_malloc.c:599]: fm_free(): BUG: fm_free: bad pointer 0x1 (out of
memory block!), called from tm: h_table.c: free_cell_helper(185) - aborting
... I'd love to see a core dump, but unfortunately the SIGCHLD from the
SIGABRT-terminated child is intercepted and leads to a graceful shutdown:
[main.c:743]: handle_sigs(): child process 16037 exited by a signal 6
Is there any way Kamailio can be set to dump core when this happens?
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
Hi to all,
I am going to run multiple Asterisk instances (Pods) in my Kubernetes cluster. I have a stateless Kamailio sip proxy also. We know that K8s can't handle port range for its services, So we have to use host network for Asterisk deployment. But in this mode, Asterisk pods can't connect to other pods through local IPs and you have to add a second network interface to your pods. One solution is using something like Multus that provides multi-home pods. But it has some issue in host-mode!
Also, Using media proxy like RTPEngine in front of Asterisk instances doesn't make a change. You have to run RTPEngine in the host mode or just run it on a VM with multiple NIC.What is the practical solution for this scenario?
Thank you.
BRHossein