Hallo,
ich habe nun schon zum zweiten Mal ärger mit Events. Sollte ich genau das selbe wieder falsch machen, so verzeiht es mir bitte, habe dann wohl einfach noch nicht genug aus meinem Fehler gelernt.
Das Problem, bei dem mir schon geholfen wurde, ist dieses: [VB 2008] Problem mit COM Komponente in Zusammenhang mit mehren Handles (HRESULT: 0x80040202)
Jetzt aber zu meinem neuen Problem. Es geht um eine Anruferkennung mittels Tapi3 in VB2008.
Ich habe mir schon einige Beispiele dazu angeschaut (ich behaupte einfach mal alle, die sich über google finden lassen) aber laufen tut es bei mir immernoch nicht.
Aus den vielen Beispielen habe ich mir einen Code zurechtgebastelt, um einfach zu sehen, wie das alles funktioniert.
Dabei habe ich folgendes Problem: Das Event: TE_CALLSTATE funktioniert, soweit ich das beurteilen kann, problemlos.
Alle anderen Events werden nicht ausgelöst.
Doch hier nun erstmal mein Test-Code:
Der Klick auf den Button1 startet einen Anruf, wenn ich mein Handy abhebe, wird TE_CALLSTATE ausgelöst (Connect), wenn ich wegdrücke auch (Disconnect) aber wenn ich von meinem Handy aus anrufe, wird kein Event angezeigt. Das brauche ich allerdings, um eine Anruferkennung zu machen.
Ich habe schon gelesen, dass das hier was damit zu tun haben soll: support.microsoft.com/kb/841712
Allerdings bin ich noch immer Anfänger und verstehe nicht wirklich, was mir das sagen soll.
Über eure Hilfe wäre ich wirklich dankbar, und sollte mein Problem auf die selbe Art zu lösen sein, wie das alte, so wäre ich auch froh über eine Nachricht, sodass ich zumindest eine Richtung habe, in der ich weitermachen kann.
Liebe Grüße
Slash
ich habe nun schon zum zweiten Mal ärger mit Events. Sollte ich genau das selbe wieder falsch machen, so verzeiht es mir bitte, habe dann wohl einfach noch nicht genug aus meinem Fehler gelernt.
Das Problem, bei dem mir schon geholfen wurde, ist dieses: [VB 2008] Problem mit COM Komponente in Zusammenhang mit mehren Handles (HRESULT: 0x80040202)
Jetzt aber zu meinem neuen Problem. Es geht um eine Anruferkennung mittels Tapi3 in VB2008.
Ich habe mir schon einige Beispiele dazu angeschaut (ich behaupte einfach mal alle, die sich über google finden lassen) aber laufen tut es bei mir immernoch nicht.
Aus den vielen Beispielen habe ich mir einen Code zurechtgebastelt, um einfach zu sehen, wie das alles funktioniert.
Dabei habe ich folgendes Problem: Das Event: TE_CALLSTATE funktioniert, soweit ich das beurteilen kann, problemlos.
Alle anderen Events werden nicht ausgelöst.
Doch hier nun erstmal mein Test-Code:
VB.NET-Quellcode
- Imports TAPI3Lib
- Public Class Form1
- Public Const MediaAudio As Integer = 8
- Public Const MediaModem As Integer = 16
- Public Const MediaFax As Integer = 32
- Public Const MediaVideo As Integer = 32768
- Public WithEvents oTAPI As TAPI3Lib.TAPI
- Public oAddress As ITAddress ' will hold our selected address (you can hold many address in an array)
- Public RegCookie As Integer
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim m_TAPI As New TAPIClass ' creating a new instance to first initialize TAPI befor attaching the events
- Dim MediaTypes As Integer ' a variable to hold supported media types for the address
- m_TAPI.Initialize() ' initializing TAPI
- oTAPI = m_TAPI ' attaching event sink
- m_TAPI = Nothing
- Dim AddressCollection As ITCollection = oTAPI.Addresses()
- For Each Address As ITAddress In AddressCollection ' looping through address collection
- If Address.State = ADDRESS_STATE.AS_INSERVICE Then ' checking if address is working
- Dim MediaSupport As ITMediaSupport = Address ' extracting meida support interface from the address
- MediaTypes = MediaSupport.MediaTypes ' extracting media types supporting
- MediaSupport = Nothing ' dispose of the object
- If MediaTypes And MediaModem = MediaModem Then ' the address is a data Modem
- If MediaTypes And MediaAudio = MediaAudio Then 'the address supports Audio
- oAddress = Address ' select this address
- MsgBox("we have selected this address: " + oAddress.AddressName) ' show the selected address name
- Exit For
- End If
- End If
- End If
- Next Address
- If Not oAddress Is Nothing Then
- ' registering notifications for the selected address
- RegCookie = oTAPI.RegisterCallNotifications(oAddress, True, False, MediaTypes, 1)
- oTAPI.EventFilter = TAPI_EVENT.TE_CALLNOTIFICATION Or TAPI_EVENT.TE_CALLSTATE Or TAPI_EVENT.TE_CALLINFOCHANGE 'Gibt an auf welche Events Tapi reagieren soll
- Else
- MsgBox("no address selected")
- End If
- End Sub
- Private Sub oTAPI_Event(ByVal TapiEvent As TAPI3Lib.TAPI_EVENT, ByVal pEvent As Object) Handles oTAPI.Event
- Select Case TapiEvent
- Case TAPI_EVENT.TE_CALLNOTIFICATION 'Call Notification Arrived
- MsgBox("oTAPI_Event+ Callnotification")
- Case TAPI_EVENT.TE_CALLSTATE 'Funktioniert, wird ausgelöst, wenn Verbunden oder die Verbindung getrennt wird
- MsgBox("oTAPI_Event + Callstate")
- Case TAPI_EVENT.TE_CALLINFOCHANGE 'Call Info Changes
- MsgBox("oTAPI_Event + Callinfochange")
- End Select
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim PhoneNumber As String = "01577??????"
- Dim lAddressType As Long = TAPI3Lib.TapiConstants.LINEADDRESSTYPE_PHONENUMBER
- Dim newcall As TAPI3Lib.ITBasicCallControl
- newcall = oAddress.CreateCall(PhoneNumber, TAPI3Lib.TapiConstants.LINEADDRESSTYPE_PHONENUMBER, TAPI3Lib.TapiConstants.TAPIMEDIATYPE_AUDIO)
- newcall.Connect(False)
- End Sub
- End Class
Der Klick auf den Button1 startet einen Anruf, wenn ich mein Handy abhebe, wird TE_CALLSTATE ausgelöst (Connect), wenn ich wegdrücke auch (Disconnect) aber wenn ich von meinem Handy aus anrufe, wird kein Event angezeigt. Das brauche ich allerdings, um eine Anruferkennung zu machen.
Ich habe schon gelesen, dass das hier was damit zu tun haben soll: support.microsoft.com/kb/841712
Allerdings bin ich noch immer Anfänger und verstehe nicht wirklich, was mir das sagen soll.
Über eure Hilfe wäre ich wirklich dankbar, und sollte mein Problem auf die selbe Art zu lösen sein, wie das alte, so wäre ich auch froh über eine Nachricht, sodass ich zumindest eine Richtung habe, in der ich weitermachen kann.
Liebe Grüße
Slash