Hello ,
im using kamailio with two interfaces external and internal.
i need a way either to :
* enable topoh hiding only when outgoing interface is external ( mask contact and Via ip only when ougoing interface is external
* or if it is not possible to enable it only in one direction.i want to know how to configure dynamic(for example in xavp or avp) ip to put in Contact and Via when topoh is enabled.
i see that the 'mask_ip' parameter of topoh module is a string. so we can not set a dynamic value here unfortunately.
Thanks
Hello!
Due to I still experience irregular Kamailio 5.4 crashes (like 1/month)
related to SSL (using websockets and SIPS) I'm wondering, could openSSL
upgrade change the situation?
As of now in CentOS 7 I have 1.0.2k version.
Does anyone have experience to fix crash-related to TLS problems with
openSSL upgrade?
Or maye some tuneup of TCP parameters can help here?My current setup is
quite simple:
children=4
enable_tls=yes
tcp_accept_no_cl=yes
tcp_connection_lifetime=600
tcp_max_connections=998976 # 1000000 - 1024, so we're leaving 1k for system
reserve
tls_max_connections=998976
Number of clients ~ 200 constantly connected to websocket.
--
Best regards,
Igor
I am not sure what I have to look for and I didn't change the initial
config files (except for the 666 mode for kamailio_rpc.sock).
As far as Kamailio is concerned the socket files files do exist:
root@deb11srv1-kamailio:/var/www/siremis-5.3.x# ls -l /run/kamailio/
insgesamt 4
srw------- 1 kamailio kamailio 0 7. Jun 11:37 kamailio_ctl
-rw-r--r-- 1 kamailio kamailio 5 7. Jun 11:37 kamailio.pid
prw-rw---- 1 kamailio kamailio 0 7. Jun 11:37 kamailio_rpc.fifo
srw-rw-rw- 1 kamailio kamailio 0 7. Jun 11:37 kamailio_rpc.sock
When I look at siremis/log/ERR.log I repeatedly get:
'06/07/2022','09:43:29','ERR','ErrorHandler','socket_bind(): unable to
bind address [2]: No such file or directory',''
This disappears when I put the local file socket in /tmp:
<UnixSockLocal name="unixsocklocal" address="/tmp/siremis_rpc.sock"
timeout="3.0"/>
which was probably done this way in previous versions of Siremis (before
systemd private tmp config). In this case I get no error messages, but
still no answers (as expected). The next step seems to get UnixSockLocal
right.
I suspect this must have been addressed before but I couldn't find a way of
searching Archives.
I'm using Alpine Linux.
Used "apk add kamailio" to install Kamailio 5.5.4-r1
Following the Instructions on
https://kamailio.org/docs/tutorials/5.5.x/kamailio-install-guide-git/
At the section for "Creating MySQL database" I modify the file and then run
kamdbctl create
ERROR: could not load the script in /usr/lib/kamailio//kamctl/kamdbctl.mysql
for database engine MYSQL
ERROR: database engine not loaded - tried 'MYSQL'
I checked the /usr/lib/kamailio//kamctl/ directory and the file wasn't
there
I suspect I'm missing a module but there aren't any other packages listed
for Kamailio at pkgs.alpinelinux.org
Thanks for your help
P Crossley
Hi
I'm thinking on having a cps preference for each pstn gw that I can check.
I've started thinking in the pike module but it won't allow me to set custom
cps per peer. seems that the threshold is global.
Ratelimit module needs the queues to be set as modparam, not dynamic AFAICS.
Any hints?
cheers,
Jon
--
PekePBX, the multitenant PBX solution
https://pekepbx.com
I have three Kamailios in three different servers which are dispatching
calls to 9 asterisks in three different servers using load balancing. All
these Kamailios are using databases installed on that servers. As the
entries of the dispatcher table are the same for all the Kamailio, so I
want that these Kamailio use a single database installed on one of the
servers. All these Kamailios instances should use the same database which
is common between them. And also I want these Kamailios to write into the
database by creating a table that stores all the active calls in three
Kamailios. Is it possible? How can I do it? Please guide me with
somewhat explanation as I am not this much expert in Kamailio.
Waiting for a quick response.
Regards
VoIP Engineer Vicky
Hello,
I have kamailio in local network behind NAT. Kamailio have one interface
eth1 with ip 10.130.0.23
UserAgent - (internet) - (178.0.0.169)router_with_NAT - (LAN) -
kamailio+rtpproxy - pbx
I made two listeners:
listen=udp:10.130.0.23:5070 #to pbx in lan (I don`t want to put via header
with 178.0.0.169)
listen=udp:10.130.0.23:5060 advertise 178.0.0.169:5060 #to internet
(UserAgent need to get via header with 178.0.0.169 )
mhomed = 1 # I think It not useful for my case
UserAgent send Register and Invite to 178.0.0.169:5060, Kamailio get it on
udp:10.130.0.23:5060
Kamailio Relay it to udp:10.130.0.23:5070
My pbx get requests from udp:10.130.0.23:5070 with via header 10.130.0.23
Responses to UserAgent go from udp:10.130.0.23:5060 with via 178.0.0.169
In RELAY block:
if ($Ru == «udp:10.130.0.23:5070») {
#set_send_socket(«udp:10.130.0.23:5060»);
$fs = «udp:10.130.0.23:5060»;
#force_send_socket(«udp:10.130.0.23:5060»);
} else {
#set_send_socket(«udp:10.130.0.23:5070»);
$fs = «udp:10.130.0.23:5070»;
}
#$fs = «udp:10.130.0.23:5070»;
if (!t_relay()) {
sl_reply_error();
}
route[REGISTRAR] {
if ($rd == "mydomain.ru" || $rd == "mydomain2.ru") {
set_send_socket("udp:10.130.0.23:5070");
}
}
It works for requests from UserAgent to PBX. But INVITE from my pbx to
UserAgent goes only through udp:10.130.0.23:5070 , Kamailio realy it to
internet from udp:10.130.0.23:5070
I get error in syslog: (pv [pv_branch.c:62]: pv_get_branchx_helper():
error accessing branch [0])
I tried set_send_socket(«udp:10.130.0.23:5070»); and $fs =
«udp:10.130.0.23:5070»;
Why I can`t relay outgoing requests to internet through another socket?
--
Best regards,
Alex
Hey Kamailio Users,
So the scenario is we get the registers. Load them, slightly oddly as
we also fill in the received section, not something I usually do.
Then when they send an invite, the To and From headers are real phone
numbers and for some reason the contact header isn't their username.
So to compensate for that I'm trying to match their connection ($sut)
using registered, but after a couple of hours I haven't been able to
get it to match up. Not sure what I'm missing.
ul.dump gets me
Received: sip:sipclientpublicip:2353;transport=udp
so we know that part is loading $sut correctly into the user location data.
modparam("usrloc", "matching_mode", 2)
modparam("registrar", "xavp_rcd", "ulrcd")
modparam("registrar", "received_avp", "$avp(i:42)")
$xavp(regcfg=>match_received) = $sut;
if (registered("location","$sut", 2, 1)) {
After that block of code $sut is sip:
sipclientpublicip:2353;transport=udp which is what's in usrloc for
received, but it's not match.
There's probably a much smarter way of doing this that I've completely
missed, if so then that'd be excellent. But if I'm on the right path
somewhat then it would be great to get this working.
Hello!
I have several Kamailio sharing a common uacreg table and use the RPC
interface to enable and disable outgoing registration on nodes depending on
the cluster status:
*kamcmd uac.reg_active 0kamcmd uac.reg_active 1*
https://kamailio.org/docs/modules/stable/modules/uac.html#uac.r.uac.reg_act…
How can I get the current status of uac outbound registration (to get 0 or
1)?
--
BR,
Denys Pozniak