关于opensips用户认证配置文件 opensips.cfg 使用介绍

2019-10-15 10:26:18于海丽

   }
  }
 }

 # preloaded route checking
 if (loose_route()) {
  xlog("L_ERR",
  "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");
  if (!is_method("ACK"))
   sl_send_reply("403","Preload Route denied");
  exit;
 }

 # record routing
 if (!is_method("REGISTER|MESSAGE"))
  record_route();

 # account only INVITEs
 if (is_method("INVITE")) {
  setflag(ACC_DO); # do accounting
 }


 if (!uri==myself) {
  append_hf("P-hint: outboundrn");
  route(relay);
 }

 # requests for my domain
 if (is_method("PUBLISH|SUBSCRIBE"))
 {
  sl_send_reply("503", "Service Unavailable");
  exit;
 }

 if (is_method("REGISTER"))
 {
  #auth user using mysql DB
   if (!www_authorize("192.168.139.121", "subscriber")) {
   www_challenge("192.168.139.121", "0");
          exit;
  }
  #end auth user

  if (   0 ) setflag(TCP_PERSISTENT);

  if (!save("location"))
   sl_reply_error();

  exit;
 }

 if ($rU==NULL) {
  # request with no Username in RURI
  sl_send_reply("484","Address Incomplete");
  exit;
 }

 # do lookup with method filtering
 if (!lookup("location","m")) {
  t_newtran();
  t_reply("404", "Not Found");
  exit;
 }

 # when routing via usrloc, log the missed calls also
 setflag(ACC_MISSED);
 route(relay);
}


route[relay] {
 # for INVITEs enable some additional helper routes
 if (is_method("INVITE")) {
  t_on_branch("per_branch_ops");
  t_on_reply("handle_nat");
  #t_on_reply();
  t_on_failure("missed_call");
 }

 if (!t_relay()) {
  send_reply("500","Internal Error");
 };
 exit;
}


branch_route[per_branch_ops] {
 xlog("new branch at $run");
}


onreply_route[handle_nat] {

 xlog("incoming replyn");
}


failure_route[missed_call] {
 if (t_was_cancelled()) {
  exit;
 }

 # uncomment the following lines if you want to block client
 # redirect based on 3xx replies.
 ##if (t_check_status("3[0-9][0-9]")) {
 ##t_reply("404","Not found");
 ## exit;
 ##}

}