(RADIATOR) AuthBy External clause problem

Hugh Irvine hugh at open.com.au
Wed Sep 3 06:54:47 CDT 2003


Hello Ganbold -

It is possible that you may need to use "ResultInOutput" in this  
environment.

Have a look at the code in "Radius/AuthEXTERNAL.pm" and maybe add some  
print statements so you can see what is happening. And please let us  
know what you find.

regards

Hugh


On Wednesday, Sep 3, 2003, at 21:11 Australia/Melbourne, Ganbold wrote:

> Hi,
>
> I'm testing Radiator-3.6 in Windows 2000 advanced server.
> I'm using AuthBy External clause in handlers. But when external program
> returns 0 (Access-Accept) radiator understands it as a 3 and responds
> with Access-Challenge response. External program worked well in
> FreeBSD 5.1. It works in FreeBSD as it supposed to. However in Windows
> above problem occurs.
>
> How can I solve this problem? Is it OS issue? or there is something  
> else?
> I really appreciate if somebody give the right solution.
>
> thanks in advance,
>
> Ganbold
> Micom CO.,Ltd
>
>
> ----------------------------------------------------------------------- 
> ---------------
> Trace 4 debug:
> ----------------------------------------------------------------------- 
> ---------------
>
> Code:       Access-Request
> Identifier: 149
> Authentic:   
> <157><201><20>5u<249><179><11><8><255><240><236>W<195><253>x
> Attributes:
> 	User-Name = "44444444"
> 	User-Password =  
> "<159><192><246><10><228><184>Z<200>K<1><253><232><162>^Tv"
> 	cisco-h323-conf-id = "h323-conf-id=45135D12 DD3911D7 809F812C  
> 9428BE9D"
> 	cisco-avpair = "h323-ivr-out=transactionID:114"
> 	Calling-Station-Id = "11323224"
> 	Called-Station-Id = "0011112365"
> 	Service-Type = Login-User
> 	NAS-IP-Address = xxx.xxx.xxx.xxx
>
> Wed Sep  3 19:36:01 2003: DEBUG: Rewrote user name to 44444444
> Wed Sep  3 19:36:01 2003: DEBUG: Rewrote user name to 44444444
> Wed Sep  3 19:36:01 2003: DEBUG: Rewrote user name to 44444444
> Wed Sep  3 19:36:01 2003: DEBUG: Rewrote user name to 44444444
> Wed Sep  3 19:36:01 2003: DEBUG: Handling request with Handler  
> 'User-Name = /^([0-9])+$/, Called-Station-Id = /^([0-9])+$/'
> Wed Sep  3 19:36:01 2003: DEBUG: Rewrote user name to 44444444
> Wed Sep  3 19:36:01 2003: DEBUG: Running command:  
> d:\Radiator-3.6\hooks\CalcCreditTime
> Wed Sep  3 19:36:01 2003: DEBUG: Access challenged for 44444444:
> Wed Sep  3 19:36:01 2003: DEBUG: Packet dump:
> *** Sending to xxx.xxx.xxx.xxx port 21661 ....
> Code:       Access-Challenge
> Identifier: 149
> Authentic:   
> <157><201><20>5u<249><179><11><8><255><240><236>W<195><253>x
> Attributes:
> 	cisco-h323-return-code = "h323-return-code=0"
> 	cisco-h323-credit-time = "h323-credit-time=1276"
> 	Reply-Message = "first 5!"
>
>
>
> ----------------------------------------------------------------------- 
> ---------------
> Below is my config:
> ----------------------------------------------------------------------- 
> ---------------
>
> #radius.cfg
>
> Foreground
> Trace 4
>
> AuthPort	1645
> AcctPort	1646
>
> LogDir		d:\Radiator-3.6\log
> LogFile		%L/logfile.txt
>
> DictionaryFile  d:\Radiator-3.6\dictionary
>
> RewriteUsername s/^\s+//
> RewriteUsername s/\s+$//
> RewriteUsername s/\s+//g
> RewriteUsername	tr/[A-Z]/[a-z]/
>
>
> <Client xxx.xxx.xxx.xxx>
> 	Secret xxx
> 	NasType Cisco
> 	SNMPCommunity MN-2008
> 	StatusServerShowClientDetails
> </Client>
>
>
> <AuthBy SQL>
>         DBSource        dbi:mysql:voip_prepaid:localhost
>         DBUsername      xxx
>         DBAuth          xxx
>
>         Identifier VoipTerminate
>
>         AuthSelect
>
>         AccountingTable voip_termination
>         AccountingStopsOnly
>
>         AcctColumnDef   nasipaddress,NAS-IP-Address
>         AcctColumnDef   cisco_nas_port,Cisco-NAS-Port
>         AcctColumnDef   username,User-Name
>
>         AcctColumnDef   calledstationid,Called-Station-Id
>         AcctColumnDef   callingstationid,Calling-Station-Id
>
>         AcctColumnDef  
> h323_gw_id,cisco-h323-gw-id,literal,trim(substring('%{cisco-h323-gw- 
> id}',locate('=','%{cisco-h323-gw-id}')+1))
>         AcctColumnDef  
> h323_call_origin,cisco-h323-call- 
> origin,literal,trim(substring('%{cisco-h323-call- 
> origin}',locate('=','%{cisco-h323-call-origin}')+1))
>         AcctColumnDef  
> h323_call_type,cisco-h323-call-type,literal,trim(substring('%{cisco- 
> h323-call-type}',locate('=','%{cisco-h323-call-type}')+1))
>
>         AcctColumnDef  
> h323_setup_time,cisco-h323-setup-time,literal,trim(substring('%{cisco- 
> h323-setup-time}',locate('=','%{cisco-h323-setup-time}')+1))
>         AcctColumnDef  
> h323_connect_time,cisco-h323-connect- 
> time,literal,trim(substring('%{cisco-h323-connect- 
> time}',locate('=','%{cisco-h323-connect-time}')+1))
>         AcctColumnDef  
> h323_disconnect_time,cisco-h323-disconnect- 
> time,literal,trim(substring('%{cisco-h323-disconnect- 
> time}',locate('=','%{cisco-h323-disconnect-time}')+1))
>         AcctColumnDef  
> h323_disconnect_cause,cisco-h323-disconnect- 
> cause,literal,trim(substring('%{cisco-h323-disconnect- 
> cause}',locate('=','%{cisco-h323-disconnect-cause}')+1))
>         AcctColumnDef  
> h323_voice_quality,cisco-h323-voice- 
> quality,literal,trim(substring('%{cisco-h323-voice- 
> quality}',locate('=','%{cisco-h323-voice-quality}')+1))
>         AcctColumnDef  
> h323_remote_address,cisco-h323-remote- 
> address,literal,trim(substring('%{cisco-h323-remote- 
> address}',locate('=','%{cisco-h323-remote-address}')+1))
>
>         AcctColumnDef   acctstatustype,Acct-Status-Type
>         AcctColumnDef   acctdelaytime,Acct-Delay-Time,integer
>         AcctColumnDef   acctsessionid,Acct-Session-Id
>         AcctColumnDef   acctinputoctets,Acct-Input-Octets,integer
>         AcctColumnDef   acctoutputoctets,Acct-Output-Octets,integer
>
>         AcctColumnDef   acctsessiontime,Acct-Session-Time,integer
>         AcctColumnDef   time_stamp,Timestamp,integer
> </AuthBy>
>
> <AuthBy EXTERNAL>
> 	Identifier PSA
> 	DecryptPassword
> 	Command d:\Radiator-3.6\hooks\PSA
> </AuthBy>
> <AuthBy EXTERNAL>
> 	Identifier TransBalance
> 	DecryptPassword
> 	Command d:\Radiator-3.6\hooks\TransBalance
> </AuthBy>
> <AuthBy EXTERNAL>
> 	Identifier CalcCreditTime
> 	DecryptPassword
> 	StripFromReply	Reply-Message
> 	Command d:\Radiator-3.6\hooks\CalcCreditTime
> </AuthBy>
> <AuthBy EXTERNAL>
> 	Identifier CalcCreditAmount
> 	DecryptPassword
> 	StripFromReply	Reply-Message
> 	Command d:\Radiator-3.6\hooks\CalcCreditAmount
> </AuthBy>
>
> # 2 termination handler
> <Handler Request-Type = Accounting-Request, Acct-Status-Type = Stop,  
> cisco-h323-call-origin = /originate$/, cisco-h323-call-type =  
> /Telephony$/>
> 	AuthBy VoipTerminate
> </Handler>
> <Handler Request-Type = Accounting-Request, Acct-Status-Type = Stop,  
> cisco-h323-call-origin = /answer$/, cisco-h323-call-type = /VoIP$/>
> 	AuthBy VoipTerminate
> </Handler>
>
>
> <Handler Request-Type = Accounting-Request, Acct-Status-Type = Start>
> 	PostAuthHook file:"d:\Radiator-3.6\hooks\AcctResponse"
> </Handler>
>
> <Handler Request-Type = Accounting-Request, Acct-Status-Type = Stop,  
> User-Name = /^([0-9])+$/>
> 	AuthBy CalcCreditAmount
> 	PostAuthHook file:"d:\Radiator-3.6\hooks\AcctResponse"
> </Handler>
>
> <Handler Request-Type = Accounting-Request, Acct-Status-Type = Stop,  
> User-Name = /^([0-9])+%([0-9])+$/>
> 	PostAuthHook file:"d:\Radiator-3.6\hooks\AcctResponse"
> </Handler>
>
> <Handler User-Name = /^([0-9])+%([0-9])+$/>
> 	RewriteUsername s/^([^@]+).*/$1/
> 	RejectHasReason
> 	StripFromReply	Reply-Message
> 	AccountingHandled
> 	AuthBy TransBalance
> </Handler>
>
> <Handler User-Name = /^([0-9])+$/, Called-Station-Id = /^([0-9])+$/>
> 	RewriteUsername s/^([^@]+).*/$1/
> 	RejectHasReason
> #	StripFromReply	Reply-Message
> 	AccountingHandled
> 	AuthBy CalcCreditTime
> </Handler>
>
> # skip error
> <Handler User-Name = ERROR>
> </Handler>
> <Handler User-Name = error>
> </Handler>
>
> <Handler User-Name = /^([0-9])+$/>
> 	RewriteUsername s/^([^@]+).*/$1/
> 	RejectHasReason
> 	StripFromReply	Reply-Message
> 	AccountingHandled
> 	SessionDatabase SQL1
> 	AuthBy PSA
> </Handler>
>
>
> <SessionDatabase SQL>
> 	DBSource	dbi:mysql:voip_prepaid:localhost
> 	DBUsername	xxx
> 	DBAuth		xxx
>
> 	Identifier SQL1
>
> 	AddQuery
> 	DeleteQuery
> 	ClearNasQuery delete from voip_online where NASIDENTIFIER='%N'
> 	CountQuery
> </SessionDatabase>
>
> ===
> Archive at http://www.open.com.au/archives/radiator/
> Announcements on radiator-announce at open.com.au
> To unsubscribe, email 'majordomo at open.com.au' with
> 'unsubscribe radiator' in the body of the message.
>
>

NB: have you included a copy of your configuration file (no secrets),
together with a trace 4 debug showing what is happening?

-- 
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows, MacOS X.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.



NB: have you included a copy of your configuration file (no secrets),
together with a trace 4 debug showing what is happening?

-- 
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows, MacOS X.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.

===
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.


More information about the radiator mailing list