[SR-Users] Session authorization just before initiate it

Roberto Fichera kernel at tekno-soft.it
Tue Jul 5 10:40:43 CEST 2011


On 07/04/2011 01:55 PM, Klaus Darilion wrote:
>
> Am 04.07.2011 12:38, schrieb Roberto Fichera:
>> On 07/01/2011 11:32 PM, Klaus Darilion wrote:
>>> Hi Roberto!
>> Hi Klaus,
>>
>>> The best location of applying such a "policy" function depends on
>>> several things:
>>>
>>> First, you need to have all the data you are requiring. E.g. if you want
>>> to check if a certain user is allowed to call a certain phone number you
>>> usually need to do first:
>>> - authenticate the user
>>> - normalize destination (e.g. bring phone number into E164 format or
>>> apply alias lookups).
>> Basically any user should authenticate as usual, than before two
>> user can talk together, kamailio must authorize the conversation
>> through a SQL lookup
>>
>>> Then, before proceeding any further, you might check the policy using a
>>> SQL query. Be sure to SQL escape the date you provide for the SQL lookup
>>> to prevent SQL injection (see "transfomations").
>>>
>>> In above case, the SQL query should be before calling lookup().
>> So, digging in the code you mean something like:
>>
>> # USER location service
>> route[LOCATION] {
>>
>>        <SQL lookup code goes here>
>>
>> #!ifdef WITH_ALIASDB
>>         # search in DB-based aliases
>>         alias_db_lookup("dbaliases");
>> #!endif
>>
>>         if (!lookup("location")) {
>>                 switch ($rc) {
>>                         case -1:
>>                         case -3:
>>                                 t_newtran();
>>                                 t_reply("404", "Not Found");
>>                                 exit;
>>                         case -2:
>>                                 sl_send_reply("405", "Method Not Allowed");
>>                                 exit;
>>                 }
>>         }
>>
>>         # when routing via usrloc, log the missed calls also
>>         if (is_method("INVITE"))
>>         {
>>                 setflag(FLT_ACCMISSED);
>>         }
>> }
> No.

Ok! I'll try it!

> # USER location service
> route[LOCATION] {
>
> #!ifdef WITH_ALIASDB
>         # search in DB-based aliases
>         alias_db_lookup("dbaliases");
> #!endif
>
>        <SQL lookup code goes here>
>
>
>         if (!lookup("location")) {
>                 switch ($rc) {
>                         case -1:
>                         case -3:
>                                 t_newtran();
>                                 t_reply("404", "Not Found");
>                                 exit;
>                         case -2:
>                                 sl_send_reply("405", "Method Not Allowed");
>                                 exit;
>                 }
>         }
>
>         # when routing via usrloc, log the missed calls also
>         if (is_method("INVITE"))
>         {
>                 setflag(FLT_ACCMISSED);
>         }
> }
>
> _______________________________________________
> 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
>




More information about the sr-users mailing list