Any comments on this please?
Thanks!
De: Kato [mailto:elkato@gmail.com]
Enviado el: domingo, 6 de noviembre de 2016 11:29 a. m.
Para: 'sr-users(a)lists.sip-router.org' <sr-users(a)lists.sip-router.org>
Asunto: kamailio + farm of Elastix + rtp direct
Hi,
I'm just starting with Kamailio, and trying to validate a possible solution
design.
I started offering hosted PBXs (FreePBX or Elastix as customer wish), each
one with a public IP, connected with SIP trunks from Net2Phone provider. RTP
from/to customers calls is going in and out through PBX, and not directly
customer <----> sip trunk provider. Billing is provided by SIP trunk
provider, so with just CDR from freepbx/Elastix is enough.
But, I would like to introduce 2 main changes. First a sip router/proxy in
front of PBXs like kamailio, and doing just a basic domain based routing to
each PBX. Kamailio with 2 interfaces (1 public, 1 internal) and change PBXs
to internal IPs. Second, to know if would be possible to redirect RTP
from/to customer-net2phone provider directly, not going through PBXs.
Net2phone has public IPs for RTP, customer normally in their homes behind
NAT with a SOHO router. Elastix 2.5 using Asterisk 11, and FreePBX using
Asterisk 12 (could be 11 or 13 too tbe o reach this).
I would like to kamilio be as simple and static as possible, not handling
REGISTER or LOCATION. Just to route all traffic based on each domain to each
corresponding PBX. My idea will be to pre-provide all subdomains to each
internal IP using subdomains like "customer0001.domain.com,
customer0002.domain.com." and customers would login as
100(a)customer0001.domain.com <mailto:100@customer0001.domain.com> ,
101(a)customer0001.domain.com <mailto:101@customer0001.domain.com> to PBX0001
and 100(a)customer0002.domain.com <mailto:100@customer0002.domain.com> ,
101(a)customer0002.domain.com <mailto:101@customer0002.domain.com> to PBX0002
for example. Just using as it was a firewall doing NAT and Asterisk
(freepbx/elastix) behinds handles everything as they are doing already.
Maybe kamailio could check/filter some malicious packets like I'm doing now
with fail2ban on PBXs.
Can be this possible?
In that case where do I need to setup SIP trunk? On kamailio or on internal
PBXs as I have it now?
For second part, just to know and understand if would be possible customer
"talks" RTP directly to Net2phone SIP trunk provider on doing or receiving
external calls. Not going to my DC to save BW.
How I could do that?
Thanks a lot in advance!
Regards,
elkato
Hello,
I am proposing a new IRC meeting to discuss the current major issues and
the plans for next Kamailio release, on Wednesday, Nov 09, 2016, with
alternatives for previous or next day. If many developers are not
available, we can postpone it to another date in the near future (make
proposals if that is the case for you).
I created a wiki page for it:
* https://www.kamailio.org/wiki/devel/irc-meetings/2016b
Add there the topics that you want to be discussed.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Hi,
we are running a Registrar server with 4.4.3, the registrar module is
configured with the following parameters:
modparam("registrar", "max_contacts", 50)
modparam("registrar", "use_path", 1)
modparam("registrar", "path_mode", 0)
modparam("registrar", "path_use_received", 1)
modparam("registrar", "received_avp", "$(avp(i:801))")
modparam("registrar", "default_expires", 600)
modparam("registrar", "min_expires", 60)
modparam("registrar", "max_expires", 600)
modparam("registrar", "gruu_enabled", 0)
A customer has configured 4 phones with the same username. Normally,
all 4 phones would be visible in the location database, and incoming
calls would fork out to all 4 phones. However, only one of the devices
is always online, the others always replace each other on each
registration.
Client details:
* All phones are snom 715 devices with the same firmware version.
* All phones sit behind the same router.
Registrations:
client 1:
* Via: SIP/2.0/UDP 192.168.208.91:35812;branch=z9hG4bK-4q0mmxgu6gm7;rport
* Contact: <sip:1794388e3@192.168.208.91:35812;line=gicode6v>;reg-id=1;q=1.0;+sip.instance="<urn:uuid:0a14174a-77be-424c-864e-0004137F1C9D>"
client 2:
* Via: SIP/2.0/UDP 192.168.208.90:41331;branch=z9hG4bK-3cbxdvbmk0di;rport
* Contact: <sip:1794388e3@192.168.208.90:41331;line=0j6veso8>;reg-id=1;q=1.0;+sip.instance="<urn:uuid:0a14174a-77be-424c-864e-0004137F1C9D>"
client 3:
* Via: SIP/2.0/UDP 192.168.208.92:5360;branch=z9hG4bK-4drsogakez94;rport
* Contact: <sip:1794388e3@192.168.208.92:5360;line=0n7jfzih>;reg-id=1;q=1.0;+sip.instance="<urn:uuid:0a14174a-77be-424c-864e-0004137F1C9D>"
client 4:
* Via: SIP/2.0/UDP 192.168.208.93:5260;branch=z9hG4bK-1ci0qia3yxyl;rport
* Contact: <sip:1794388e3@192.168.208.93:5260;line=mh9sgxa1>;reg-id=1;q=1.0
Only client 4 is reachable all the time. The other 3 clients replace
other registrations.
So after client 1 registers, the contacts returned in the 200 OK looks
like this:
Contact: <sip:1794388e3@192.168.208.91:35812;line=gicode6v>;q=1;expires=600;received="sip:1.2.3.4:6411";+sip.instance="<urn:uuid:0a14174a-77be-424c-864e-0004137F1C9D>";reg-id=1,
<sip:1794388e3@192.168.208.93:5260;line=mh9sgxa1>;q=1;expires=303;received="sip:1.2.3.4:8923"
And after client 2 registers, the contacts returned in the 200 OK
looks like this:
Contact: <sip:1794388e3@192.168.208.90:41331;line=0j6veso8>;q=1;expires=600;received="sip:1.2.3.4:49061";+sip.instance="<urn:uuid:0a14174a-77be-424c-864e-0004137F1C9D>";reg-id=1,
<sip:1794388e3@192.168.208.93:5260;line=mh9sgxa1>;q=1;expires=301;received="sip:1.2.3.4:8923"
So you see, one contact stays the same, the other one gets replaced.
Does anybody know what could cause this kind of behavior? I think, it
could be GRUU. I see that those three clients all send the same GRUU
parameter. From my understanding, this UUID should be different from
client to client. I don't know whether this is a bug in the snom
firmware always sending the same GRUU UUID or whether som
"intelligent" SIP aware router is putting this in the Contact header.
However, since we have disabled gruu for the registrar module (see
above), I think, Kamailio should ignore it.
Ideas? Thanks in advance.
Best Regards,
Sebastian
Hey all,
Looking to figure out the best way to allow TCP connections to stay alive
for NAT'd clients, however, to protect against people just opening TCP
connections to the server, I'm hoping to only keepalive TCP connections for
connections that have sent an INVITE and received a 200 OK.
Does this type of per-socket connection lifetime setting exist?
For a bit more background: this is specifically for clients that are using
the TCP connection for an INVITE. They don't register with the server, and
as a result there's no active flow timer for their connection. Is there a
way to enable this type of behavior without registering?
Best,
Colin
Hello
I am using Kamailio to collect data about active calls. I write INVITEs
to database, and delete it on BYE or any REL.
I would like to write source and destination port too, but don't know
how to get destination port.
I have tried variables:
$dp, $rp, $Rp, $op
But when I don't have port in URI like INVITE IP:PORT, $rp have default
value of 5060.
I would like to get real UDP port, that INVITE does to. Is it possible
using PSEUDO VARIABLES?
Greetings
Andrzej
Hi,
Our Kamailio server is crashing once per week, with following error:
Oct 1 06:25:06 kamailio kernel: [26982632.803789] Out of memory in UB 210:
OOM killed process 12261 (kamailio) score 0 vm:1614768kB, rss:280200kB,
swap:131408kB
Core dump was never created, probably it is because of my environment, but
I will try to get it.
Server constantly eats memory, maybe some kind of memory leak?
Any help is highly appreciated!
Jurijs
Are there any real data about number of concurrent calls, number of on-line
users, NER (Network Effectiveness Ratio) and ASR (Answer Seizure Ratio) of
a real VoIP system? I want this data for making comparisons. Can anyone
provide a reference, article, etc..
Hi all
I have a kamailio server configured with accounting on a separate Postgres
SQL server by an internal network with acc module and db_postgres module
Everything works good but what can I do if I have problem on the internal
network or on the postgres server ?
Is it possible cache or save the data if the insert data is failed ?
Hello Everyone,
I trying fnmatch to find which sip status is returned by B2BUA. But some reason it doesn't work.
Nov 6 17:02:15 cavprx00 kamailio: 2(3747) ERROR: *** cfgtrace:onreply_route=[MESSAGE_FORWARD] c=[/etc/kamailio/kamailio-asterisk.cfg] l=456 a=26 n=xlog
Nov 6 17:02:15 cavprx00 kamailio: 2(3747) INFO: <script>: Message 1 Accepted by B2BUA --> 202 with Accepted
Nov 6 17:02:15 cavprx00 kamailio: 2(3747) ERROR: *** cfgtrace:onreply_route=[MESSAGE_FORWARD] c=[/etc/kamailio/kamailio-asterisk.cfg] l=469 a=16 n=if
Nov 6 17:02:15 cavprx00 kamailio: 2(3747) ERROR: *** cfgtrace:onreply_route=[MESSAGE_FORWARD] c=[/etc/kamailio/kamailio-asterisk.cfg] l=457 a=26 n=fnmatch
Nov 6 17:02:15 cavprx00 kamailio: 2(3747) ERROR: *** cfgtrace:onreply_route=[DEFAULT_ROUTE] c=[/etc/kamailio/kamailio-asterisk.cfg] l=370 a=2 n=return
if(fnmatch("$rs", "200") && (fnmatch("$rr", "Accepted"))) {
xlog("L_INFO", "Message Accepted by B2BUA --> $rs with $rr \n");
$var(tu) = $tu;
xlog("L_INFO", "New To --> $var(tu)\n");
}
Is this fnmatch correct for this operation ?
Slava.
Hi,
I'm just starting with Kamailio, and trying to validate a possible solution
design.
I started offering hosted PBXs (FreePBX or Elastix as customer wish), each
one with a public IP, connected with SIP trunks from Net2Phone provider. RTP
from/to customers calls is going in and out through PBX, and not directly
customer <----> sip trunk provider. Billing is provided by SIP trunk
provider, so with just CDR from freepbx/Elastix is enough.
But, I would like to introduce 2 main changes. First a sip router/proxy in
front of PBXs like kamailio, and doing just a basic domain based routing to
each PBX. Kamailio with 2 interfaces (1 public, 1 internal) and change PBXs
to internal IPs. Second, to know if would be possible to redirect RTP
from/to customer-net2phone provider directly, not going through PBXs.
Net2phone has public IPs for RTP, customer normally in their homes behind
NAT with a SOHO router. Elastix 2.5 using Asterisk 11, and FreePBX using
Asterisk 12 (could be 11 or 13 too tbe o reach this).
I would like to kamilio be as simple and static as possible, not handling
REGISTER or LOCATION. Just to route all traffic based on each domain to each
corresponding PBX. My idea will be to pre-provide all subdomains to each
internal IP using subdomains like "customer0001.domain.com,
customer0002.domain.com." and customers would login as
100(a)customer0001.domain.com <mailto:100@customer0001.domain.com> ,
101(a)customer0001.domain.com <mailto:101@customer0001.domain.com> to PBX0001
and 100(a)customer0002.domain.com <mailto:100@customer0002.domain.com> ,
101(a)customer0002.domain.com <mailto:101@customer0002.domain.com> to PBX0002
for example. Just using as it was a firewall doing NAT and Asterisk
(freepbx/elastix) behinds handles everything as they are doing already.
Maybe kamailio could check/filter some malicious packets like I'm doing now
with fail2ban on PBXs.
Can be this possible?
In that case where do I need to setup SIP trunk? On kamailio or on internal
PBXs as I have it now?
For second part, just to know and understand if would be possible customer
"talks" RTP directly to Net2phone SIP trunk provider on doing or receiving
external calls. Not going to my DC to save BW.
How I could do that?
Thanks a lot in advance!
Regards,
elkato