Hello All,
Unfortunately we found two more bugs in the nathelper module in my favorite Kamailio! Oh my god!
1. nathelper doesn't send pings when db_mode=3 and db is mongodb. I will provide fix soon. The root cause is incorrect date format in get_all_db_ucontacts function in usrloc.
We need to use datatime type instead string.
2. nathelper doesn't send pings if ping_nated_only=0 (default value). It looks like incorrect condition in nh_timer in nathelper.
Definitely lack of testing. It is interesting how testing is organized in the Kamailio community?
Best regards.
Konstantin
ping_nated_only
Hello All, Hello Daniel!
We have met a new issue.
We use db_mode=1 ( Write-Through scheme. All changes to usrloc are immediately reflected in database too ).
timer_interval has default value 60 seconds.
Problem description.
Some user agent is registered successfully in Kamailio registrar.
Its contact exists inside internal cache (ul.lookup command shows it).
But location table doesn't contain this contact. After several minutes (5-6 min) it becomes available in the location table too.
The issue is reproduced periodically. Most of the time everything is ok.
Is that expected behavior when internal cache is used?
Did somebody else observed such situation?
Is there some workaround?
Best regards
Konstantin
Hello All,
I have two Kamailio servers and shared the database between two Kamailio.
Below are my usrloc configuration in kamailio.cfg
# ----- usrloc params -----
modparam("usrloc", "db_url", DBURL)
*modparam("usrloc", "db_mode", 3)*
modparam("usrloc", "use_domain", MULTIDOMAIN)
modparam("usrloc", "timer_interval", 30)
modparam("usrloc", "matching_mode", 1)
modparam("usrloc", "cseq_delay", 10)
modparam("usrloc", "fetch_rows", 3000)
modparam("usrloc", "hash_size", 12)
modparam("usrloc", "timer_procs", 4)
modparam("usrloc", "handle_lost_tcp", 1)
modparam("usrloc", "close_expired_tcp", 1)
modparam("usrloc", "db_timer_clean", 1)
# ----- registrar params -----
modparam("registrar", "method_filtering", 1)
modparam("registrar", "gruu_enabled", 0)
modparam("registrar", "received_avp", "$avp(RECEIVED)")
modparam("registrar", "default_expires", 3600)
modparam("registrar", "min_expires", 1200)
modparam("registrar", "max_expires", 3600)
modparam("registrar", "default_q", 1000)
modparam("registrar", "max_contacts", 10)
modparam("registrar", "retry_after", 10)
modparam("registrar", "xavp_cfg", "reg")
modparam("registrar", "use_path", 1)
modparam("registrar", "path_mode", 0)
modparam("registrar", "path_use_received", 1)
modparam("registrar", "contact_max_size", 1024)
modparam("registrar", "path_check_local", 1)
modparam("registrar", "sock_flag", 18)
modparam("registrar", "sock_hdr_name", "Sock-Info")
#------------------------------------------------------------
I have two users in same domain.
1. 1000(a)dev.domain.com --> Registered on kamailio 1
2. 1001(a)dev.domain.com --> Registered on kamailio 2
I am not able to make a call from 1000(a)dev.domain.com to 1001(a)dev.domain.com
and vice versa.
It will be appreciable if anyone help to resolve the issue.
Thank you in advance!
--
Regards,
Suresh Talasaniya.
Contact : +91-9724264776
Skype : suresh.talsaniya
Hi All,
I'm trying to send a custom NOTIFY message to a list of users that are registered with Kamailio. The procedure would be invoked via HTTP (jsonrpc/xmlrpc over HTTP).
1. Should I be looking at the t_uac_start/t_uac_dlg MI commands to accomplish this? Is this the best way to do it if the NOTIFY sent to the phones are unsolicited? 2. I tried to use the xhttp_rpc module for testing out tm.t_uac_start but kept running into 400 invalid headers. I'm not sure if there is a syntax issue.
The NOTIFY example is
NOTIFY sip:123@192.168.5.5 . . From:333@1.1..1\r\nTo:test@2.2.2.2
- Request URL: http://x.x.x.x/http_rpc/tm/tm.t_uac_start?arg=NOTIFY+sip%3A123%40192.168.5.…
- Request Method: GET
- Status Code: 400 Invalid headers
Thanks for any feedback!
hello here ! I'm very newbie ... I search documentation (because I guess
u can't explain that here like this) for create proxy. I want redirect
all SIP traffic to an Asterisk instance. I search again and again but i
don't find anything...
Hi
For now as I see: every request that calls lua script reevables my global
lua variables
For example
I trying to connect to DB via luasql driver and checking if connection
already existis to avoid new connection
I have function init() that calls in ksr_request_route()
Inside i have ome check:
if not CON then
CON =
assert(MYSQL:connect(DBdata.dbname,DBdata.username,DBdata.password,DBdata.host,DBdata.port))
if not CON then
KSR.log("info","|init|log| DB NOT connected\n")
KSR.sl.sl_send_reply(503,"Internal server error")
KSR.x.exit()
else
KSR.log("info","|init|log| DB connected\n")
end
end
So in this case if CON was already created it should not try to connect
But for now it tries for every request. So means kemi not stores global lua
variables between sessions (in one kamailio process)
Also as I know INIT routes initiates before lua machine will be started so
it not allowed to init some lua global variables in the init routes
So my question is there is a way to keep global vars per kamailio process
instead per kamailio request?
Hello All,
I want to enable certificate validation on the server. I am only using self-signed certs.
I have the same cert/key in the client and server and want to only allow connection from clients with this cert/key.
I have turned on the following in tls.cfg and done all the steps required in kamailio.cfg file.
But it's failed to verify certs and allowing the clients which doesn't have same certs.
Please help to configure the cert/key in right way.
[server:default]
method = TLSv1
verify_certificate = yes
require_certificate = yes
private_key = /usr/local/etc/kamailio/selfsigned.key
certificate = /usr/local/etc/kamailio/selfsigned.pem
ca_list = /usr/local/etc/sip-router/cacert.pem
[client:default]
verify_certificate = yes
require_certificate = yes
In advance Thank you.
Thanks,
Kiran
I want to enable certificate validation on the server. I am only using self-signed certs.
I have the same certificate/key in the client and server and want to only allow connection from clients with this cert/key.
I have turned on the following in tls.cfg and done all the steps required in kamailio.cfg file.
[server:default]
method = TLSv1
verify_certificate = yes
require_certificate = yes
private_key = /usr/local/etc/kamailio/selfsigned.key
certificate = /usr/local/etc/kamailio/selfsigned.pem
ca_list = /usr/local/etc/sip-router/cacert.pem
[client:default]
verify_certificate = yes
require_certificate = yes
Any help is appreciated.
Thanks,
--Jignesh