Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0246: Telefon-Dialer mit der TAPI

 von 

Beschreibung 

Hiemit kann über die TAPI eine Nummer via Telefon gewählt werden.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

tapiRequestMakeCall

Download:

Download des Beispielprojektes [2,28 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command2"
' Steuerelement: Textfeld "Text1"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label1"


'Dank an Olaf Quasdorff (oquasdorff@web.de)

Option Explicit

Private Declare Function tapiRequestMakeCall Lib "TAPI32.DLL" _
        (ByVal DestAddress As String, ByVal AppName As String, _
        ByVal CalledParty As String, ByVal Comment As String) As Long
        
Private Const TAPIERR_NOREQUESTRECIPIENT As Long = -2&
Private Const TAPIERR_REQUESTQUEUEFULL As Long = -3&
Private Const TAPIERR_INVALDESTADDRESS As Long = -4&

Private Sub Command1_Click()
    Call DialNumber(Text1.Text, "Test")
End Sub

Public Sub DialNumber(strNumber As String, strLocation As String)
    Dim strBuff As String
    Dim lngResult As Long

    lngResult = tapiRequestMakeCall(strNumber, CStr(Caption), strLocation, "")
    
    If lngResult <> 0 Then
        strBuff = "Error dialing number : "
        
        Select Case lngResult
            Case TAPIERR_NOREQUESTRECIPIENT
                    strBuff = strBuff & "No Windows Telephony dialing " & _
                                        "application is running and " & _
                                        "none could be started."
                    
            Case TAPIERR_REQUESTQUEUEFULL
                    strBuff = strBuff & "The queue of pending Windows " & _
                                        "Telephony dialing requests is full."
                                    
            Case TAPIERR_INVALDESTADDRESS
                    strBuff = strBuff & "The phone number is not valid."
                
            Case Else
                    strBuff = strBuff & "Unknown error."
                
        End Select
        
        MsgBox strBuff
    End If
End Sub

Private Sub Command2_Click()
    Unload Me
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 25 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von sfbg am 21.07.2009 um 16:20

Erst denken, dann coden! Einige Variablen nicht deklariert. Was ist Caption? Zudem sollte Vista auch in ihre Listbox. Des gibts schon seit über 2 Jahren

Kommentar von Rhox am 14.08.2008 um 12:08

Ich bin erstaunt :)
Es hat sofort geklappt. Das hatte ich ja noch nie bei Beispielen aus dem Internet =)

Vielen Dank!

Kommentar von Michael Narzi am 27.10.2007 um 05:34

Danke, Leute. Das hat sofort auf Anhieb funktioniert. Ihr seid spitze.
Vielen Dank an Olaf Quasdorff!!!!

Kommentar von chris am 04.04.2007 um 11:20

Also die Anruffunktion klappt, wenn aber der angerufene abhebt hört er nur schrille Piepstöne... habe ich evtl. irgendwas falsch eingestellt???ich kann bei anruf nömlich auch nich hören, was der angerufene sagt

Kommentar von Kalle am 10.11.2006 um 13:04

Hat super funktioniert. Vielen Viele Dank
Gibt es eine Möglichkeit, den Dialer von MS nach Beendigung des Telefonats automatisch zu schließen. Er soll sich nicht melden wenn Telefonate ankommen.

Vielen Dank für die Hilfe im Voraus

Kommentar von Herbert Moehrcke am 02.09.2005 um 08:09

Hallo,
welche Zeichen muß ich für die R-Taste senden?
Danke
H.Moehrcke

Kommentar von anoop am 07.05.2004 um 14:06

dear sir,
my name is anoop
working as a trainer in vb.net
can u help me to do a project in tapi application
plzzzzzzzzzzzzz
i am searching for help 4 long time
acctually i did'nt get ur language

anupjose

Kommentar von von Thuelen am 04.05.2004 um 23:42

Hallo,
habe es ausprobiert. Super gut!

Kommentar von Binoy Jones am 15.04.2004 um 11:11

Hi,
I want to develop a IVR system based on TAPI in VB6. I hope you will help me how to use TAPI functions how to dial,answer a call etc..

With Regards
Binoy

Kommentar von Urs am 25.12.2003 um 10:35

Hallo Ferdi
Vielen Dank für den Link. Das Programm funktioniert fein!
Gruss Urs

Kommentar von Ferdi am 24.12.2003 um 11:20

Hallo,
anbei der Downloadlink für der Callmaker.exe
http://www.activevb-archiv.de/cgi-bin/upload/
download.pl?id=1786

Leider taucht das Programm micht bei der Suche in Active-VB auf - wie kann man das ändern?

Gruß Ferdi

Kommentar von Urs Meyer am 24.12.2003 um 09:52

Hallo
Beim Googeln finde ich zum Begriff "Callmaker.exe" nichts. Vielleicht kann mir jemand einen Tipp geben, wo ich suchen muss. Zusatzfrage: Worauf zielt der Begriff "letzte Uploads"?
Vielen Dank
Urs

Kommentar von Cybi am 24.11.2003 um 14:06

Also mit dem wählen ist ja schön und gut, aber ich stehe derzeit vor dem Problem, das ich eingehende Anrufe entgegennehmen müsste, und deren Telefonnummer übermitteln kann.
Ist dies ebenfalls möglich?

Bin für jeden Tipp dankbar, solange er mich nicht auf das MSDN verweist. *G*

Thx im vorraus.

MFG
Cyborg One

Kommentar von Ferdi am 12.11.2003 um 21:15

Hallo,

such mal nach Callmaker (letzte Uploads).
Dort ist eine Klasse drin, die Du einfach nur in dein Projekt reinhängen musst - dann kannst Du wählen.

Gruß

Ferdi

Kommentar von Marc am 11.11.2003 um 17:06

Hi zusammen,

ich glaube ich bin hier bei den richtigen leuten gelandet. ich suche nach einer möglichkeit, mit visual basic (z.B. per Button) eine Nummer auf meinem Telefon wählen zu lassen. Das Telefon ist ein Octophon28 von der Telekom und wird mit einem Datenadapter an den PC via TAPI-LINK angeschlossen.
Gibt es hier eine ganz einfache Möglichkeit, die ich in mein bestehendes Programm einfügen kann. Ich will NUR wählen lassen, sonst nix!

Danke.

Marc

Kommentar von Ferdi am 10.11.2003 um 21:29

Hallo,

ich hatte mir den Code vor einer Weile herunter geladen und er hat auch funktioniert. Jedoch nervt die Wahlhilfe etwas.
Ich habe darauf hin ein wenig im Netz gestöbert was eigenes gebaut - wen's interessiert einfach unter aktuelle Uploads suchen (Callmaker.exe)

Viel Spaß

Ferdi

Kommentar von Helmut am 08.10.2003 um 09:07

Hallo,

ich habe diesen Tipp ausprobiert und bin so begeistert, dass
ich ihn in mein Programm eingebaut habe. Ich würde das ganze
aber mal gerne mal in einer Liste abarbeiten. Ich möchte in
einem FlexGrid Telefonnummern auflisten, und diese Liste der
Reihe nach abtelefonieren, ohne immer die Nummer anzuklicken. Das soll so aussehen, wenn nach ca. 30 Sekunden
keiner abnimmt, oder wenn die gewählte Nummer besetzt ist,
soll automatisch die nächste Nummer gewählt werden. Wenn ein
Gespräch zustande gekommen ist, darf nicht wieter gewählt werden, erst wenn der Hörer wieder aufgelegt wurde.
Es ist wohl etwas viel verlangt, aber vieleicht hast Du ja eine Idee. Vielen Dank !

Mfg

Helmut

Kommentar von Andreas Waitze am 10.07.2003 um 19:02

Die Funktion klappt nur, wenn ich zuvor die Windows-Wählhilfe öffne und den Tapi-Treiber manuell einstelle.

Wie kann ich den Tapi-Treiber mittels VB einstellen?

Gruß

Andreas

Kommentar von Heiko Lickfett am 02.04.2003 um 16:24

Ich wäre an einem Tip interessiert, wie man die ankommenden Daten aus der TAPI-Schnittstelle ausliest, um in einer Access-Datenbank den entsprechenden Namen aufzurufen.

Kommentar von Hussi am 11.02.2003 um 15:23

Gibt es so etwas auch für das Entgegennehmen von Anrufen? Ich würde gern eine DB dahinterpacken, die mir anhand der Nr den Anrufer ausgibt.

Kommentar von Thomas am 27.05.2002 um 22:10

Hallöle,
ich muss sowas in eine JSP-Seite einbauen. Wie geht das ?
Hintergrund: Wir haben eine Datenbank mit Telefonnummern die per Klick und TAPI angewählt werden sollen...

Kommentar von weißnich am 19.05.2002 um 10:42

Sowas sollte man hier nicht publizieren, damit die Dialer-Abzocker nicht noch meer Aufwind bekommen.

Kommentar von Willi Herzog am 15.04.2002 um 09:15

Möchte gerne in einem bestehenden Formular das Skript einbauen. Command1 heisst bei mir "Anrufen_Click()" und die Rufnummer steht in der Textbox "Rufnummer". Habe alles angepasst und gespeichert. Geht aber nicht. Kann mir jemand weiterhelfen?

Kommentar von Gregor Kurth am 15.08.2001 um 10:48

Ich würde gerne anstelle der Wahlhilfe das fritzfon benutzen
weiss aber nicht wie das geht.

Kommentar von Sascha Münch am 31.07.2001 um 12:54

Nach dem wählen würde ich gerne weiterverbinden. Dazu muß ich an den Telefonen die R-Taste drücken. Wie mache ich das per Programm?