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(); }
}
}
--
SY,
Victor V. Kustov
+7 (952) 966 76 24
JID: coyote(a)bks.tv
JID: coyote(a)bryansktel.ru
I use FREE operation system: 3.7.7-calculate GNU/Linux