📄 mainform.frm
字号:
ListIncomingCall.AddItem ("CLI: " + DisplayName)
Else
ListIncomingCall.AddItem ("CLI: " + UserName)
End If
End If
If ListIncomingCall.ListIndex = -1 And ListIncomingCall.ListCount > 0 Then
ListIncomingCall.ListIndex = 0
End If
End Sub
Private Sub VaxSIPUserAgentOCX_OnIncomingCallRingingStart(ByVal CallId As String)
If CheckPlayRingTone.Value = 1 Then
Retval = PlaySound(ByVal "ring.wav", 0&, SND_ASYNC Or SND_FILENAME Or SND_LOOP Or SND_NODEFAULT)
End If
End Sub
Private Sub VaxSIPUserAgentOCX_OnIncomingCallRingingStop(ByVal CallId As String)
RemoveCallIdFromList (CallId)
Retval = PlaySound(ByVal 0&, 0&, SND_ASYNC Or SND_FILENAME Or SND_LOOP Or SND_NODEFAULT)
End Sub
Private Sub VaxSIPUserAgentOCX_OnPlayWaveDone(ByVal LineNo As Long)
AddToStatusLog ("Line-" + Trim(Str(LineNo + 1)) + ": Play wave done.")
End Sub
Private Sub VaxSIPUserAgentOCX_OnProvisionalResponse(ByVal LineNo As Long, ByVal StatusCode As Long, ByVal ReasonPhrase As String)
AddToStatusLog ("Line-" + Trim(Str(LineNo + 1)) + ": Response: " + ReasonPhrase)
End Sub
Private Sub VaxSIPUserAgentOCX_OnRedirectionResponse(ByVal LineNo As Long, ByVal StatusCode As Long, ByVal ReasonPhrase As String, ByVal Contact As String)
AddToStatusLog ("Line-" + Trim(Str(LineNo + 1)) + ": Response: " + ReasonPhrase)
End Sub
Private Sub VaxSIPUserAgentOCX_OnRequestFailureResponse(ByVal LineNo As Long, ByVal StatusCode As Long, ByVal ReasonPhrase As String)
AddToStatusLog ("Line-" + Trim(Str(LineNo + 1)) + ": Response: " + ReasonPhrase)
End Sub
Private Sub VaxSIPUserAgentOCX_OnServerFailureResponse(ByVal LineNo As Long, ByVal StatusCode As Long, ByVal ReasonPhrase As String)
AddToStatusLog ("Line-" + Trim(Str(LineNo + 1)) + ": Response: " + ReasonPhrase)
End Sub
Private Sub VaxSIPUserAgentOCX_OnSuccessToConnect(ByVal LineNo As Long, ByVal ToRTPIP As String, ByVal ToRTPPort As Long)
If LineNo <> ListLines.ListIndex Then
VaxSIPUserAgentOCX.HoldLine (LineNo)
ListLines.List(LineNo) = "Line-" + Trim(Str(LineNo + 1)) + " : HOLD"
Else
ListLines.List(LineNo) = "Line-" + Trim(Str(LineNo + 1)) + " : BUSY"
End If
AddToStatusLog ("Line-" + Trim(Str(LineNo + 1)) + ": Success to connect.")
Result = VaxSIPUserAgentOCX.GetSpkVolume()
SliderSpkVol.Value = Result / 25
Result = VaxSIPUserAgentOCX.GetMicVolume()
SliderMicVol.Value = Result / 25
Result = VaxSIPUserAgentOCX.IsMicBoostEnable()
If Result = True Then
CheckMicBoost.Value = 1
Else
CheckMicBoost.Value = 0
End If
End Sub
Private Sub VaxSIPUserAgentOCX_OnSuccessToRegister()
AddToStatusLog ("Registered successfully.")
End Sub
Private Sub VaxSIPUserAgentOCX_OnTryingToRegister()
AddToStatusLog ("Trying to register.")
End Sub
Private Sub VaxSIPUserAgentOCX_OnTryingToUnRegister()
AddToStatusLog ("Trying to Unregister.")
End Sub
Private Sub VaxSIPUserAgentOCX_OnSuccessToUnRegister()
AddToStatusLog ("Unregistered successfully.")
End Sub
Private Sub VaxSIPUserAgentOCX_OnFailToUnRegister()
AddToStatusLog ("Fail to unregister.")
End Sub
Private Sub BtnDial_Click()
Dim ToURI
Dim Result
If EditPhoneNo.Text = "" Then
MsgBox ("Please enter a phone number.")
Exit Sub
End If
'*******************************************************
' Constructing SIP To URI for IP Telephony:
' sip:PhoneNumber@SIP Proxy
'********************************************************
ToURI = "sip:" + EditPhoneNo.Text + "@" + EditSIPProxy.Text
LineNo = FindLine()
If LineNo = -1 Then
MsgBox ("No line is free")
Exit Sub
End If
Result = VaxSIPUserAgentOCX.Connect(LineNo, ToURI, ComboAudioIn.ListIndex - 1, ComboAudioOut.ListIndex - 1)
If Result = False Then
ErrorMessages
Else
AddToStatusLog ("Line-" + Trim(Str(LineNo + 1)) + ": Dialing.")
ListLines.List(LineNo) = "Line-" + Trim(Str(LineNo + 1)) + " : CONNECTING"
End If
End Sub
Private Sub BtnHangUp_Click()
Dim Result
LineNo = ListLines.ListIndex
Result = VaxSIPUserAgentOCX.Disconnect(LineNo)
If Result = False Then
ErrorMessages
End If
End Sub
Private Sub RemoveCallIdFromList(ByVal CallId As String)
For ListIndex = 0 To (ListIncomingCallIds.ListCount - 1)
If UCase(ListIncomingCallIds.List(ListIndex)) = UCase(CallId) Then
ListIncomingCall.RemoveItem (ListIndex)
ListIncomingCallIds.RemoveItem (ListIndex)
ListIndex = ListIndex - 1
End If
Next ListIndex
End Sub
Private Sub BtnAccept_Click()
SelectedItemIndex = ListIncomingCall.ListIndex
If SelectedItemIndex = -1 Then
Exit Sub
End If
LineNo = FindLine()
If LineNo = -1 Then
MsgBox ("No line is free")
Exit Sub
End If
CallId = ListIncomingCallIds.List(SelectedItemIndex)
Result = VaxSIPUserAgentOCX.AcceptCall(LineNo, CallId, ComboAudioIn.ListIndex - 1, ComboAudioOut.ListIndex - 1)
If Result = False Then
ErrorMessages
Exit Sub
End If
Retval = PlaySound(ByVal 0&, 0&, SND_ASYNC Or SND_FILENAME Or SND_LOOP Or SND_NODEFAULT)
RemoveCallIdFromList (CallId)
If ListIncomingCall.ListIndex = -1 And ListIncomingCall.ListCount > 0 Then
ListIncomingCall.ListIndex = 0
End If
ListLines.List(LineNo) = "Line-" + Trim(Str(LineNo + 1)) + " : CONNECTING"
End Sub
Private Sub BtnReject_Click()
SelectedItemIndex = ListIncomingCall.ListIndex
If SelectedItemIndex = -1 Then
Exit Sub
End If
CallId = ListIncomingCallIds.List(SelectedItemIndex)
Result = VaxSIPUserAgentOCX.RejectCall(CallId)
If Result = False Then
ErrorMessages
Exit Sub
End If
Retval = PlaySound(ByVal 0&, 0&, SND_ASYNC Or SND_FILENAME Or SND_LOOP Or SND_NODEFAULT)
RemoveCallIdFromList (CallId)
If ListIncomingCall.ListIndex = -1 And ListIncomingCall.ListCount > 0 Then
ListIncomingCall.ListIndex = 0
End If
End Sub
Private Sub BtnResetRecordingBuffer_Click()
LineNo = ListLines.ListIndex
VaxSIPUserAgentOCX.ResetRecording (LineNo)
End Sub
Private Sub BtnSaveToWaveFile_Click()
Dim Result
LineNo = ListLines.ListIndex
Result = VaxSIPUserAgentOCX.SaveRecordingToWaveFile(LineNo, EditSaveFileName.Text)
If Result = False Then
ErrorMessages
Exit Sub
End If
MsgBox ("Saved Successfully")
End Sub
Private Sub ChkStartRecording_Click()
Dim Result
LineNo = ListLines.ListIndex
If ChkStartRecording.Value = 1 Then
Result = VaxSIPUserAgentOCX.StartRecording(LineNo, 2)
Else
Result = VaxSIPUserAgentOCX.StopRecording(LineNo)
End If
End Sub
Private Sub CheckEchoCancel_Click()
If CheckEchoCancel.Value = 1 Then
VaxSIPUserAgentOCX.EnableEchoNoiseCancellation
Else
VaxSIPUserAgentOCX.DisableEchoNoiseCancellation
End If
End Sub
Private Sub CheckMicBoost_Click()
If CheckMicBoost.Value = 1 Then
VaxSIPUserAgentOCX.EnableMicBoost
Else
VaxSIPUserAgentOCX.DisableMicBoost
End If
End Sub
Private Sub CheckDisturb_Click()
If CheckDisturb.Value = 1 Then
VaxSIPUserAgentOCX.EnableDonotDisturb
Else
VaxSIPUserAgentOCX.DisableDonotDisturb
End If
End Sub
Private Sub CheckGSM610_Click()
'****Codec No 0 represents GSM 6.10 *****
If CheckGSM610.Value = 1 Then
VaxSIPUserAgentOCX.SelectVoiceCodec (0)
Else
VaxSIPUserAgentOCX.DeselectVoiceCodec (0)
End If
End Sub
Private Sub CheckiLBC_Click()
'****Codec No 1 represents iLBC *****
If CheckiLBC.Value = 1 Then
VaxSIPUserAgentOCX.SelectVoiceCodec (1)
Else
VaxSIPUserAgentOCX.DeselectVoiceCodec (1)
End If
End Sub
Private Sub CheckG711A_Click()
'****Codec No 2 represents G711 A-LAW *****
If CheckG711A.Value = 1 Then
VaxSIPUserAgentOCX.SelectVoiceCodec (2)
Else
VaxSIPUserAgentOCX.DeselectVoiceCodec (2)
End If
End Sub
Private Sub CheckG711U_Click()
'****Codec No 3 represents G711 U-LAW *****
If CheckG711U.Value = 1 Then
VaxSIPUserAgentOCX.SelectVoiceCodec (3)
Else
VaxSIPUserAgentOCX.DeselectVoiceCodec (3)
End If
End Sub
Private Sub UpdateSoundDevices()
ComboAudioIn.Clear
ComboAudioIn.AddItem ("Default Device")
For DeviceId = 0 To VaxSIPUserAgentOCX.GetAudioInDevTotal() - 1
ComboAudioIn.AddItem (VaxSIPUserAgentOCX.GetAudioInDevName(DeviceId))
Next DeviceId
ComboAudioIn.ListIndex = 0
ComboAudioOut.Clear
ComboAudioOut.AddItem ("Default Device")
For DeviceId = 0 To VaxSIPUserAgentOCX.GetAudioOutDevTotal() - 1
ComboAudioOut.AddItem (VaxSIPUserAgentOCX.GetAudioOutDevName(DeviceId))
Next DeviceId
ComboAudioOut.ListIndex = 0
End Sub
Private Function FindLine() As Integer
LineNo = ListLines.ListIndex
If VaxSIPUserAgentOCX.IsLineBusy(LineNo) = False Then
FindLine = LineNo
Exit Function
End If
For LineNo = 0 To 6
If VaxSIPUserAgentOCX.IsLineBusy(LineNo) = False Then
FindLine = LineNo
Exit Function
End If
Next LineNo
FindLine = -1
End Function
Private Sub TimerProgressBar_Timer()
SpkProgress.Value = VaxSIPUserAgentOCX.GetSpkSoundLevel()
MicProgress.Value = VaxSIPUserAgentOCX.GetMicSoundLevel()
End Sub
Private Sub AddToStatusLog(ByVal StatusLog As String)
ListStatusLog.AddItem (StatusLog)
ListStatusLog.TopIndex = ListStatusLog.ListCount - 1
End Sub
Private Sub UpdateListLine(LineNo As Integer)
If CheckStartConf.Value Then
For LineCount = 0 To 6
If VaxSIPUserAgentOCX.IsLineHold(LineCount) Then
VaxSIPUserAgentOCX.UnHoldLine (LineCount)
End If
Next LineCount
Else
For LineCount = 0 To 6
If LineCount <> LineNo Then
If ((VaxSIPUserAgentOCX.IsLineBusy(LineCount) = True) And (VaxSIPUserAgentOCX.IsLineHold(LineCount) = False)) Then
VaxSIPUserAgentOCX.HoldLine (LineCount)
End If
End If
Next LineCount
If VaxSIPUserAgentOCX.IsLineHold(LineNo) Then
VaxSIPUserAgentOCX.UnHoldLine (LineNo)
End If
End If
End Sub
Private Sub TimerTick_Timer()
If ListLines.ListCount = 0 Then
For LineNo = 0 To 6
ListLines.AddItem ("Line-" + Trim(Str(LineNo + 1)) + " : FREE")
Next LineNo
ListLines.ListIndex = 0
End If
UpdateListLine (ListLines.ListIndex)
If (VaxSIPUserAgentOCX.IsRecording(ListLines.ListIndex) = True) <> (CheckStartRecording.Value = 1) Then
If VaxSIPUserAgentOCX.IsRecording(ListLines.ListIndex) Then
CheckStartRecording.Value = 1
Else
CheckStartRecording.Value = 0
End If
End If
For LineNo = 0 To 6
ItemText = ListLines.List(LineNo)
If VaxSIPUserAgentOCX.IsLineOpen(LineNo) = False Then
If InStr(ItemText, "CLOSE") = 0 Then
ListLines.List(LineNo) = "Line-" + Trim(Str(LineNo + 1)) + " : CLOSE"
End If
Else
If VaxSIPUserAgentOCX.IsLineBusy(LineNo) = True Then
If VaxSIPUserAgentOCX.IsWaveFilePlaying(LineNo) = True Then
If InStr(ItemText, "PLAYING") = 0 Then
ListLines.List(LineNo) = "Line-" + Trim(Str(LineNo + 1)) + " : PLAYING"
End If
Else
If VaxSIPUserAgentOCX.IsLineHold(LineNo) = True Then
If InStr(ItemText, "HOLD") = 0 Then
ListLines.List(LineNo) = "Line-" + Trim(Str(LineNo + 1)) + " : HOLD"
End If
Else
If (InStr(ItemText, "BUSY") = 0) And (InStr(ItemText, "CONNECTING") = 0) Then
ListLines.List(LineNo) = "Line-" + Trim(Str(LineNo + 1)) + " : BUSY"
End If
End If
End If
Else
If InStr(ItemText, "FREE") = 0 Then
ListLines.List(LineNo) = "Line-" + Trim(Str(LineNo + 1)) + " : FREE"
End If
End If
End If
Next LineNo
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -