Hello,
I am using Kamailio pcscf with ipsec.
I have one ipsec listen address which is used by the UE to connect to the PCSCF and one other listen address on port 5060.
During the registration until the ipsec is not established, the UE sends the requests to the ipsec listen address and the pcscf is using the other listen address to forward the sip request to the ICSCF. That's is ok for me.
But when the ipsec is established after the 200 OK REGISTER, the UE sends a SUBSCRIBE but the pcscf forwards the SUBSCRIBE to the SCSCF using its ipsec listen address instead of the other listen address. I tried to use $fs to force the socket but without success.
Do you know how to force the source IP address to be used on the pcscf?
Thanks for your support.
Regards,
Anthony
Hello,
After upgraded from kamailio 5.7.5 to 5.7.6, when did start kamailio
process, got the following error:
WARNING: db_mysql [km_my_con.c:179]: db_mysql_new_connection(): opt_ssl_ca
option not supported by mysql version (value (null)) - ignoring
After downgrade to 5.7.5 dind't happened.
(we don't use mysql ssl connection).
Hello Kamailio Community,
I am currently working on a large scale VoIP deployment and would love to get insights on the best practices for scaling Kamailio. Our current setup handles a moderate volume of calls,,, but we’re expecting a significant increase in traffic soon. Specifically.., I am looking for advice on:
-Optimizing Kamailio’s configuration for high availability and performance.
-Efficiently managing load balancing and failover.
-Recommended hardware specifications for large-scale operations.
-Common pitfalls to avoid when scaling up.
Any tips or resources you could share would be greatly appreciated. If you have experience with similar projects,,, I’d love to hear about your setups and any challenges you faced.
Thank you!
Maria
https://www.igmguru.com/cloud-computing/aws-developer-certification-trainin…
Hello Kamailio Community,
I am currently working on a large scale VoIP deployment and would love to get insights on the best practices for scaling Kamailio. Our current setup handles a moderate volume of calls,,, but we’re expecting a significant increase in traffic soon. Specifically.., I am looking for advice on:
-Optimizing Kamailio’s configuration for high availability and performance.
-Efficiently managing load balancing and failover.
-Recommended hardware specifications for large-scale operations.
-Common pitfalls to avoid when scaling up.
Any tips or resources you could share would be greatly appreciated. If you have experience with similar projects,,, I’d love to hear about your setups and any challenges you faced.
Thank you!
Maria
<a href="https://www.igmguru.com/cloud-computing/aws-developer-certification-trainin…">aws</a>
Hi all
version 5.7.6 Debian 12
I'm having issues with a kamailio server not sending 200 to some OPTIONS
requests.
It does send 200 to some subscribers but not 100% of the time to 100% of subs.
I have enabled debug=3 in that server and this is what I found:
If the log says that it found existing tcp connection and it's reusing it I
can't see the 200ok in a sngrep capture. Example:
<core> [core/receive.c:126]: sip_check_fline(): first line indicates a SIP
reply
<core> [core/tcp_main.c:1722]: _tcpconn_find(): found connection by id: 2
<core> [core/tcp_main.c:2614]: tcpconn_send_put(): send from reader (360359
(18)), reusing fd
<core> [core/tcp_main.c:2845]: tcpconn_do_send(): sending...
<core> [core/tcp_main.c:2881]: tcpconn_do_send(): after real write: c=
0x7fb0faa893d8 n=384 fd=14
<core> [core/tcp_main.c:2882]: tcpconn_do_send(): buf=#012SIP/2.0 200
Keepalive#015#012Via: SIP/2.0/TCP
10.35.190.105:5060;branch=z9hG4bK15ebf764;rport=55894;received=1.1.1.186#015#012From:
"Unknown" <sip:contesta01@10.35.190.105>;tag=as5311c3a7#015#012To: <sip:
1.1.1.138>;tag=054524a74bcccf444a0f08f67c5b7657.d07b5401#015#012Call-ID:
15dcd38c46f915576ded132a11d8ff4c@10.35.190.105:5060#015#012CSeq: 102
OPTIONS#015#012Server: aaa SBC#015#012Content-Length: 0#015#012#015#012
<core> [core/receive.c:531]: receive_msg(): request-route executed in: 302 usec
On the other side, if kamailio doesn't find an existing tcp connection (at
least nothing in the logs about that) I can see the 200 ok in sngrep. Example:
<core> [core/receive.c:126]: sip_check_fline(): first line indicates a SIP reply
<core> [core/receive.c:531]: receive_msg(): request-route executed in: 295 usec
All subs use tcp. And the kamailio.cfg is very simple regarding OPTIONS:
Sanity, check maxfwd and sl_send_reply(200).
Any hints?
cheers,
Jon
--
PekePBX, the multitenant PBX solution
https://pekepbx.com
Hi everyone,
I'm trying to configure drouting module but i'm not sure how to configure dr_gateways table to use domain names and TLS instead of IPs
How should I do it?
In dispatcher module is by using sips:domain but when I configure it like this I have problems to send invites (maybe I'm doing something wrong).
Does anyone know how to configure it?
Thanks in advance for your help
Samuel Moya Tinoco
Departamento de Sistemas y Redes
Móvil: (+34) 606985997
smoya(a)vivelibre.es<mailto:smoya@vivelibre.es>
[cid:image001.png@01DAD156.D8CFF170]
Soluciones inteligentes
para la autonomía personal
Hello all,
I am using a very simple scritp with corex module enabled . Normal calls works fine, but a scenario where INVITE does not
receive response and the call is released with SIP 408 (request timeout) leads to memmory leak. I verified it making a lot of
calls with this scenario and printing the shared memory (using kamcmd core.shmmem) . Its ocurred with modparam("corex", "nio_intercept", 1).
If I modify to modparam("corex", "nio_intercept", 0) the memmory leak does not ocurr anymore.
The problem also occurs in another scenario where the SIP Cancel message is not responded to.
My script has this event route
# event route
event_route[network:msg] {
xlog("L_INFO", "Dentro do Event_Route \n");
if (is_incoming()) {
xlog("L_INFO", "Received message '$mb' \n");
$avp(msg) = $mb;
xinfo("avp(msg) = $avp(msg)");
} else {
xlog("L_INFO", "Sending message '$mb' \n");
$avp(msg) = $mb;
};
}
Test done wtih 4000 calls:
[root@labcom070 kamailio]# kamctl stats shmem
{
"jsonrpc": "2.0",
"result": [
"shmem:fragments = 900",
"shmem:free_size = 6180368",
"shmem:max_used_size = 66980272",
"shmem:real_used_size = 60928496",
"shmem:total_size = 67108864",
"shmem:used_size = 54884944"
],
"id": 393115
}
[root@labcom070 kamailio]# kamcmd mod.stats all shm
Module: core
{
create_avp(178): 52257504
counters_prefork_init(211): 53760
cfg_clone_str(132): 112
cfg_shmize(221): 832
main_loop(1381): 16
init_pt(104): 16
init_pt(103): 16
init_pt(102): 6224
cfg_register_ctx(47): 96
init_tcp(5197): 8192
init_tcp(5191): 32768
init_tcp(5182): 16
init_tcp(5175): 16
init_tcp(5167): 16
init_tcp(5161): 16
init_tcp(5149): 16
init_avps(92): 16
init_avps(91): 16
init_dst_blocklist(435): 16384
init_dst_blocklist(427): 16
timer_alloc(494): 96
init_dns_cache(368): 16
init_dns_cache(359): 16384
init_dns_cache(351): 16
init_dns_cache(343): 16
init_timer(264): 16
init_timer(263): 16384
init_timer(262): 16
init_timer(261): 16
init_timer(250): 16
init_timer(218): 16
init_timer(207): 278544
init_timer(206): 16
init_timer(194): 16
cfg_child_cb_new(832): 64
sr_cfg_init(371): 16
sr_cfg_init(364): 16
sr_cfg_init(356): 16
sr_cfg_init(344): 16
sr_cfg_init(332): 16
ksr_shutdown_phase_init(123): 16
rpc_hash_add(118): 16
qm_shm_lock_init(1463): 16
Total: 52687808
}
I attached my kamailio script used and a log with one call using the command "kamcmd corex.shm_summary" with modparam("corex", "nio_intercept", 1)
and modparam("corex", "nio_intercept", 0)
Regards,
Vanderlei
Hello all,
I'm using Kamailio with native script and KEMI in Javascript.
I noticed that functions from the TM module can have different results if I
call them on KEMI or Native script. Is this intended behaviour? Don't they
share the state?
In order to test this i made the following code :
KEMI Code :
function ksr_request_route() {
try{
if ( KSR.is_method("BYE") ) {
print.error("BYE Request KEMI BYE")
KSR.route("exists_test")
if(KSR.tm.t_exists()) {
print.error("KEMI : Transaction exists")
}
else {
print.error("KEMI : Transaction does not exist")
}
Native Code :
route[exists_test] {
if( t_exists()) {
xerr("Native Script : Transaction exists \n");
}
else {
xerr("Native Script : Transaction does not exist \n");
}
}
I've also tried to change function call order but every time I get
"Transaction does not exist" on native and "Transaction Exists" on KEMI.
Is this intended behaviour? Should I only call tm functions in native or
Kemi in order to have consistency ?
Thanks in advance,
Best Regards,