Class TFormRemote (unit mobile) |
Inherits from
TForm
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.
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.
procedure StateNodeCallRejectEnterState(Sender: TObject);
Voice.
procedure StateNodeCommentsRecordEnterState(Sender: TObject);
Recording format
procedure StateNodeConnectedEnterState(Sender: TObject);
Voice.
procedure StateNodeConnectToClientEnterState(Sender: TObject);
procedure StateNodeEndCallEnterState(Sender: TObject);
Voice.
procedure StateNodeErrorEnterState(Sender: TObject);
procedure StateNodeHangupEnterState(Sender: TObject);
Oh damn.
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.
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.
procedure WaitForIdle;
Warn 15 seconds before timeout Voice Phrase Indexes
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;
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
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;