⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainunit.pas

📁 VaxSIPUserAgentSDK
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  {****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 + -