[SR-Users] Fwd: kamailio registering on back-end asterisk with username and password

Stoyan Mihaylov stoyan.v.mihaylov at gmail.com
Sun Sep 29 11:40:43 CEST 2013


I think, it will be much better to plane reorganization of whole process.
To start using Kamailio as registrar and load balance, and Asterisk as
media servers, dial plan etc.
But, in current situation, I can suggest next:
1. You can not use authorization of Kamailio. You can use Kamailio only and
alone as load balance. All requests to Kamailio you can forward to Asterisk
servers.
2. When you get first request from somebody - you can do something like:
ds_select_dst("1","4");
$sht(forw=>$ft)=$du;
This way you will store address of Asterisk, where you forwarded request.
3. When you have next request from same "person" you can do:
$du=$sht(forw=>$ft);
I am using something alike, but only for active calls. All my registrations
are handled by Kamailio, and Asterisk servers do not participate in
authentication.




On Sun, Sep 29, 2013 at 3:27 AM, Paul Penev <ppquant at gmail.com> wrote:

> Hello all,
>
> I'm trying to implement a load balancer for asterisk servers using
> kamailio and the tutorial at
> http://kb.asipto.com/asterisk:realtime:kamailio-4.0.x-asterisk-11.3.0-astdb
>
> I must put kamailio in front of the media servers (asterisk) without
> modifying their configuration (like a transparent proxy). It's a live
> system and I cannot touch it.
>
> The problem is that the asterisks require the devices to authenticate
> themselves (and register with user and password too).
>
> The sample implementation constructs a register request from scratch,
> but does not handle the authorisation part
>
> I guess that the uac_req should contain the user and password fetched
> from the asterisk database. I would really appreciate some hints on
> how to proceed.
>
> Here's the current implementation of the register from kamailio->asterisk.
> # Forward REGISTER to Asterisk
> route[REGFWD] {
> if(!is_method("REGISTER"))
> {
> return;
> }
> $var(rip) = $sel(cfg_get.asterisk.bindip);
> $uac_req(method)="REGISTER";
> $uac_req(ruri)="sip:" + $var(rip) + ":" + $sel(cfg_get.asterisk.bindport);
> $uac_req(furi)="sip:" + $au + "@" + $var(rip);
> $uac_req(turi)="sip:" + $au + "@" + $var(rip);
> $uac_req(hdrs)="Contact: <sip:" + $au + "@"
> + $sel(cfg_get.kamailio.bindip)
> + ":" + $sel(cfg_get.kamailio.bindport) + ">\r\n";
> if($sel(contact.expires) != $null)
> $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $sel(contact.expires) +
> "\r\n";
> else
> $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $hdr(Expires) + "\r\n";
> uac_req_send();
> }
>
> Thank you,
> Paul.
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20130929/6b73bb04/attachment.html>


More information about the sr-users mailing list