When I connect using mongo, the credentials work:
$ mongo kamailio -u "kam" -p "kam"
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017/kamailio
MongoDB server version: 3.4.9
> db.subscriber.find()
{ "_id" : ObjectI ...
But when I use the following DBURL in kamailio.cfg, kamailio fails to even login to mongo:
#!define DBURL "mongodb://kam:kam@localhost/kamailio"
If I disable mongodb authentication, kamailio starts up just fine again. Any idea what's going wrong here?
Hello List,
I thought about some kind of Kamailio stats source (like registered users,
calls active and some other things) to collect them into influx dB and draw
them with grafana.
How do you solved that?
Timer based routes or statsd or whatever?
Kind regards
Karsten Horsmann
FYI,
After some tests found, that function "*is_audio_on_hold()*" (textops)
*supports
only rfc 254*3,
where "hold" is indicated by setting the "c" destination addresses for
the media streams to zero (0.0.0.0).
The newest *rfc3264*, where "hold" is indicated by a=sendonly/inactive, *is
not supported*.
Kamailio version 4.4.6.
Best regards,
Julia
Hi,
The Socket parameter of location entries is not replicated under
dmq_usrloc.
To make matters worse, the technical characteristics of the registrar
module are such that I cannot straightforwardly modify the incoming
Contact to add a rider indicating the server on which the register was
received.
The AoR domain is the same for all registrations received on any server
in the DMQ mesh.
To reach the registrants, I need to forward the registration to the
correct server that corresponds to the true provenance of the
registration. What is a reasonable way of finding out what that is? I
don't see any method of injecting such values into the replicated
contacts, as dmq_usrloc does not provide hooks for this.
Thanks,
-- Alex
--
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/
Hello,
i have an issue with my Kamailio 4.1.9 configuration.
This configuration is multi-homed, we have*two network* interfaces, one
on a private network and on the public Internet. Kamailio is configured
to listen on port 5060 and 5066 on both interfaces. We register two
users Alice and Bob on the public Internet using port 5066. Both users
are behind a NAT and we capture the SIP exchange on the proxy server.
We have set the parameter mhomed=1
When Alice calls Bob, we have
Alice Proxy Bob
src=5063 dst=5066
INVITE ------------------>
src=5066
------ INVITE ---------------> dst=5060
dst=5066
<------- 200 OK -------------- src=5060
dst=5063
<------- 200 OK --------- src=5066
src=5063 dst=5066
-------- ACK ----------->
*src=5060 (blocked by NAT)*
------ ACK-----x dst=5060
The ACK packet gets relayed with the wrong source port. Then the NAT
rejects the packet and the call cannot be established.
For some reason, when Bob calls Alice, the call is correctly
established. Could it be because Bob happend to use 5060 as local port?
Also, if we set nhomed=0 it works BUT we are not sure that multi homed
is handled correctly.
I was wondering if you have encounter this issue before?
I have investigated the code for selection socket and what is the logic
of this selection ?
/*How does kamailo knows that it should choose 5066 as src port if the
user is registered using port 5066 instead of 5066?*
/
Thank you for your time.
Thomas
Hello,
in the past 10 years or so, many of us met at Fosdem conference in
Brussels (the edition this year happens during February 3-4) and had a
dinner on Saturday evening. I know already couple of people from
community that will go there, so the question is if there is any
interest to organize again such event.
If yes, it will be again on Saturday, on the evening of the 3rd of February.
At the past editions, it turned into an all-RTC dinner, but we can
consider to have it alone again (eventually with few other invited
friends), if there are too many or people want a smaller meeting.
Reply this week if you want to join, so we can estimate how many seats
we need and have enough time to find a place that can accommodate us.
More about Fosdem can be found at:
- https://fosdem.org
There is a devroom on Sunday with topics covering real time
communications. I will have a presentation there.
Cheers,
Daniel
--
Daniel-Constantin Mierla
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - March 5-7, 2018, Berlin - www.asipto.com
Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com
Hi,
I have an htable containing some black list words (i.e. user IDs or phone
models). To find matches of the words in every message I use the following
script:
sht_iterator_start("i1", "black_list");
while(sht_iterator_next("i1")) {
if ( search($shtitval(i1)) ) {
// do something
}
}
sht_iterator_end("i1");
How can I modify search($shtitval(i1)) to get case insensitive matching?
The example below does not work:
sht_iterator_start("i1", "black_list");
while(sht_iterator_next("i1")) {
$var(re) = $shtitval(i1) + "/i";
if ( search($var(re)) ) {
// do something
}
}
sht_iterator_end("i1");
Other possible modifications of $var(re) aren't working too.
Thanks,
Andrey
Is is possible (without iterating through all entries in a hash table) to
return the value based on a partial or regex match to the key?
Something like...
$var(one)=$sht(a=>*$var(two))
--
Anthony - https://messinet.com/ - https://messinet.com/~amessina/gallery
F9B6 560E 68EA 037D 8C3D D1C9 FF31 3BDB D9D8 99B6
our kamailo has 2 IPs, a public (87.x.x.x) and a private (192.168.1.1). It is listening on all of them. For all calls it listens on the public IP but for some calls I need to forward the incoming INVITE to a server in the private network so I do a " force_send_socket(privateip:port)" before the route that forwards the INVITE to the server in the private network and that works.
But then when the server in the private network replies with 302 I have to contact the servers inside the Contact header using the Public IP now so I do this hoping that it will switch back to the public IP:
if (t_check_status("302")) {
force_send_socket(PUBLIC_IP:5060);
get_redirects("*");
t_relay();
}
But it stays in the private, so the INVITEs to the servers inside the Contact header are sent from the Private IP and they are blocked.
This would be the flow:
customer INVITE -> kamailio(publicIP)
kamailio (publicIP) 100 trying -> customer
kamailio(privateIP) INVITE -> Server(privateIP)
Server(privateIP) 302 redirect -> kamailio(privateIP)
kamailio(privateIP) ACK -> Server(privateIP)
after I would like this to happen
kamailio(publicIP) INVITE -> Server1(publicIP)
but instead this happens:
kamailio(privateIP) INVITE -> Server1(publicIP)
how can I switch back to the public IP to continue with this call flow?
thank you
For some reasons,
My settings will cause kamailio to be restarted even if there were
connections connected to it.
And when one SIP client in a connection wanted to hangup the call with a
WebRTC Client (SIP over websocket) after the proxy-restarting,
local client was closed, however , the other side was not.
>From the log below it seems that the connection missed.
Jan 30 18:19:31 ./kamailio[27857]: WARNING: <core> [msg_translator.c:2777]:
via_builder(): TCP/TLS connection (id: 0) for WebSocket could not be found
Jan 30 18:19:31 ./kamailio[27857]: ERROR: tm [t_msgbuilder.c:1365]:
assemble_via(): assemble_via: via building failed
Jan 30 18:19:31 ./kamailio[27857]: ERROR: tm [t_msgbuilder.c:1545]:
build_uac_req(): build_uac_req(): Error while assembling Via
Jan 30 18:19:31 ./kamailio[27857]: ERROR: tm [uac.c:379]: t_uac_prepare():
t_uac: Error while building message
So,
Is it equivalent to connection ID missing?
And is there any way to make Websocket found the connection?
Btw, after proxy-restarting for seconds , I typed `sh kamctl stats` :
websocket:ws_current_connections = 1
It showed that the WebRTC Client will re-connect automatically,
So I think this connection could be found by proxy,
Any suggestion?
Thanks :)