program proxyconf; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Classes, SysUtils, CustApp { you can add units after this }, user_management, error_console, ami_management; type { TAMIProxyConfig } TAMIProxyConfig = class(TCustomApplication) protected procedure DoRun; override; public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; procedure WriteHelp; virtual; end; { TAMIProxyConfig } procedure TAMIProxyConfig.DoRun; var ErrorMsg: String; begin //// quick check parameters //ErrorMsg:=CheckOptions('h','help'); //if ErrorMsg<>'' then begin //ShowException(Exception.Create(ErrorMsg)); //Halt; //end; // parse parameters if HasOption('h','help') then begin WriteHelp; end; // add user if HasOption('user') and HasOption('add') then begin AddUser(GetOptionValue('user'), GetOptionValue('secret'), GetOptionValue('perms')); Halt; end; // remove user if HasOption('user') and HasOption('remove') then begin RemoveUser(GetOptionValue('user')); Halt; end; // list users if HasOption('user') and HasOption('list') then begin ListUsers; Halt; end; if HasOption('proxy') and HasOption('port') then begin SetProxyPort(GetOptionValue('port')); Halt; end; if HasOption('ami') and HasOption('config') then begin SetAMIConnect(GetOptionValue('host'), GetOptionValue('port'), GetOptionValue('username'), GetOptionValue('secret')); halt; end; // stop program loop Terminate; end; constructor TAMIProxyConfig.Create(TheOwner: TComponent); begin inherited Create(TheOwner); StopOnException:=True; end; destructor TAMIProxyConfig.Destroy; begin inherited Destroy; end; procedure TAMIProxyConfig.WriteHelp; begin WriteLn(LineEnding + LineEnding); WriteLn('-----'); WriteLn('Users'); WriteLn('-----' + LineEnding); WriteLn('List Users:'); WriteLn('proxyconf -u -l'); WriteLn('Add User:'); WriteLn('proxyconf -u -a -username myusername -s mysecret -p call,system,all'); WriteLn(LineEnding); WriteLn('------------'); WriteLn('Proxy Server'); WriteLn('------------' + LineEnding); WriteLn('Set Proxy Listing Port:'); WriteLn('proxyconf -proxy -port 4500'); WriteLn(LineEnding); WriteLn('---'); WriteLn('AMI'); WriteLn('---' + LineEnding); WriteLn('AMI Settings:'); WriteLn('-ami -config -host HostOrIP -port 5038 -username Ausername -secret Asecret'); WriteLn(LineEnding); WriteLn('End of Comments' + LineEnding); end; var Application: TAMIProxyConfig; begin Application:=TAMIProxyConfig.Create(nil); Application.Run; Application.Free; end.