[VoiceOps] New blog article: Kamailio as an SBC - five years on

Alex Balashov abalashov at evaristesys.com
Wed Jun 20 18:50:35 EDT 2018


Thank you, Daniel. That was insightful, and definitely something of
which I had not thought. 

I updated the article accordingly:

http://www.evaristesys.com/blog/kamailio-as-an-sbc-five-years-on/

-- Alex

On Wed, Jun 20, 2018 at 10:00:05AM +0200, Daniel-Constantin Mierla wrote:

> 
> 
> On 20.06.18 09:33, Alex Balashov wrote:
> > On Wed, Jun 20, 2018 at 09:33:49AM +0200, Daniel-Constantin Mierla wrote:
> >
> >> The uac module of Kamailio has support for doing remote registrations
> >> for very long time (first added in v3.1.0, in 2010). There are plenty of
> >> options to control if the registration done downstream differs in terms
> >> of expire from the one received from downstream, when to enable/disable
> >> these registrations, etc... 
> > Oh really? The UAC module supports some method of correlating incoming
> > registrations to outgoing ones? I did not know this. This might call for
> > an update of the article!
> >
> Not sure what you really expect by "correlating" here, but if it is
> about enabling the registration downstream when processing the one from
> upstream, then it is something like:
> 
> save("location");
> 
> if(registered("location", "$tu")) {
>     # user online, enable its uac reg record
>     jsonrpc_exec('{"jsonrpc": "2.0", "method": "uac.reg_enable",
> "params": ["l_username", "$tU"], "id": 1}');
> } else {
>     # user online, enable its uac reg record
>     jsonrpc_exec('{"jsonrpc": "2.0", "method": "uac.reg_disable",
> "params": ["l_username", "$tU"], "id": 1}');
> }
> 
> Correlation can be done on couple of fields, like local user, remote
> user, local unique id, ...
> 
> I used for very long time the uac module to do registrations to
> downstream servers and handle the ones from devices locally in kamailio
> edge proxy, with different expires values, etc ... that was the reason I
> added this feature many years ago and, iirc, it was first out there
> offering such thing in a proxy.
> 
> Typically I do not enable/disable on register/unregister from UA,
> letting the downstream server believe the user is always online, so it
> routes back to kamailio proxy and then decide what to do if the user is
> offline, like sending to a dedicated announcement server or forward to
> pstn/gsm, ...
> 
> I though of adding dedicated cfg functions to enable/disable uac_reg
> records, but given that rpc commands can be executed with jsonrpc_exec()
> at low expense, those got somehow lower priority. This feature of uac
> module got contributions from other devs, so it is used quite a lot out
> there. Of course, maybe some scenarios are not covered in an easy mode,
> but nobody asked new stuff on this part -- anyhow, we have the sources,
> other enhancements can be added if people find something that needs to
> be simplified or some use cases need to be addressed.
> 
> Cheers,
> Daniel
> 
> -- 
> Daniel-Constantin Mierla -- www.asipto.com
> www.twitter.com/miconda -- www.linkedin.com/in/miconda
> Kamailio World Conference -- www.kamailioworld.com
> 

-- 
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/


More information about the VoiceOps mailing list