[SR-Users] registrar and check registered

Daniel-Constantin Mierla miconda at gmail.com
Wed Mar 13 09:05:43 CET 2013


Hello,

do you want to check if caller (origin) is registered or if callee 
(destination) is registered? Like one can call to pstn only if has a 
phone registered for itself?

Or you want to say that you want to forward to gateway only for 
registered users. But maybe you want for local subscribers.

Cheers,
Daniel

On 3/12/13 3:04 PM, Victor V. Kustov wrote:
> Hi.
>
> I try to use Kamailio 4.1 git version as registrar and PSTN gw.
>
> Need accept register from users. Its OK, I made it and use save()
> function - from keep registrations in case of kamailio restart.
>
> Need forward calls to gw, but only for registered users.
> If I understand correctly in INVITE enough check
> registered("location"), isnt it? but it's not work, i need verify auth
> again.
>
>
>
> Routing part of my config:
>
>
> route {
>          # initial sanity checks - skip in letter
>          
> # We are registrar!
>
>          if (is_method("REGISTER"))
>          {
>                  sl_send_reply("100", "Trying"); # send "Trying, dont threat on me
>                  if(isflagset(FLT_NATS))
>                  {
>                        setbflag(FLB_NATB);
>                          # uncomment next line to do SIP NAT pinging
>                          ## setbflag(FLB_NATSIPPING);
>                  }
>
>                  # we must check auth right now
>                  # WORK: if (!www_authorize("$fd", "subscriber"))
>                  if (!auth_check("$fd", "subscriber", "1"))
>                  {
>                      # WORK: www_challenge("$fd", "0");
>                      auth_challenge("$fd", "0");
>                      # send me requisites plz
>                      exit;
>                  } else
>                  {
>                      # ok. auth accepted, save in location
>                      if (save("location"))
>                      #if (save("location","0x04","$fd"))
> 		            {
>                          xlog("L_WARN", "Save OK in location sip:$au@$fd");
> 		            } else
> 		            {
>                          xlog("L_WARN", "Save FAIL in location sip:$au@$fd");
> 		            }
>                  }
>
>                  xlog("L_WARN", "REGISTERED method done");
>                  exit;
>          }
>
>          if (is_method("INVITE"))
>          {
>             if ($si == $sel(cfg_get.pstn.gw_ip))
>             {
>               # incoming calls
>               xlog("L_WARN", "Incoming call");
>             } else
>             {
>                  # outgoing calls
>
>                  xlog("L_WARN", "Outgoing call");
>                  # check auth
>                  # we must check auth right now
>
>                  if (!proxy_authorize("$fd", "subscriber"))
>                  {
>                      proxy_challenge("$fd", "0");
>                      exit;
>                  }
>                  
>                  consume_credentials();
>
> ### THAT FUNCTIONS ALWAYS WRITE IN LOGS
> # "!registered" "!lookup" for both registered and unregged users
>
> #                if (!registered("location")) xlog("L_WARN","!registered");
> #                if (!lookup("location")) xlog("L_WARN", "!lookup");
>
>                  # number change - FIX late
>                  # check may be used dialplan automatically?
>
>                  # route
>                  $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip);
>                  xlog("L_WARN", "Rewrite to $ru, send to PSTN.");
> 		
>                  if (!t_relay()) { sl_reply_error(); }
>             }
>
> 	} else
>         {
> 	# reply 2 keepalive and drop all
>          # if (!t_relay()) { sl_reply_error(); }
>          }	
>
> }
>
>
>
>
>
>

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, April 16-17, 2013, Berlin
  - http://conference.kamailio.com -




More information about the sr-users mailing list