Click here to Skip to main content
15,908,776 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Why won't this work? I am not by any means an expert on TAPI (actually have no idea) but I get "TAPI INIT failed" and no number. Got this from here
[^]

VB
Public Class Form1
    Dim WithEvents globalTAPI As namespace_tapi.vbtapi
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        globalTAPI.ShutDown()
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim localTAPI As New namespace_tapi.vbtapi
        Dim strTapiProvider As String
        strTapiProvider = localTAPI.Initialize()
        If strTapiProvider <> "Initializing failed" Then
            globalTAPI = localTAPI
        Else
            MsgBox("TAPI INIT failed")
        End If
        localTAPI = Nothing
    End Sub
    Private Sub globalTAPI_IncommingCall(ByVal strCallerID As Object) Handles globalTAPI.IncommingCall
        MsgBox(strCallerID)
    End Sub
End Class



VB
Imports TAPI3Lib
Namespace namespace_tapi
    Public Class vbtapi
        Private WithEvents gobjTapi As TAPI3Lib.TAPI
        Private gobjAddress As ITAddress
        Private glngToken As Long
        Private Const MediaAudio As Integer = 8
        Private Const TAPI3_ALL_TAPI_EVENTS = TAPI_EVENT.TE_CALLNOTIFICATION
        Public Function Initialize() As String
            Dim TAPI As New TAPIClass
            Dim MediaTypes As Integer
            TAPI.Initialize()
            gobjTapi = TAPI
            TAPI = Nothing
            Dim AddressCollection As ITCollection = gobjTapi.Addresses()
            For Each Address As ITAddress In AddressCollection
                If Address.State = ADDRESS_STATE.AS_INSERVICE Then
                    ' next line just qualifies a specific TAPI provider
                    If Address.AddressName = "AVM TAPI Services for FRITZ!Box" Then
                        Dim MediaSupport As ITMediaSupport = Address
                        MediaTypes = MediaSupport.MediaTypes
                        MediaSupport = Nothing
                        If MediaTypes And MediaAudio = MediaAudio Then
                            gobjAddress = Address
                            Exit For
                        End If
                    End If
                End If
            Next
            If Not gobjAddress Is Nothing Then
                gobjTapi.EventFilter = TAPI3_ALL_TAPI_EVENTS
                glngToken = gobjTapi.RegisterCallNotifications(gobjAddress, True, True, MediaAudio, 1)
                Initialize = gobjAddress.AddressName
            Else
                Initialize = "Initializing failed"
            End If
        End Function
        Private Sub gobjTapi_Event(ByVal TapiEvent As TAPI3Lib.TAPI_EVENT, ByVal pEvent As Object) Handles gobjTapi.Event
            Select Case TapiEvent
                Case TAPI_EVENT.TE_CALLNOTIFICATION 'Call Notification Arrived
                    Dim CallNotificationEvent As ITCallNotificationEvent
                    CallNotificationEvent = CType(pEvent, ITCallNotificationEvent)
                    Debug.Print(CallNotificationEvent.Call.CallInfoString(CALLINFO_STRING.CIS_CALLERIDNUMBER))
                    RaiseEvent IncommingCall(CallNotificationEvent.Call.CallInfoString(CALLINFO_STRING.CIS_CALLERIDNUMBER))
            End Select
        End Sub
        Public Sub ShutDown()
            gobjTapi.UnregisterNotifications(glngToken)
            gobjAddress = Nothing
            glngToken = Nothing
            gobjTapi.Shutdown()
        End Sub
        Public Event IncommingCall(ByVal strCallerID)
    End Class
End Namespace
Posted
Updated 9-Dec-10 7:55am
v2
Comments
Henry Minute 9-Dec-10 13:57pm    
You might be lucky and get an answer from here but as insurance, if I were you, I would ask in The Messages section at the bottom of the article that you got the code from (Scroll right to the bottom and click 'New Message').
hekktorfragss 18-Aug-12 16:40pm    
I have this error :
System.Runtime.InteropServices.COMException was unhandled by user code
ErrorCode=-2147467259
Message=Devuelto error HRESULT E_FAIL de una llamada a un componente COM.
Source=Interop.TAPI3Lib
StackTrace:
en TAPI3Lib.ITCallInfo.get_CallInfoString(CALLINFO_STRING CallInfoString)
en IDLlamadas.namespace_tapi.vbtapi.gobjTapi_Event(TAPI_EVENT TapiEvent, Object pEvent) en D:\Codigo\CodigoVB2010\IDLlamadas\IDLlamadas\Class1.vb:línea 56
en TAPI3Lib.ITTAPIDispatchEventNotification_SinkHelper.Event(TAPI_EVENT , Object )
InnerException:

1 solution

change "AVM TAPI Services for FRITZ!Box" to the ur modem name
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900