📄 mainunit.pas
字号:
begin
AddToStatusLog('Trying to un-register.');
end;
procedure TMainForm.BtnOpenPlayWaveClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveOpen(ListLines.ItemIndex, EditPlayFileName.Text) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWaveStartClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveStart(ListLines.ItemIndex, CheckBoxPlayListen.Checked) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWaveRewindClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveSkipTo(ListLines.ItemIndex, VaxSIPUserAgentOCX.PlayWavePosition(ListLines.ItemIndex) - 2) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWaveForwardClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveSkipTo(ListLines.ItemIndex, VaxSIPUserAgentOCX.PlayWavePosition(ListLines.ItemIndex) + 2) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWavePauseClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWavePause(ListLines.ItemIndex) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWaveStopClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveStop(ListLines.ItemIndex) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnTransferCallClick(Sender: TObject);
var
ToURI : String;
begin
ToURI := 'sip:' + EditTransferNo.Text + '@' + EditSIPProxy.Text;
If VaxSIPUserAgentOCX.TransferCall(ListLines.ItemIndex, ToURI) = False Then
ErrorMessages();
end;
procedure TMainForm.VaxSIPUserAgentOCXCallTransferAccepted(
ASender: TObject; LineNo: Integer);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ': Transfer accepted.')
end;
procedure TMainForm.VaxSIPUserAgentOCXConnecting(ASender: TObject; LineNo: Integer);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ': Connecting.');
end;
procedure TMainForm.VaxSIPUserAgentOCXDisconnectCall(ASender: TObject; LineNo: Integer);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ': Hung up.');
end;
procedure TMainForm.VaxSIPUserAgentOCXFailToConnect(ASender: TObject;
LineNo: Integer);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ': Fail to connect.');
end;
procedure TMainForm.VaxSIPUserAgentOCXGeneralFailureResponse(
ASender: TObject; LineNo, StatusCode: Integer;
const ReasonPhrase: WideString);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ' Response: ' + ReasonPhrase);
end;
procedure TMainForm.VaxSIPUserAgentOCXProvisionalResponse(ASender: TObject;
LineNo, StatusCode: Integer; const ReasonPhrase: WideString);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ' Response: ' + ReasonPhrase);
end;
procedure TMainForm.VaxSIPUserAgentOCXRedirectionResponse(ASender: TObject;
LineNo, StatusCode: Integer; const ReasonPhrase, Contact: WideString);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ' Response: ' + ReasonPhrase);
end;
procedure TMainForm.VaxSIPUserAgentOCXRequestFailureResponse(
ASender: TObject; LineNo, StatusCode: Integer;
const ReasonPhrase: WideString);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ' Response: ' + ReasonPhrase);
end;
procedure TMainForm.VaxSIPUserAgentOCXServerFailureResponse(
ASender: TObject; LineNo, StatusCode: Integer;
const ReasonPhrase: WideString);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ' Response: ' + ReasonPhrase);
end;
procedure TMainForm.VaxSIPUserAgentOCXIncomingCallRingingStart(
ASender: TObject; const CallId: WideString);
begin
if CheckBoxRingTone.Checked = True Then
begin
PlaySound('ring.wav', 0, SND_ASYNC + SND_FILENAME + SND_LOOP + SND_NODEFAULT)
end;
end;
procedure TMainForm.VaxSIPUserAgentOCXIncomingCallRingingStop(
ASender: TObject; const CallId: WideString);
var
ItemIndex : Integer;
begin
ItemIndex := ListBoxIcomingCallId.Items.IndexOf(CallId);
if ItemIndex <> -1 then
begin
ListBoxIcomingCallId.Items.Delete(ItemIndex);
ListBoxIncomingCall.Items.Delete(ItemIndex);
end;
PlaySound(nil, 0, 0);
end;
procedure TMainForm.VaxSIPUserAgentOCXPlayWaveDone(ASender: TObject;
LineNo: Integer);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ': Play wave done.');
end;
procedure TMainForm.CheckBoxRingToneClick(Sender: TObject);
begin
if CheckBoxRingTone.Checked = False Then
PlaySound(nil, 0, 0);
end;
procedure TMainForm.BtnMoreHelpClick(Sender: TObject);
var
HelpForm : THelpForm;
begin
HelpForm := THelpForm.Create(self);
HelpForm.ShowModal;
HelpForm.Free;
end;
procedure TMainForm.VaxSIPUserAgentOCXDTMFDigit(ASender: TObject;
LineNo: Integer; const Digit: WideString);
begin
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ': Key-pressed: ' + Digit);
end;
procedure TMainForm.VaxSIPUserAgentOCXIncomingCall(ASender: TObject;
const CallId, DisplayName, UserName, FromURI, ToURI: WideString);
begin
if ListBoxIcomingCallId.Items.IndexOf(CallId) = -1 then
ListBoxIcomingCallId.Items.Add(CallId);
if Length(DisplayName) <> 0 then
ListBoxIncomingCall.Items.Add('CLI: ' + DisplayName)
else
ListBoxIncomingCall.Items.Add('CLI: ' + UserName);
if (ListBoxIncomingCall.ItemIndex = -1) and (ListBoxIncomingCall.Items.Count > 0) Then
ListBoxIncomingCall.ItemIndex := 0;
end;
procedure TMainForm.VaxSIPUserAgentOCXSuccessToConnect(ASender: TObject;
LineNo: Integer; const ToRTPIP: WideString; ToRTPPort: Integer);
var
Vol : Integer;
begin
If LineNo <> ListLines.ItemIndex Then
begin
ListLines.Items.Strings[LineNo] := 'Line-' + IntToStr(LineNo+1) + ' : HOLD';
VaxSIPUserAgentOCX.HoldLine (LineNo);
end
else
begin
ListLines.Items.Strings[LineNo] := 'Line-' + IntToStr(LineNo+1) + ' : BUSY';
end;
AddToStatusLog('Line-' + IntToStr(LineNo + 1) + ': Success to connect.');
Vol := VaxSIPUserAgentOCX.GetSpkVolume();
TrackBarSpkVol.Position := Vol div 25;
Vol := VaxSIPUserAgentOCX.GetMicVolume();
TrackBarMicVol.Position := Vol div 25;
CheckMicBoost.Checked := VaxSIPUserAgentOCX.IsMicBoostEnable();
end;
procedure TMainForm.AddToStatusLog(LogText : String);
begin
ListStatusLog.Items.Add(LogText);
ListStatusLog.TopIndex := ListStatusLog.Count - 1;
end;
function TMainForm.FindLine() : Integer;
var
LineNo : Integer;
begin
LineNo := ListLines.ItemIndex;
if VaxSIPUserAgentOCX.IsLineBusy(LineNo) = False Then
begin
Result := LineNo;
exit;
end;
For LineNo := 0 To 6 do
begin
If VaxSIPUserAgentOCX.IsLineBusy(LineNo) = False Then
begin
Result := LineNo;
exit;
end;
end;
Result := -1;
end;
procedure TMainForm.UpdateListLine(LineNo : Integer);
var
LineCount : Integer;
begin
If CheckStartConf.Checked Then
begin
for LineCount := 0 to 6 do
If VaxSIPUserAgentOCX.IsLineHold(LineCount) Then
VaxSIPUserAgentOCX.UnHoldLine (LineCount);
end
else
begin
for LineCount := 0 to 6 do
begin
if LineCount <> LineNo Then
begin
If ((VaxSIPUserAgentOCX.IsLineBusy(LineCount) = True) And (VaxSIPUserAgentOCX.IsLineHold(LineCount) = False)) Then
VaxSIPUserAgentOCX.HoldLine (LineCount);
end;
end;
If VaxSIPUserAgentOCX.IsLineHold(LineNo) Then
VaxSIPUserAgentOCX.UnHoldLine (LineNo);
end;
end;
procedure TMainForm.TimerTickTimer(Sender: TObject);
var
LineNo : Integer;
ItemText : String;
begin
If ListLines.Items.Count = 0 then
Begin
for LineNo := 0 to 6 do
begin
ListLines.Items.Add('Line-' + IntToStr(LineNo+1) + ' : FREE');
end;
ListLines.ItemIndex := 0;
end;
UpdateListLine(ListLines.ItemIndex);
if (VaxSIPUserAgentOCX.IsRecording(ListLines.ItemIndex) = True) <> (CheckBoxStartRecording.Checked = True) Then
begin
if VaxSIPUserAgentOCX.IsRecording(ListLines.ItemIndex) Then
CheckBoxStartRecording.Checked := True
Else
CheckBoxStartRecording.Checked := False
end;
for LineNo := 0 to 6 do
begin
ItemText := ListLines.Items.Strings[LineNo];
If VaxSIPUserAgentOCX.IsLineOpen(LineNo) = False then
begin
if Pos('CLOSE', ItemText) = 0 then
ListLines.Items.Strings[LineNo] := 'Line-' + IntToStr(LineNo+1) + ' : CLOSE'
end
else
begin
If VaxSIPUserAgentOCX.IsLineBusy(LineNo) = True then
begin
If VaxSIPUserAgentOCX.IsWaveFilePlaying(LineNo) = True then
begin
if Pos('PLAYING', ItemText) = 0 then
ListLines.Items.Strings[LineNo] := 'Line-' + IntToStr(LineNo+1) + ' : PLAYING'
end
else
begin
if VaxSIPUserAgentOCX.IsLineHold(LineNo) = True then
begin
if Pos('HOLD', ItemText) = 0 then
ListLines.Items.Strings[LineNo] := 'Line-' + IntToStr(LineNo+1) + ' : HOLD'
end
else
begin
if (Pos('BUSY', ItemText) = 0) and (Pos('CONNECTING', ItemText) = 0) then
ListLines.Items.Strings[LineNo] := 'Line-' + IntToStr(LineNo+1) + ' : BUSY'
end
end;
end
else
if Pos('FREE', ItemText) = 0 then
ListLines.Items.Strings[LineNo] := 'Line-' + IntToStr(LineNo+1) + ' : FREE';
end;
end;
end;
procedure TMainForm.TimerProgressTimer(Sender: TObject);
begin
SpkProgBar.Position := VaxSIPUserAgentOCX.GetSpkSoundLevel();
MicProgBar.Position := VaxSIPUserAgentOCX.GetMicSoundLevel();
end;
procedure TMainForm.CheckStartConfClick(Sender: TObject);
var
BusyCount : Integer;
LineNo : Integer;
begin
BusyCount := 0;
for LineNo := 0 to 6 do
begin
if(VaxSIPUserAgentOCX.IsLineBusy(LineNo)) then
BusyCount := BusyCount + 1;
end;
if (BusyCount < 2) and (CheckStartConf.Checked) then
begin
CheckStartConf.Checked := False;
application.MessageBox('Dial/receive more than one calls and then click start conference check box.', 'VaxVoIP SDK', MB_ICONEXCLAMATION);
end;
end;
procedure TMainForm.VaxSIPUserAgentOCXFailToReRegister(Sender: TObject);
begin
AddToStatusLog('Fail to re-register.');
end;
procedure TMainForm.VaxSIPUserAgentOCXSuccessToReRegister(Sender: TObject);
begin
AddToStatusLog('Success to re-register.');
end;
procedure TMainForm.VaxSIPUserAgentOCXTryingToReRegister(Sender: TObject);
begin
AddToStatusLog('Trying to re-register.');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -