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

📄 mainunit.pas

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