| Class TFormRemote (unit mobile) |
TForm
| Constructors |
| Functions |
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure StateBooleanAcceptMessageEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanAcceptQueryEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanCallDataQueryEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanCommentsVerifyEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanPlayDataBranchEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateMachineRemoteChangeState(Sender: TStateMachine;
FromState, ToState: TStateControl);
procedure StateMachineRemoteException(Sender: TStateMachine; Node: TStateControl;
Error: Exception);
procedure StateNodeCallingRadioEnterState(Sender: TObject);
procedure StateNodeCallRejectEnterState(Sender: TObject);
procedure StateNodeCommentsRecordEnterState(Sender: TObject);
procedure StateNodeConnectedEnterState(Sender: TObject);
procedure StateNodeConnectToClientEnterState(Sender: TObject);
procedure StateNodeEndCallEnterState(Sender: TObject);
procedure StateNodeErrorEnterState(Sender: TObject);
procedure StateNodeHangupEnterState(Sender: TObject);
procedure StateNodeInitEnterState(Sender: TObject);
procedure StateNodeParkCallEnterState(Sender: TObject);
procedure StateNodePlaybackMessageEnterState(Sender: TObject);
procedure StateNodePlayCallDataEnterState(Sender: TObject);
procedure StateNodePlayMessageEnterState(Sender: TObject);
procedure StateNodeReceiveEnterState(Sender: TObject);
procedure StateNodeReconnectAndEndCallEnterState(Sender: TObject);
procedure StateNodeRecordMessageEnterState(Sender: TObject);
procedure StateNodeResetEnterState(Sender: TObject);
procedure StateNodeSayAcceptQueryEnterState(Sender: TObject);
procedure StateNodeSayRecordMessageEnterState(Sender: TObject);
procedure StateNodeSelectRadioEnterState(Sender: TObject);
procedure StateNodeSendEnterState(Sender: TObject);
procedure StateNodeTempParkClientEnterState(Sender: TObject);
procedure StateNodeTimeoutWarningEnterState(Sender: TObject);
procedure StateNodeTransferToLocalEnterState(Sender: TObject);
procedure StateShutdownEnterState(Sender: TObject);
procedure StateTransitionAcceptFirstTransition(Sender: TObject);
procedure WaitForIdle;| Properties |
| Events |
| Variables |
EditClientNo : TEdit;
EditGatewayNo : TEdit;
EditMobileNo : TEdit;
Label1 : TLabel;
Label2 : TLabel;
Label3 : TLabel;
LabelCheck : TLabel;
LabelCollision : TLabel;
LabelMessage : TLabel;
Panel1 : TPanel;
PanelMessage : TPanel;
StateBooleanAcceptMessage : TStateBoolean;
StateBooleanAcceptQuery : TStateBoolean;
StateBooleanCallDataQuery : TStateBoolean;
StateBooleanCommentsVerify : TStateBoolean;
StateBooleanPlayDataBranch : TStateBoolean;
StateMachineRemote : TStateMachine;
StateNodeCallingRadio : TStateNode;
StateNodeCallReject : TStateNode;
StateNodeCommentsRecord : TStateNode;
StateNodeConnected : TStateNode;
StateNodeConnectToClient : TStateNode;
StateNodeEndCall : TStateNode;
StateNodeError : TStateNode;
StateNodeHangup : TStateNode;
StateNodeInit : TStateNode;
StateNodeParkCall : TStateNode;
StateNodePlaybackMessage : TStateNode;
StateNodePlayCallData : TStateNode;
StateNodePlayMessage : TStateNode;
StateNodeReceive : TStateNode;
StateNodeReconnectAndEndCall : TStateNode;
StateNodeRecordMessage : TStateNode;
StateNodeReset : TStateNode;
StateNodeSayAcceptQuery : TStateNode;
StateNodeSayRecordMessage : TStateNode;
StateNodeSelectRadio : TStateNode;
StateNodeSend : TStateNode;
StateNodeTempParkClient : TStateNode;
StateNodeTimeoutWarning : TStateNode;
StateNodeTransferToLocal : TStateNode;
StateShutdown : TStateNode;
StateStop : TStateStop;
StateTransitionAcceptFirst : TStateTransition;
StateTransitionAcceptQueryLoop : TStateTransition;
StateTransitionAcceptSecond : TStateTransition;
StateTransitionCall2Reset : TStateTransition;
StateTransitionConnectLoop : TStateTransition;
StateTransitionEndCall : TStateTransition;
StateTransitionLateReject : TStateTransition;
StateTransitionPlayCallDataLoop : TStateTransition;
StateTransitionPlayDataNo : TStateTransition;
StateTransitionRadioNoContact : TStateTransition;
StateTransitionRecordCommentsAgain : TStateTransition;
StateTransitionRecordMessageAgain : TStateTransition;
StateTransitionRejectCall : TStateTransition;
StateTransitionToLocal : TStateTransition;
Voice : TVoice;
FileNamePhrases : string;
FileNameSupport : string;
LastCommandTime : TDateTime;
LoopCounter1 : integer;
MobileNumber : string;
WarningIssued : boolean;| Constructors |
| Functions |
procedure FormCreate(Sender: TObject);Ignore
procedure FormShow(Sender: TObject);
procedure StateBooleanAcceptMessageEnterState(Sender: TStateBoolean;
var Result: Boolean);Recording format
procedure StateBooleanAcceptQueryEnterState(Sender: TStateBoolean;
var Result: Boolean);Voice.PlayFile( FileNameAcceptQuery,// Source file 0, // Start position in file RemoteDigitB+RemoteDigitM,// Terminating digits False, // Clear digit buffer before playback 3 // Recording format );
procedure StateBooleanCallDataQueryEnterState(Sender: TStateBoolean;
var Result: Boolean);Language parameters
procedure StateBooleanCommentsVerifyEnterState(Sender: TStateBoolean;
var Result: Boolean);Recording format
procedure StateBooleanPlayDataBranchEnterState(Sender: TStateBoolean;
var Result: Boolean);Loop or give up
procedure StateMachineRemoteChangeState(Sender: TStateMachine;
FromState, ToState: TStateControl);
procedure StateMachineRemoteException(Sender: TStateMachine; Node: TStateControl;
Error: Exception);
procedure StateNodeCallingRadioEnterState(Sender: TObject);s := IniFile.ReadString(cSystemSection, 'VoiceSystemFile', ''); Voice.SystemVoiceFile := s;
procedure StateNodeCallRejectEnterState(Sender: TObject);Voice.Dial(MainForm.OmstilCMD+EditMobileNo.Text, 0); (* if not(Voice.Call(MainForm.OmstilCMD+EditMobileNo.Text, 15) in [vvpOK, vvpConnected]) then begin ShowMessage(Voice.ActionResultString); StateMachineRemote.ChangeState(StateTransitionCall2Reset); exit; end;
procedure StateNodeCommentsRecordEnterState(Sender: TObject);Recording format
procedure StateNodeConnectedEnterState(Sender: TObject);Voice.Dial(MainForm.OmstilCmd+EditClientNo.Text+',,,'+MainForm.KonferenceCmd, 0);
procedure StateNodeConnectToClientEnterState(Sender: TObject);
procedure StateNodeEndCallEnterState(Sender: TObject);Voice.Dial(MainForm.TilbagekaldCmd, 0); Sleep(500); Voice.DeAllocateLine;
procedure StateNodeErrorEnterState(Sender: TObject);
procedure StateNodeHangupEnterState(Sender: TObject);Oh damn... Should perform some kind of reset here to leave voice stuff in a known state
procedure StateNodeInitEnterState(Sender: TObject);
procedure StateNodeParkCallEnterState(Sender: TObject);
procedure StateNodePlaybackMessageEnterState(Sender: TObject);Recording format
procedure StateNodePlayCallDataEnterState(Sender: TObject);
procedure StateNodePlayMessageEnterState(Sender: TObject);Wait 1 second for max 2 digits
procedure StateNodeReceiveEnterState(Sender: TObject);
procedure StateNodeReconnectAndEndCallEnterState(Sender: TObject);Indicate Message Waiting
procedure StateNodeRecordMessageEnterState(Sender: TObject);Recording format
procedure StateNodeResetEnterState(Sender: TObject);Voice.Dial(EditMobileNo.Text, 0); // Wait 15 seconds for max 2 digits s := Voice.GetDigits(2, '', 15, 1); if (s = RemoteDigitConnect) then exit else if (s = RemoteDigitNoConnect) then StateMachineRemote.ChangeState(StateTransitionRadioNoContact) else StateMachineRemote.State := StateNodeError;
procedure StateNodeSayAcceptQueryEnterState(Sender: TObject);
procedure StateNodeSayRecordMessageEnterState(Sender: TObject);Switch to other (remote
procedure StateNodeSelectRadioEnterState(Sender: TObject);InsertIntoQueue(qcRequeue,BuildParamStr);
procedure StateNodeSendEnterState(Sender: TObject);Send timeout warning to mobile
procedure StateNodeTempParkClientEnterState(Sender: TObject);InsertIntoQueue(qcRequeue,BuildParamStr);
procedure StateNodeTimeoutWarningEnterState(Sender: TObject);Check for time out
procedure StateNodeTransferToLocalEnterState(Sender: TObject);Indicate Message Waiting
procedure StateShutdownEnterState(Sender: TObject);End of call - log stuff
procedure StateTransitionAcceptFirstTransition(Sender: TObject);if (MessageDlg('Play call data?', mtConfirmation, [mbYes, mbNo] , 0) = mrNo) then StateMachineRemote.ChangeState(StateTransitionPlayDataNo);
procedure WaitForIdle;Warn 15 seconds before timeout Voice Phrase Indexes
| Properties |
| Events |
| Variables |
EditClientNo : TEdit;
EditGatewayNo : TEdit;
EditMobileNo : TEdit;
Label1 : TLabel;
Label2 : TLabel;
Label3 : TLabel;
LabelCheck : TLabel;
LabelCollision : TLabel;
LabelMessage : TLabel;
Panel1 : TPanel;
PanelMessage : TPanel;
StateBooleanAcceptMessage : TStateBoolean;
StateBooleanAcceptQuery : TStateBoolean;
StateBooleanCallDataQuery : TStateBoolean;
StateBooleanCommentsVerify : TStateBoolean;
StateBooleanPlayDataBranch : TStateBoolean;
StateMachineRemote : TStateMachine;
StateNodeCallingRadio : TStateNode;
StateNodeCallReject : TStateNode;
StateNodeCommentsRecord : TStateNode;
StateNodeConnected : TStateNode;
StateNodeConnectToClient : TStateNode;
StateNodeEndCall : TStateNode;
StateNodeError : TStateNode;
StateNodeHangup : TStateNode;
StateNodeInit : TStateNode;
StateNodeParkCall : TStateNode;
StateNodePlaybackMessage : TStateNode;
StateNodePlayCallData : TStateNode;
StateNodePlayMessage : TStateNode;
StateNodeReceive : TStateNode;
StateNodeReconnectAndEndCall : TStateNode;
StateNodeRecordMessage : TStateNode;
StateNodeReset : TStateNode;
StateNodeSayAcceptQuery : TStateNode;
StateNodeSayRecordMessage : TStateNode;
StateNodeSelectRadio : TStateNode;
StateNodeSend : TStateNode;
StateNodeTempParkClient : TStateNode;
StateNodeTimeoutWarning : TStateNode;
StateNodeTransferToLocal : TStateNode;
StateShutdown : TStateNode;
StateStop : TStateStop;
StateTransitionAcceptFirst : TStateTransition;
StateTransitionAcceptQueryLoop : TStateTransition;
StateTransitionAcceptSecond : TStateTransition;
StateTransitionCall2Reset : TStateTransition;
StateTransitionConnectLoop : TStateTransition;
StateTransitionEndCall : TStateTransition;
StateTransitionLateReject : TStateTransition;
StateTransitionPlayCallDataLoop : TStateTransition;
StateTransitionPlayDataNo : TStateTransition;
StateTransitionRadioNoContact : TStateTransition;
StateTransitionRecordCommentsAgain : TStateTransition;
StateTransitionRecordMessageAgain : TStateTransition;
StateTransitionRejectCall : TStateTransition;
StateTransitionToLocal : TStateTransition;
Voice : TVoice;Public declarations
FileNamePhrases : string;Private declarations } // Message files
FileNameSupport : string;
LastCommandTime : TDateTime;
LoopCounter1 : integer;
MobileNumber : string;
WarningIssued : boolean;