Hi Marcio,
yes, your guess is correct - the $rc pv changes after each command you
run, so in switch() it will contain the return code of log().
Try something like:
www_authorize("rio.voip.br <http://rio.voip.br>",
"subscriber");
$var(x) = $rc;
if ($rc<0) {
xlog("L_ALERT", "REGISTER ($fU)($ru) nao autorizado - Return Code
DEPOIS.0 ($var(x))\n");
switch($var(x)){
case -1:
log(1,"Invalid User\n");
.........
}
regards,
Bogdan
Marcio wrote:
Hi,
Thx for the answer, I tested and worked....but with errors...in
relation to return codes of the Authentication's Module...
In my xlite I just changed the password...should have returned the
code (-2)...but returned the codes (-4) and (-5).....pls see below the
log....in red
......
May 30 15:29:28 i206529 openser[24649]: Return Code - ANTES (1)
May 30 15:29:28 i206529 openser[24649]: REGISTER
(12141)(sip:rio.voip.br <http://rio.voip.br>) nao autorizado - Return
Code DEPOIS.0 (-4)
May 30 15:29:28 i206529 openser[24649]: Enviando 401 - Unauthorized
May 30 15:29:28 i206529 openser[24649]: Process Other Requests Here
May 30 15:29:28 i206529 openser[24649]: REGISTER - Codigo Ret (1)
May 30 15:29:28 i206529 openser[24649]: REGISTER
(12141)(sip:rio.voip.br <http://rio.voip.br>) nao autorizado - Return
Code DEPOIS.1 (1)
May 30 15:29:28 i206529 openser[24651]: Return Code - ANTES (1)
May 30 15:29:28 i206529 openser[24651]: REGISTER
(12141)(sip:rio.voip.br <http://rio.voip.br>) nao autorizado - Return
Code DEPOIS.0 (-5)
May 30 15:29:28 i206529 openser[24651]: Enviando 401 - Unauthorized
May 30 15:29:28 i206529 openser[24651]: Process Other Requests Here
May 30 15:29:28 i206529 openser[24651]: REGISTER - Codigo Ret (1)
May 30 15:29:28 i206529 openser[24651]: REGISTER
(12141)(sip:rio.voip.br <http://rio.voip.br>) nao autorizado - Return
Code DEPOIS.1 (1)
and config script...
........
if (is_method("REGISTER")) {
xlog("L_ALERT", "Chegou um REGISTER
($fU)($ru)($retcode)\n");
route(2);
return;
........
route[2]
xlog("L_ALERT", "Return Code - ANTES ($rc)\n");
if (!www_authorize("rio.voip.br <http://rio.voip.br>",
"subscriber")) {
xlog("L_ALERT", "REGISTER ($fU)($ru) nao autorizado - Return
Code DEPOIS.0 ($rc)\n");
log(1, "Enviando 401 - Unauthorized\n");
switch($rc){
case -1:
log(1,"Invalid User\n");
break;
case -2:
log(1, "Invalid Password\n");
break;
case -3:
log(1, "Stale Nonce\n");
break;
case -4:
log(1, "No Credentials\n");
break;
case -5:
log(1, "Generic Error\n");
break;
default:
log(1, "Process Other Requests Here\n");
xlog("L_ALERT","REGISTER - Codigo Ret ($rc)\n");
}
xlog("L_ALERT", "REGISTER ($fU)($ru) nao autorizado - Return
Code DEPOIS.1 ($rc)\n");
www_challenge("rio.voip.br <http://rio.voip.br>",
"1");
return;
}
if (!check_to()) {
............
I believe it is due to the use of the functions log() and
xlog().....that changed the value of ($rc)....
regards,
Marcio
2008/5/30 Bogdan-Andrei Iancu <bogdan(a)voice-system.ro
<mailto:bogdan@voice-system.ro>>:
Hi Marcio,
Actually, the correct pseudo variable is $retcode or $rc.
See:
http://www.openser.org/dokuwiki/doku.php/pseudovariables:1.3.x#returned_code
Regards,
Bogdan
Marcio wrote:
Hi.....
I'm grateful for the tip but within the Openser's Config the
variable "$retval" is not recognized....
Below the log....
ERROR:core:pv_parse_spec: error searching pvar "retval"
May 28 08:18:57 i206529 openser: ERROR:core:pv_parse_spec:
wrong char [
May 28 08:18:57 i206529 openser: CRITICAL:core:yyerror: parse
error in config file, line 385, column 12-20: unknown script
variable
and the config script...
............................omitted output.......................
if (!www_authorize("rio.voip.br <http://rio.voip.br>
<http://rio.voip.br>", "subscriber")) {
xlog("L_ALERT", "REGISTER ($fU) ($ru) nao
autorizado\n");
log(1, "Enviando 401 - Unauthorized (Username)\n");
# perl_exec("chkval"); # check retval but still
not working...
switch ($retval){
case 1:
log("process authentication
success");
break;
case -1:
log("Non Existent User");
break;
case -2:
log("Invalid Password");
break;
case -3:
log("Stale Nonce");
break;
case -4:
log("No Credentials");
break;
default:
log("Process Other Requests Here");
}
www_challenge("rio.voip.br <http://rio.voip.br>
<http://rio.voip.br>", "1");
return;
........................omitted output................
Any hint of how I can make the Openser's config recognize the
pvar "$retval"??
regards,
Marcio
2008/5/28 Daniel-Constantin Mierla <miconda(a)gmail.com
<mailto:miconda@gmail.com> <mailto:miconda@gmail.com
<mailto:miconda@gmail.com>>>:
Hello,
On 05/27/08 22:13, Marcio wrote:
Hi,
Who would have tips on how to capture the return codes
negative of the function "www_authorize" ???
I read somewhere that said to use $retval........but ...How
can I to use it ("$retval") ??
-1 - Non existent user;
-2 - invalid passwd;
-3 - stale nonce;
-4 - no credentials;
-5 - error;
Any help will be greatly appreciated.
one mode is with switch statement:
www_authorize(...);
switch($retval)
{
case -1:
........
break;
case -2:
.......
break;
....
}
http://www.openser.org/dokuwiki/doku.php/core-cookbook:devel#switch
Daniel
thx,
Marcio
------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users(a)lists.openser.org
<mailto:Users@lists.openser.org>
<mailto:Users@lists.openser.org <mailto:Users@lists.openser.org>>
http://lists.openser.org/cgi-bin/mailman/listinfo/users
--
http://www.asipto.com
------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users(a)lists.openser.org <mailto:Users@lists.openser.org>
http://lists.openser.org/cgi-bin/mailman/listinfo/users