There are now a number of TURN implementations available:
http://www.resiprocate.org/ReTurn_Overviewhttp://turnserver.sourceforge.net/
and for many purposes TURN relays and ICE are much better than relying
on NAT helper and rtpproxy
When clients use ICE:
- the client gets upset if Kamailio mangles the SDP to use rtpproxy
- it is actually not necessary for the SDP to have addresses tweaked -
because ICE deals with it anyway
In practice, it still appears necessary for the registration server to
deal with NATted contact addresses though
Can anyone clarify how Kamailio should be configured for ICE clients?
In other words, is it possible to have Kamailio dealing with NATted
contact addresses, but not touching the SDP?
To limit the scope of the question:
- assume non-ICE clients do not need to be supported at all (just ignore
them, although a nice cfg would scan all SDP and send a helpful error
back if it sees a 192.168 address and no a=ice* attributes)
- assume clients are connecting with TLS over TCP, so there is no risk
that some intermediate device like a router is mangling the SIP headers
or SDP
Is there any way how to print it this way ?
sercmd -s unixs:/tmp/kamailio_ctl mi_fifo cr_dump_routes
error: 500 - Internal server error processing 's': buffer too small
(overflow) (-2)
Hi,
the gateway i use for sending call to pstn has an option of sending a
header with Q850 reason.
it looks like this:
"
Reason: Q.850;cause=17;text="UserBusy"
Reason Protocols: Q.850
Cause: 17(0x11)[User busy]
"
now, i need to save the reason for reports.
the reason changes and i am trying to find a way to parse it and save the
code only.
usualy i use the "search" function to get text from headers that are the
gateway's inventions :-)
here i can find the text "Q850....." but how do i get the cause code?
i guess i cab write something long with textops and parsing. but, is there
a better and nicer way to perform it?
thanks,
Uri
Hello,
I'm working on building a HA setup with separate registrar and proxy
servers. The registrar server writes to a master database that is
replicated to a local database on each of the proxy servers. A load
balancer then sits in front of the proxys. When routing to a registered
user on the proxys I receive an error message that the socket is unknown and
ignored (obviously because its on another machine). Is this just a warning
message or are there any consequences to doing it this way? Is my topology
flawed and would there be a better way?
Thanks for your input,
Spencer
Connected by DROID on Verizon Wireless
Hello
the net.ipv4.ip_nonlocal_bind = 1 options works fine. We have a very basic
redundancy level, but it fits our current needs; sometimes it's even harder
to troubleshoot the redundancy failures than the actual failures. We have 2
identical servers running kamailio and listening to the same ip
addresses/ports (you need to enable the sysctl option for that). A
heartbeat process controls in what machine the actual ip addresses are
active. The DB is in one of the servers but we update the shared memory in
both. For us having the DB down for a while is not critical because all the
data is in memory. When one servers goes down the other one takes over
immediately. It's a very comfortable setup also for doing upgrades in the
configuration in a controlled manner.
Hope it helps
Regards
Javi
> ------------------------------
>
> Message: 6
> Date: Thu, 26 Jan 2012 12:13:18 +0500
> From: Sammy Govind <govoiper(a)gmail.com>
> Subject: Re: [SR-Users] Kamailio Redundancy examples/pointers required
> To: "SIP Router - Kamailio (OpenSER) and SIP Express Router (SER) -
> Users Mailing List" <sr-users(a)lists.sip-router.org>
> Message-ID:
> <CAJUJwtjMGTuNe1Cu5+BDthgj0xrSJrBM03XzcjZhWJ8Ar7=onQ(a)mail.gmail.com
> >
> Content-Type: text/plain; charset="iso-8859-1"
>
> Hi,
> Thanks for taking out time for this. really appreciate your ideas. Here are
> few things I've found useful so far.
>
> http://kamailio.org/events/2011-fosdem/p_usrloc.pdf
> This looks like one thing that one could have to ensure more reliability
> but we do need other application level and physical level failover
> techniques additionally.
>
> For using any technique like Linux-HA, Heartbeat, keepalived, UCARP or any
> floating/virtual IP techniques I really hope that the sysctl option
> mentioned in b/m thread really works.
> http://www.mail-archive.com/sr-users@lists.sip-router.org/msg03714.html
> http://old.nabble.com/Kamilio-Failover-Options-td21947502.html
> DNS SRV is one option. Using another Kamailio on top of two Kamailio is
> again a SPOF so I think its of no use at all.
>
> I hope to get a very reliable and working solution out of these forums.
>
> Regards,
> Sammy
>
> On Wed, Jan 25, 2012 at 9:49 PM, Andreas Granig <agranig(a)sipwise.com>
> wrote:
>
> > Hi Sammy,
> >
> > On 01/25/2012 02:08 PM, Sammy Govind wrote:
> > > I've been looking for ways to create a redundant Kamailio cluster. I've
> > > googled alot but haven't got any concrete or final wording on any one
> > > solution that'll just work perfectly. The basic requirement is that in
> >
> > HA is never really easy :)
> >
> > > case of Kamailio application failure or in case of physical machine
> > > error the whole setup just starts working on secondary server.
> > >
> > > Please suggest anything whichever you guys are using. Any reference
> URLs
> > > would be very much appreciated.
> >
> > For 1+1 setups, you can use a master/master replication (people also use
> > drbd to sync the whole table space, not sure how good that works) on db
> > level, use write-back mode in kamailio to make sure your registrations
> > are written to DB immediately, then use heartbeat to do the IP/process
> > fail-overs on network/power failures. On top, you can do manual checks
> > to trigger a fail-over in case of high-level failures. I guess this is
> > the typical and most straight-forward scenario. Your mileage might vary,
> > depending on specific environment variables (e.g. you might want to
> > announce your active server via RIP/OSPF using quagga instead of the
> > more common gratuitous arp if your servers are geographically split).
> >
> > For scaling larger, put a kamailio instance acting as load-balancer in
> > front of your proxies and scale them by providing some sharding
> > information to the lb.
> >
> > Also the new db_cassandra backend in master branch looks pretty
> > promising when it comes to HA/scaling. Maybe someone can provide some
> > best practices regarding that as well?
> >
> > Andreas
> >
> >
> > _______________________________________________
> > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> > sr-users(a)lists.sip-router.org
> > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
> >
> >
>
Hello,
I'm experiencing some difficulty using forward with PVs. If the IP and port
are specified directly everything works but if I use PVs for the values
startup fails with a configuration error. What I'm trying to do is
statelessly forward an OPTIONS request to a B2BUA that sits behind Kamailio
without hard coding the address into the configuration file. Is there a
better way to accomplish this?
Thanks,
Spencer
Connected by DROID on Verizon Wireless
Hello all,
I'm currently reworking our routing scripts in preparation for an upgrade to 3.2.2 from 3.1.5. I'm taking this time to perform a general cleanup an optimization. In regard to selects vs PVs, is there any reason to choose one or the other select over a PV when both exist for the needed data?
Thanks,
Spencer
Hello all,
I'm a little confused as to the difference between avps and vars and when I
would use one or the other. I'm currently using sqlops to populate a few
avps. Would vars be more suitable?
Thanks,
Spencer
Connected by DROID on Verizon Wireless
Hi all,
I've made a clean installation of kamailio 3.2.0 from 'http://deb.kamailio.org/kamailio32 squeeze main'
repository, on a squeeze debian machine (2.6.32-5-686).
Installed also kamailio-presence-modules, same version.
I'm just using the default kamailio.cfg that comes with the package, with these minimal additions:
loadmodule "db_text.so"
loadmodule "pua.so"
loadmodule "pua_usrloc.so"
...
modparam("pua", "db_url", "text:///usr/share/kamailio/dbtext/kamailio")
modparam("pua_usrloc", "default_domain", "192.168.142.130")
Inside the registration management logic I've added pua_set_publish() right before saving the location:
route[REGISTRAR] {
if (is_method("REGISTER"))
{
...
pua_set_publish();
if (!save("location"))
sl_reply_error();
exit;
}
}
When I first register (XLite 4.1 for Windows), pua_usrloc correctly gets the callback and is able to generate a PUBLISH request through pua.
But when there's an un-registration, or when the contact expires, even if the callbacks are correctly fired, the PUBLISH (which I'd expect with status 'closed') is not generated.
>From the logs (debug level 4), an un-registration:
8(7652) DEBUG: usrloc [ul_callback.h:89]: contact=0xb50ae7cc, callback type 4/4, id 3 entered
8(7652) DEBUG: pua_usrloc [ul_publish.c:216]:DELETE type
8(7652) DEBUG: pua_usrloc [ul_publish.c:255]: uri= sip:20701090@192.168.142.130
8(7652) DEBUG: pua_usrloc [ul_publish.c:66]: publ:
8(7652) DEBUG: pua_usrloc [ul_publish.c:67]: uri= sip:20701090@192.168.142.130
8(7652) DEBUG: pua_usrloc [ul_publish.c:68]: id=UL_PUBLISH.NmY5Zjc2YjcwNzEwNTk4YTY1NzA2Y2Y0MWQyMGRhOGY.
8(7652) DEBUG: pua_usrloc [ul_publish.c:69]: expires= 0
8(7652) DEBUG: pua [send_publish.c:403]: pres_uri=sip:20701090@192.168.142.130
8(7652) DEBUG: pua [hash.c:121]: core_hash= 444
8(7652) DEBUG: pua [hash.c:174]: record not found
8(7652) DEBUG: pua [send_publish.c:444]: insert type
8(7652) DEBUG: pua [send_publish.c:448]: UPDATE_TYPE and no record found
8(7652) DEBUG: pua [send_publish.c:454]: request for a publish with expires 0 and no record found
8(7652) DEBUG: sl [sl.c:278]: reply in stateless mode (sl)
As an additional information, the pua table in
/usr/share/kamailio/dbtext/kamailio/pua has not been populated.
The AOR was correctly displayed with 'ul show' while the registration was valid.
Any suggestion on what am I be doing wrong?
Would it be worth testing the same scenario using mysql as DB?
Thanks in advance for your time.
Giacomo
Truphone Limited is a limited liability company registered in England & Wales, registered office: 5 New Street Square, London EC4A 3TW. Registered No. 04187081. VAT No. GB 851 5278 19.
Tru is a brand name of Truphone and is a Truphone Communications Service. Truphone is a trading name for a number of distinct legal entities that operate in combination. www.truphone.com<http://www.truphone.com>.
This e-mail, and any attachment(s), may contain information which is confidential and/or privileged, and is intended for the addressee only. If you are not the intended recipient, you may not use, disclose, copy or distribute this information in any manner whatsoever. If you have received this e-mail in error, please contact the sender immediately and delete it.