📄 mainunit.pas
字号:
procedure TMainForm.UpdateSoundDevices();
var
DeviceId : Integer;
begin
ComboAudioIn.Clear();
ComboAudioIn.Items.Add('Default Device');
for DeviceId := 0 to VaxSIPUserAgentOCX.GetAudioInDevTotal() - 1 do
Begin
ComboAudioIn.Items.Add(VaxSIPUserAgentOCX.GetAudioInDevName(DeviceId));
end;
ComboAudioIn.ItemIndex := 0;
ComboAudioOut.Clear();
ComboAudioOut.Items.Add('Default Device');
for DeviceId := 0 to VaxSIPUserAgentOCX.GetAudioOutDevTotal() - 1 do
Begin
ComboAudioOut.Items.Add(VaxSIPUserAgentOCX.GetAudioOutDevName(DeviceId));
end;
ComboAudioOut.ItemIndex := 0;
end;
procedure TMainForm.BtnInitClick(Sender: TObject);
begin
if BtnInit.Caption = 'Offline' then
begin
BtnInit.Caption := 'Online';
VaxSIPUserAgentOCX.UnInitialize();
TimerTick.Enabled := False;
TimerProgress.Enabled := False;
SpkProgBar.Position := 0;
MicProgBar.Position := 0;
ComboAudioOut.Clear();
ComboAudioIn.Clear();
exit;
end;
If EditLoginId.Text = '' Then
begin
application.MessageBox('Please enter the SIP proxy Login Id.', 'VaxVoIP SDK', MB_ICONEXCLAMATION);
exit;
end;
If EditSIPProxy.Text = '' Then
Begin
application.MessageBox('Please enter the SIP proxy address or URI.', 'VaxVoIP SDK', MB_ICONEXCLAMATION);
exit;
end;
VaxSIPUserAgentOCX.SetLicenceKey('TRIAL-LICENSE-KEY');
if InitVaxObject() = False then exit;
if OpenLines() = False then exit;
if CheckBoxRegisterToProxy.Checked = True then
begin
If False = VaxSIPUserAgentOCX.RegisterToProxy(3600) Then
begin
ErrorMessages();
exit;
end;
AddToStatusLog('Registering to SIP Proxy.');
end;
CheckEchoCancel.Checked := True;
CheckGSM610.Checked := True;
CheckiLBC.Checked := True;
CheckG711A.Checked := True;
CheckG711U.Checked := True;
VaxSIPUserAgentOCX.EnableKeepAlive(10);
BtnInit.Caption := 'Offline';
UpdateSoundDevices();
TimerTick.Enabled := True;
TimerProgress.Enabled := True;
end;
procedure TMainForm.BtnDial1Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '1';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '1');
end;
procedure TMainForm.BtnDial2Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '2';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '2');
end;
procedure TMainForm.BtnDial3Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '3';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '3');
end;
procedure TMainForm.BtnDial4Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '4';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '4');
end;
procedure TMainForm.BtnDial5Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '5';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '5');
end;
procedure TMainForm.BtnDial6Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '6';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '6');
end;
procedure TMainForm.BtnDial7Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '7';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '7');
end;
procedure TMainForm.BtnDial8Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '8';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '8');
end;
procedure TMainForm.BtnDial9Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '9';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '9');
end;
procedure TMainForm.BtnDialStarClick(Sender: TObject);
begin
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '*');
end;
procedure TMainForm.BtnDial0Click(Sender: TObject);
begin
EditPhoneNo.Text := EditPhoneNo.Text + '0';
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '0');
end;
procedure TMainForm.BtnDialNoClick(Sender: TObject);
begin
VaxSIPUserAgentOCX.DigitDTMF(ListLines.ItemIndex, '#');
end;
procedure TMainForm.BtnDialClick(Sender: TObject);
var
ToURI : string;
LineNo : Integer;
begin
If EditPhoneNo.Text = '' Then
Begin
application.MessageBox('Please enter a phone number.', 'VaxVoIP SDK', MB_ICONEXCLAMATION);
Exit;
End;
{*******************************************************
Constructing SIP To URI for IP Telephony:
sip:PhoneNumber@SIP Proxy
********************************************************}
ToURI := 'sip:' + EditPhoneNo.Text + '@' + EditSIPProxy.Text;
LineNo := FindLine();
If LineNo = -1 Then
begin
application.MessageBox('No line is free.', 'VaxVoIP SDK', MB_ICONEXCLAMATION);
Exit;
end;
If VaxSIPUserAgentOCX.Connect(LineNo, ToURI, ComboAudioIn.ItemIndex - 1, ComboAudioOut.ItemIndex - 1) = False Then
ErrorMessages()
Else
begin
AddToStatusLog('Line-' + IntToStr(ListLines.ItemIndex + 1) + ': Dialing.');
ListLines.Items.Strings[LineNo] := 'Line-' + IntToStr(LineNo+1) + ' : CONNECTING';
end;
end;
procedure TMainForm.BtnHangUpClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.Disconnect(ListLines.ItemIndex) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnAcceptCallClick(Sender: TObject);
var
CallId : String;
LineNo : Integer;
begin
if ListBoxIncomingCall.ItemIndex = -1 Then
exit;
CallId := ListBoxIcomingCallId.Items.Strings[ListBoxIncomingCall.ItemIndex];
LineNo := FindLine();
If LineNo = -1 Then
begin
application.MessageBox('No line is free.', 'VaxVoIP SDK', MB_ICONEXCLAMATION);
Exit;
end;
if VaxSIPUserAgentOCX.AcceptCall(LineNo, CallId, ComboAudioIn.ItemIndex - 1, ComboAudioOut.ItemIndex - 1) = False Then
begin
ErrorMessages();
exit;
end;
PlaySound(nil, 0, 0);
ListBoxIcomingCallId.Items.Delete(ListBoxIncomingCall.ItemIndex);
ListBoxIncomingCall.Items.Delete(ListBoxIncomingCall.ItemIndex);
if (ListBoxIncomingCall.ItemIndex = -1) and (ListBoxIncomingCall.Items.Count > 0) Then
ListBoxIncomingCall.ItemIndex := 0;
ListLines.Items.Strings[LineNo] := 'Line-' + IntToStr(LineNo+1) + ' : CONNECTING';
end;
procedure TMainForm.BtnRejectCallClick(Sender: TObject);
var
CallId : String;
begin
if ListBoxIncomingCall.ItemIndex = -1 Then
exit;
CallId := ListBoxIcomingCallId.Items.Strings[ListBoxIncomingCall.ItemIndex];
if VaxSIPUserAgentOCX.RejectCall(CallId) = False Then
begin
ErrorMessages();
exit;
end;
PlaySound(nil, 0, 0);
ListBoxIcomingCallId.Items.Delete(ListBoxIncomingCall.ItemIndex);
ListBoxIncomingCall.Items.Delete(ListBoxIncomingCall.ItemIndex);
if (ListBoxIncomingCall.ItemIndex = -1) and (ListBoxIncomingCall.Items.Count > 0) Then
ListBoxIncomingCall.ItemIndex := 0;
end;
procedure TMainForm.BtnClearClick(Sender: TObject);
begin
ListStatusLog.Items.Clear();
end;
procedure TMainForm.BtnSaveClick(Sender: TObject);
begin
if VaxSIPUserAgentOCX.SaveRecordingToWaveFile(ListLines.ItemIndex, EditRecordFileName.Text) = False then
ErrorMessages()
else
application.MessageBox('Saved Successfully', 'VaxVoIP SDK', MB_ICONEXCLAMATION);
end;
procedure TMainForm.CheckBoxStartRecordingClick(Sender: TObject);
begin
if CheckBoxStartRecording.Checked = True then
VaxSIPUserAgentOCX.StartRecording(ListLines.ItemIndex, 2, True)
else
VaxSIPUserAgentOCX.StopRecording(ListLines.ItemIndex)
end;
procedure TMainForm.BtnResetBufferClick(Sender: TObject);
begin
VaxSIPUserAgentOCX.ResetRecording(ListLines.ItemIndex);
end;
procedure TMainForm.CheckBoxSpkMuteClick(Sender: TObject);
begin
VaxSIPUserAgentOCX.MuteSpk(CheckBoxSpkMute.Checked);
end;
procedure TMainForm.CheckBoxMuteMicClick(Sender: TObject);
begin
VaxSIPUserAgentOCX.MuteMic(CheckBoxMuteMic.Checked);
end;
procedure TMainForm.VaxSIPUserAgentOCXFailToRegister(Sender: TObject);
begin
AddToStatusLog('Fail to register.');
end;
procedure TMainForm.VaxSIPUserAgentOCXFailToUnRegister(Sender: TObject);
begin
AddToStatusLog('Fail to un-register.');
end;
procedure TMainForm.VaxSIPUserAgentOCXSuccessToUnRegister(Sender: TObject);
begin
AddToStatusLog('Unregistered successfully.');
end;
procedure TMainForm.CheckEchoCancelClick(Sender: TObject);
begin
If CheckEchoCancel.Checked = True Then
VaxSIPUserAgentOCX.EnableEchoNoiseCancellation()
Else
VaxSIPUserAgentOCX.DisableEchoNoiseCancellation();
end;
procedure TMainForm.CheckMicBoostClick(Sender: TObject);
begin
If CheckMicBoost.Checked = True Then
VaxSIPUserAgentOCX.EnableMicBoost()
Else
VaxSIPUserAgentOCX.DisableMicBoost();
end;
procedure TMainForm.CheckDonotDisturbClick(Sender: TObject);
begin
If CheckDonotDisturb.Checked = True Then
VaxSIPUserAgentOCX.EnableDonotDisturb()
Else
VaxSIPUserAgentOCX.DisableDonotDisturb();
end;
procedure TMainForm.CheckGSM610Click(Sender: TObject);
begin
{****Codec No 0 represents GSM 6.10 *****}
If CheckGSM610.Checked = True Then
VaxSIPUserAgentOCX.SelectVoiceCodec(0)
Else
VaxSIPUserAgentOCX.DeselectVoiceCodec(0);
end;
procedure TMainForm.CheckiLBCClick(Sender: TObject);
begin
{****Codec No 1 represents iLBC *****}
If CheckiLBC.Checked = True Then
VaxSIPUserAgentOCX.SelectVoiceCodec(1)
Else
VaxSIPUserAgentOCX.DeselectVoiceCodec(1);
end;
procedure TMainForm.CheckG711AClick(Sender: TObject);
begin
{****Codec No 2 represents iLBC *****}
If CheckG711A.Checked = True Then
VaxSIPUserAgentOCX.SelectVoiceCodec(2)
Else
VaxSIPUserAgentOCX.DeselectVoiceCodec(2);
end;
procedure TMainForm.CheckG711UClick(Sender: TObject);
begin
{****Codec No 3 represents iLBC *****}
If CheckG711U.Checked = True Then
VaxSIPUserAgentOCX.SelectVoiceCodec(3)
Else
VaxSIPUserAgentOCX.DeselectVoiceCodec(3);
end;
procedure TMainForm.VaxSIPUserAgentOCXSuccessToRegister(Sender: TObject);
begin
AddToStatusLog('Registered successfully.');
end;
procedure TMainForm.VaxSIPUserAgentOCXTryingToRegister(Sender: TObject);
begin
AddToStatusLog('Trying to register.');
end;
procedure TMainForm.VaxSIPUserAgentOCXTryingToUnRegister(Sender: TObject);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -