?? mainunit.pas
字號:
{****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);
begin
AddToStatusLog('Trying to un-register.');
end;
procedure TMainForm.BtnOpenPlayWaveClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveOpen(ComboBoxPlayWave.ItemIndex, EditPlayFileName.Text) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWaveStartClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveStart(ComboBoxPlayWave.ItemIndex, CheckBoxPlayListen.Checked) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWaveRewindClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveSkipTo(ComboBoxPlayWave.ItemIndex, VaxSIPUserAgentOCX.PlayWavePosition(ComboBoxPlayWave.ItemIndex) - 2) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWaveForwardClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveSkipTo(ComboBoxPlayWave.ItemIndex, VaxSIPUserAgentOCX.PlayWavePosition(ComboBoxPlayWave.ItemIndex) + 2) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWavePauseClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWavePause(ComboBoxPlayWave.ItemIndex) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnPlayWaveStopClick(Sender: TObject);
begin
If VaxSIPUserAgentOCX.PlayWaveStop(ComboBoxPlayWave.ItemIndex) = False Then
ErrorMessages();
end;
procedure TMainForm.BtnTransferCallClick(Sender: TObject);
var ToURI : string;
begin
ToURI := 'sip:' + EditTransferNo.Text + '@' + EditSIPProxy.Text;
If VaxSIPUserAgentOCX.TransferCall(ComboBoxTransferCall.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
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.FormCreate(Sender: TObject);
var
Column : TListColumn;
begin
Column := ListViewLineStatus.Columns.Add();
Column.Caption := '#';
Column.Width := 21;
Column := ListViewLineStatus.Columns.Add();
Column.Caption := 'Status';
Column.Width := 53;
Column := ListViewLineStatus.Columns.Add();
Column.Caption := 'Outbound';
Column.Width := 67;
Column := ListViewLineStatus.Columns.Add();
Column.Caption := 'Inbound';
Column.Width := 64;
end;
procedure TMainForm.AddToStatusLog(LogText : String);
begin
ListStatusLog.Items.Add(LogText);
ListStatusLog.TopIndex := ListStatusLog.Count - 1;
end;
function TMainForm.GetCodecName(CodecNo : Integer) : String;
var
CodecName : string;
begin
CodecName := '';
if CodecNo = 0 Then
CodecName := 'gsm6.10'
else if CodecNo = 1 Then
CodecName := 'iLBC'
else if CodecNo = 2 Then
CodecName := 'gsm711a'
else if CodecNo = 3 Then
CodecName := 'gsm711u';
Result := CodecName;
end;
procedure TMainForm.TimerTickTimer(Sender: TObject);
var
LineNo : Integer;
ItemText : String;
Item : TListItem;
begin
If ListViewLineStatus.Items.Count = 0 then
Begin
for LineNo := 1 to StrToInt(EditTotalLines.Text) do
begin
Item := ListViewLineStatus.Items.Add();
Item.Caption := IntToStr(LineNo);
Item.SubItems.Add('');
Item.SubItems.Add('');
Item.SubItems.Add('');
end;
end;
for LineNo := 0 to (StrToInt(EditTotalLines.Text) - 1) do
begin
Item := ListViewLineStatus.Items.Item[LineNo];
ItemText := Item.SubItems.Strings[0];
Item.SubItems.Strings[1] := GetCodecName(VaxSIPUserAgentOCX.GetOutboundCodec(LineNo));
Item.SubItems.Strings[2] := GetCodecName(VaxSIPUserAgentOCX.GetInboundCodec(LineNo));
If VaxSIPUserAgentOCX.IsLineOpen(LineNo) = False then
begin
if Pos('close', ItemText) = 0 then
Item.SubItems.Strings[0] := 'close';
end
else
begin
If VaxSIPUserAgentOCX.IsLineBusy(LineNo) = True then
begin
If VaxSIPUserAgentOCX.IsWaveFilePlaying(LineNo) = True then
begin
if Pos('playing', ItemText) = 0 then
Item.SubItems.Strings[0] := 'playing';
end
else
begin
if VaxSIPUserAgentOCX.IsLineHold(LineNo) = True then
begin
if Pos('hold', ItemText) = 0 then
Item.SubItems.Strings[0] := 'hold';
end
else
if Pos('busy', ItemText) = 0 then
Item.SubItems.Strings[0] := 'busy';
end
end
else
if Pos('free', ItemText) = 0 then
Item.SubItems.Strings[0] := 'free';
end;
end;
end;
procedure TMainForm.TimerProgressTimer(Sender: TObject);
begin
SpkProgBar.Position := VaxSIPUserAgentOCX.GetSpkSoundLevel();
MicProgBar.Position := VaxSIPUserAgentOCX.GetMicSoundLevel();
end;
procedure TMainForm.VaxSIPUserAgentOCXFailToReRegister(Sender: TObject);
begin
AddToStatusLog('Fail to re-register.');
end;
procedure TMainForm.VaxSIPUserAgentOCXSuccessToReRegister(Sender: TObject);
begin
AddToStatusLog('Succcess 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 + -