mainform.frm

来自「VaxSIPUserAgentSDK」· FRM 代码 · 共 1,947 行 · 第 1/4 页

FRM
1,947
字号

Private Sub VaxSIPUserAgentOCX_OnFailToConnect(ByVal LineNo As Long)
    AddToStatusLog ("Line-" + Str(LineNo + 1) + ": Fail to connect.")
End Sub

Private Sub VaxSIPUserAgentOCX_OnFailToRegister()
    AddToStatusLog ("Fail to register.")
End Sub

Private Function FindCallIdFromList(ByVal CallId As String) As Boolean
    
    Dim Result As Boolean
    
    Result = False
    
    For ListIndex = 0 To (ListIncomingCallIds.ListCount - 1)
       
        If UCase(ListIncomingCallIds.List(ListIndex)) = UCase(CallId) Then
          Result = True
          Exit For
        End If
    
    Next ListIndex
    
    FindCallIdFromList = Result
    
End Function

Private Sub VaxSIPUserAgentOCX_OnGeneralFailureResponse(ByVal LineNo As Long, ByVal StatusCode As Long, ByVal ReasonPhrase As String)
    AddToStatusLog ("Line-" + Str(LineNo + 1) + " Response: " + ReasonPhrase)
End Sub

Private Sub VaxSIPUserAgentOCX_OnIncomingCall(ByVal CallId As String, ByVal DisplayName As String, ByVal UserName As String, ByVal FromURI As String, ByVal ToURI As String)
    
    If FindCallIdFromList(CallId) = False Then
        ListIncomingCallIds.AddItem (CallId)
        
        If Len(DisplayName) <> 0 Then
           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-" + 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-" + 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-" + 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-" + 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-" + Str(LineNo + 1) + ": Response: " + ReasonPhrase)
End Sub

Private Sub VaxSIPUserAgentOCX_OnSuccessToConnect(ByVal LineNo As Long, ByVal ToRTPIP As String, ByVal ToRTPPort As Long)
    
    AddToStatusLog ("Line-" + 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 = ComboDial.ListIndex
            
    Result = VaxSIPUserAgentOCX.Connect(LineNo, ToURI, ListAudioIn.ListIndex - 1, ListAudioOut.ListIndex - 1)
    If Result = False Then
        ErrorMessages
    Else
        AddToStatusLog ("Line-" + Str(LineNo + 1) + ": Dialing.")
    End If
    
End Sub

Private Sub BtnHangUp_Click()
    
    Dim Result
    LineNo = ComboDial.ListIndex
    
    Result = VaxSIPUserAgentOCX.Disconnect(LineNo)
    If Result = False Then
        ErrorMessages
    End If
            
End Sub

Private Sub BtnHold_Click()
    Dim Result
    
    LineNo = ComboDial.ListIndex
    Result = VaxSIPUserAgentOCX.HoldLine(LineNo)
    If Result = False Then
        ErrorMessages
    End If
    
End Sub

Private Sub BtnUnHold_Click()
    Dim Result
    
    LineNo = ComboDial.ListIndex
    Result = VaxSIPUserAgentOCX.UnHoldLine(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 = ComboIncomingCall.ListIndex
    
    CallId = ListIncomingCallIds.List(SelectedItemIndex)
    Result = VaxSIPUserAgentOCX.AcceptCall(LineNo, CallId, ListAudioIn.ListIndex - 1, ListAudioOut.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
    
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 = ComboRecord.ListIndex
    VaxSIPUserAgentOCX.ResetRecording (LineNo)
    
End Sub

Private Sub BtnSaveToWaveFile_Click()
    Dim Result
    
    LineNo = ComboRecord.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 = ComboRecord.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 UpdateAudioIn()
    ListAudioIn.Clear
    ListAudioIn.AddItem ("Default Device")
    
    For DeviceId = 0 To VaxSIPUserAgentOCX.GetAudioInDevTotal() - 1
        ListAudioIn.AddItem (VaxSIPUserAgentOCX.GetAudioInDevName(DeviceId))
    Next DeviceId
    
    ListAudioIn.ListIndex = 0
    
End Sub

Private Sub UpdateAudioOut()
    ListAudioOut.Clear
    ListAudioOut.AddItem ("Default Device")
    
    For DeviceId = 0 To VaxSIPUserAgentOCX.GetAudioOutDevTotal() - 1
        ListAudioOut.AddItem (VaxSIPUserAgentOCX.GetAudioOutDevName(DeviceId))
    Next DeviceId
    
    ListAudioOut.ListIndex = 0
    
End Sub


Private Sub FillComboBox()
    
    ComboDial.Clear
    ComboRecord.Clear
    ComboPlayWave.Clear
    ComboIncomingCall.Clear
    ComboTransferCall.Clear

    For LineNo = 0 To (Int(EditTotalLines.Text) - 1)
       
       ComboDial.AddItem ("Line-" + Str(LineNo + 1))
       ComboRecord.AddItem ("Line-" + Str(LineNo + 1))
       ComboPlayWave.AddItem ("Line-" + Str(LineNo + 1))
       ComboIncomingCall.AddItem ("Line-" + Str(LineNo + 1))
       ComboTransferCall.AddItem ("Line-" + Str(LineNo + 1))
       
    Next LineNo

    ComboDial.ListIndex = 0
    ComboRecord.ListIndex = 0
    ComboPlayWave.ListIndex = 0
    ComboIncomingCall.ListIndex = 0
    ComboTransferCall.ListIndex = 0

End Sub

Private Function GetCodecName(ByVal CodecNo As Integer) As String

    Dim CodecName
    CodecName = ""

    If CodecNo = 0 Then
        CodecName = "gsm6.10"
    
    ElseIf CodecNo = 1 Then
        CodecName = "iLBC"

    ElseIf CodecNo = 2 Then
        CodecName = "gsm711a"
    
    ElseIf CodecNo = 3 Then
        CodecName = "gsm711u"
    End If
                
    GetCodecName = CodecName

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 TimerTick_Timer()
    
    If ListViewLineStatus.ListItems.Count = 0 Then
        For LineNo = 0 To (Int(EditTotalLines.Text) - 1)
            ListViewLineStatus.ListItems.Add , , Str(LineNo + 1)
        Next LineNo
    End If
    
    For LineNo = 0 To (Int(EditTotalLines.Text) - 1)
            
        ListViewLineStatus.ListItems.Item(LineNo + 1).SubItems(2) = GetCodecName(VaxSIPUserAgentOCX.GetOutboundCodec(LineNo))
        ListViewLineStatus.ListItems.Item(LineNo + 1).SubItems(3) = GetCodecName(VaxSIPUserAgentOCX.GetInboundCodec(LineNo))
        
        ItemText = ListViewLineStatus.ListItems.Item(LineNo + 1).SubItems(1)
                
        If VaxSIPUserAgentOCX.IsLineOpen(LineNo) = False Then
              
            If InStr(ItemText, "close") = 0 Then
                ListViewLineStatus.ListItems.Item(LineNo + 1).SubItems(1) = "close"
            End If
        
        Else
            If VaxSIPUserAgentOCX.IsLineBusy(LineNo) = True Then
                
                If VaxSIPUserAgentOCX.IsWaveFilePlaying(LineNo) = True Then
                    If InStr(ItemText, "playing") = 0 Then
                        ListViewLineStatus.ListItems.Item(LineNo + 1).SubItems(1) = "playing"
                    End If
                Else
                    If VaxSIPUserAgentOCX.IsLineHold(LineNo) = True Then
                        If InStr(ItemText, "hold") = 0 Then
                            ListViewLineStatus.ListItems.Item(LineNo + 1).SubItems(1) = "hold"
                        End If
                    Else
                        If InStr(ItemText, "busy") = 0 Then
                            ListViewLineStatus.ListItems.Item(LineNo + 1).SubItems(1) = "busy"
                        End If
                    End If
                End If
            Else
                If InStr(ItemText, "free") = 0 Then
                    ListViewLineStatus.ListItems.Item(LineNo + 1).SubItems(1) = "free"
                End If
            End If
        
        End If
                    
    Next LineNo

End Sub


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?