begin process at 2010 02 10 09:38:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OLE, DDE, Automation

 > DLL UTILISANT LE MODEM POUR APPELER UN NUMÉRO DE TEL

DLL UTILISANT LE MODEM POUR APPELER UN NUMÉRO DE TEL


 Information sur la source

Note :
6,25 / 10 - par 4 personnes
6,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OLE, DDE, Automation Niveau :Initié Date de création :30/06/2004 Vu / téléchargé :14 974 / 195 866

Auteur : DrChal

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Ce début de  dll permet d'appeler et de raccrocher le tel via le modem, il utilise le composant Mscomm de VB.
Mode opératoire pour utiliser ClPhone.dll

Tout d'abord, il faut référencer la dll dans le projet.
Puis il faut créer une variable permettant de d'instancier l'objet ClPhone

Liste des propriétés


oPbStandard : Propriété qui permet de renseigner si la ligne se trouve derrière un standard. Dans ce cas là, on rajoutera 0 devant le numéro de téléphone.
oPsPortSetting   : Propriété concernant la configuration du port série (Vitesse, Bits de parité,Bit de Données Valide, valeur d'arrêt)
oPiPortNumber : Propriété concernant le numéro du port (Ex : 1 = COM1 , 2 = COM2 etc..)
oPsPhoneNumber : Propriété qui concerne le numéro de téléphone qu'on veut appeler. (Ex: 0328333543)
oPbHangDown : Propriété qui permet de raccrocher et de terminer l'appel.

Méthode pour faire un appel :

RbCallNumber : Méthode qui permet de faire un appel selon les propriété que l'on définira au préalable.

Pour raccrocher, il suffira de mettre la propriété oPbHangDownà vrai.

Source

  • Option Explicit
  • Dim sOpsPortSetting As String 'Propriété du Port
  • Dim sOpsPhoneNumber As String 'Numéro de téléphone à appeler
  • Dim bOpbStandard As Boolean 'Flag pour savoir si la ligne est derrière un standard
  • Dim boPbHangDown As Boolean 'Flag qui raccroche le tel
  • Dim iOpiPortNumber As Integer 'Numéro du port
  • Dim oCom As MSComm 'Objet de communication Port
  • Dim WithEvents oVoice As SpVoice
  • 'Propriété qui Rend la fenêtre de conncetion visible ou non
  • Public Property Let oPbVisible(bVisible As Boolean)
  • Frm_TestModem.Visible = bVisible
  • If bVisible Then
  • Frm_TestModem.WindowState = vbNormal
  • End If
  • End Property
  • Public Property Get oPbVisible() As Boolean
  • oPbVisible = Frm_TestModem.Visible
  • End Property
  • 'Propriété qui renseigne si la ligne se trouve derrière un standard ou non
  • Public Property Let oPbStandard(bStandard As Boolean)
  • bOpbStandard = bStandard
  • End Property
  • Public Property Get oPbStandard() As Boolean
  • oPbStandard = bOpbStandard
  • End Property
  • 'Propriété qui fais racrocher le telephone
  • Public Property Let oPbHangDown(bHangDown As Boolean)
  • boPbHangDown = bHangDown
  • 'If bHangDown And oCom.PortOpen Then oCom.PortOpen = False
  • End Property
  • Public Property Get oPbHangDown() As Boolean
  • oPbHangDown = boPbHangDown
  • End Property
  • 'Propriété de configuration du port
  • Public Property Let oPsPortSetting(strPortSetting As String)
  • sOpsPortSetting = strPortSetting
  • End Property
  • Public Property Get oPsPortSetting() As String
  • oPsPortSetting = sOpsPortSetting
  • End Property
  • 'Propriété qui définit le numéro de telephone à appeler
  • Public Property Let oPsPhoneNumber(strPhoneNumber As String)
  • If oPbStandard Then
  • sOpsPhoneNumber = "0" & strPhoneNumber
  • Else
  • sOpsPhoneNumber = strPhoneNumber
  • End If
  • End Property
  • Public Property Get oPsPhoneNumber() As String
  • oPsPhoneNumber = sOpsPhoneNumber
  • End Property
  • 'Propriété qui définit le numéro du port série
  • Public Property Let oPiPortNumber(iPortNumber As Integer)
  • If iPortNumber = 0 Then
  • iOpiPortNumber = 1
  • Else
  • iOpiPortNumber = iPortNumber
  • End If
  • End Property
  • Public Property Get oPiPortNumber() As Integer
  • If oPiPortNumber = 0 Then
  • oPiPortNumber = 1
  • Else
  • oPiPortNumber = iOpiPortNumber
  • End If
  • End Property
  • Public Property Let oPlColorError(oColorError As OLE_COLOR)
  • oColor_Bad = CLng(oColorError)
  • End Property
  • Public Property Get oPlColorError() As OLE_COLOR
  • oPlColorError = oColor_Bad
  • End Property
  • Public Property Let oPlColorSucceed(oColorSucceed As OLE_COLOR)
  • oColor_Good = CLng(oColorSucceed)
  • End Property
  • Public Property Get oPlColorSucceed() As OLE_COLOR
  • oPlColorSucceed = oColor_Good
  • End Property
  • Public Function RbCallNumber() As Boolean
  • Dim st As String
  • Dim Cde As String
  • Dim boPbHangDown As Boolean
  • Dim modem As String
  • Dim oCom1 As Object
  • Frm_TestModem.Visible = False
  • ' Définition des paramètres du port
  • Set oCom = Frm_TestModem.MSComm1
  • If Not oCom.PortOpen Then
  • oCom.CommPort = iOpiPortNumber 'Numéro du port série
  • oCom.Settings = sOpsPortSetting '"300,N,8,1"
  • End If
  • ' Ouverture du port
  • On Error Resume Next
  • oCom.PortOpen = True
  • If Err Then
  • st = "COM" + Str(oCom.CommPort) + " n'est pas disponible. "
  • st = st + "Utilisez le menu Port pour sélectionner un autre port de communication."
  • MsgBox st
  • RbCallNumber = False
  • End If
  • ' Purge du tampon d'entrée
  • oCom.InBufferCount = 0
  • ' Composition du numéro
  • Cde = "ATDT " + sOpsPhoneNumber + ";" + Chr$(13)
  • oCom.Output = Cde
  • ' Attente de la chaîne boPbHangDown en provenance du modem
  • boPbHangDown = False
  • Do
  • ' Si il y a des données dans la tampon, les lit.
  • If oCom.InBufferCount Then
  • DoEvents
  • modem = modem + oCom.Input
  • ' If InStr(modem, "OK") <> 0 Then
  • ' MsgBox "Décrochez le téléphone et appuyez sur le bouton Ok."
  • ' DoEvents
  • ' 'oPbHangDown = True
  • ' End If
  • End If
  • DoEvents
  • Loop Until oPbHangDown
  • ' Déconnection du modem
  • oCom.Output = "ATH" + Chr$(13)
  • ' Fermeture du port
  • oCom.PortOpen = False
  • End Function
  • Private Sub Class_Initialize()
  • oColor_Good = &H0
  • oColor_Bad = &H808080
  • bOpbStandard = True
  • sOpsPortSetting = "300,N,8,1"
  • sOpsPhoneNumber = ""
  • iOpiPortNumber = 1
  • Set oVoice = New SpVoice
  • End Sub
  • Private Sub Class_Terminate()
  • On Error Resume Next
  • ' Fermeture du port
  • oCom.PortOpen = False
  • Set oVoice = Nothing
  • Set oCom = Nothing
  • End Sub
  • '*** Méthode
  • ' ***********************************************************
  • ' FONCTION: DialNumber()
  • '
  • ' Explication : Composer un numéro de tel en utilisant le modem du PC
  • '
  • ' Paramètre:
  • ' PhoneNumber: Numéro de tel à composer
  • '
  • ' ***********************************************************
  • Public Function DialNumber(PhoneNumber)
  • Dim Msg As String, MsgBoxType As Integer, MsgBoxTitle As String
  • Dim RetVal As Long
  • ' Demande à l'utilisateur de décrocher le téléphone.
  • Msg = "SVP, décrocher le combiner et cliquer OK pour composer le numéro " _
  • & PhoneNumber
  • MsgBoxType = MB_ICONINFORMATION + MB_OKCANCEL
  • MsgBoxTitle = "Numéro de Tel"
  • If MsgBox(Msg, MsgBoxType, MsgBoxTitle) = ID_CANCEL Then
  • Exit Function
  • End If
  • ' Envoyer le numéro de tel par modem.
  • RetVal = tapiRequestMakeCall(PhoneNumber, "Phone", "", "")
  • If RetVal < 0 Then
  • Msg = "Impossible de composer le numéro " & PhoneNumber
  • GoTo Err_DialNumber
  • End If
  • Exit Function
  • Err_DialNumber:
  • Msg = Msg & vbCr & vbCr & _
  • "Vérifiez que le Port série n'est pas utilisé par un autre utilisateur"
  • MsgBoxType = MB_ICONSTOP
  • MsgBoxTitle = "Erreur lors de la composition du numéro"
  • MsgBox Msg, MsgBoxType, MsgBoxTitle
  • End Function
  • Public Sub sbTextToSpeech(strMessage As String)
  • On Error GoTo ErrSpeech
  • 'Declarations
  • '
  • ''Code:
  • 'oVoice.Speak strMessage, SVSFlagsAsync
  • '
  • ''This will speak to default out put audio device (speaker)
  • ''In case you want to direct the speech to telephone
  • ''Add a MSCom control to your project
  • ''Dial a telephone number
  • ''Once picked up on other side [You need to know AT commands]
  • ''set the oVoice output to telephone object and play the stream
  • '
  • oVoice.AllowAudioOutputFormatChangesOnNextSet = False
  • oVoice.AudioOutputStream.Format.Type = 6
  • Set oVoice.AudioOutputStream = oVoice.AudioOutputStream
  • Set oVoice.Voice = oVoice.GetVoices().Item(0)
  • Set oVoice.AudioOutput = oVoice.GetAudioOutputs().Item(1) '"Your telephone object"
  • Debug.Print oVoice.AudioOutput.GetDescription
  • oVoice.Speak strMessage, SVSFlagsAsync Or SVSFPurgeBeforeSpeak Or SVSFIsXML ' SVSFDefault ' Flags
  • Exit Sub
  • ErrSpeech:
  • MsgBox Err.Description
  • End Sub
Option Explicit

Dim sOpsPortSetting As String                    'Propriété du Port
Dim sOpsPhoneNumber As String                    'Numéro de téléphone à appeler
Dim bOpbStandard As Boolean                      'Flag pour savoir si la ligne est derrière un standard
Dim boPbHangDown As Boolean                      'Flag qui raccroche le tel
Dim iOpiPortNumber As Integer                    'Numéro du port
Dim oCom As MSComm                              'Objet de communication Port
Dim WithEvents oVoice As SpVoice


'Propriété qui Rend la fenêtre de conncetion visible ou non
Public Property Let oPbVisible(bVisible As Boolean)
Frm_TestModem.Visible = bVisible
If bVisible Then
    Frm_TestModem.WindowState = vbNormal
End If
End Property

Public Property Get oPbVisible() As Boolean
oPbVisible = Frm_TestModem.Visible
End Property

'Propriété qui renseigne si la ligne se trouve derrière un standard ou non
Public Property Let oPbStandard(bStandard As Boolean)
bOpbStandard = bStandard
End Property

Public Property Get oPbStandard() As Boolean
oPbStandard = bOpbStandard
End Property

'Propriété qui fais racrocher le telephone
Public Property Let oPbHangDown(bHangDown As Boolean)
boPbHangDown = bHangDown
'If bHangDown And oCom.PortOpen Then oCom.PortOpen = False
End Property

Public Property Get oPbHangDown() As Boolean
oPbHangDown = boPbHangDown
End Property


'Propriété de configuration du port
Public Property Let oPsPortSetting(strPortSetting As String)
sOpsPortSetting = strPortSetting
End Property

Public Property Get oPsPortSetting() As String
oPsPortSetting = sOpsPortSetting
End Property

'Propriété qui définit le numéro de telephone à appeler
Public Property Let oPsPhoneNumber(strPhoneNumber As String)
If oPbStandard Then
    sOpsPhoneNumber = "0" & strPhoneNumber
Else
    sOpsPhoneNumber = strPhoneNumber
End If
End Property

Public Property Get oPsPhoneNumber() As String
oPsPhoneNumber = sOpsPhoneNumber
End Property

'Propriété qui définit le numéro du port série
Public Property Let oPiPortNumber(iPortNumber As Integer)
    If iPortNumber = 0 Then
        iOpiPortNumber = 1
    Else
        iOpiPortNumber = iPortNumber
    End If
End Property

Public Property Get oPiPortNumber() As Integer
    If oPiPortNumber = 0 Then
        oPiPortNumber = 1
    Else
        oPiPortNumber = iOpiPortNumber
    End If
End Property

Public Property Let oPlColorError(oColorError As OLE_COLOR)
oColor_Bad = CLng(oColorError)
End Property

Public Property Get oPlColorError() As OLE_COLOR
oPlColorError = oColor_Bad
End Property

Public Property Let oPlColorSucceed(oColorSucceed As OLE_COLOR)
oColor_Good = CLng(oColorSucceed)
End Property

Public Property Get oPlColorSucceed() As OLE_COLOR
oPlColorSucceed = oColor_Good
End Property


Public Function RbCallNumber() As Boolean
Dim st As String
Dim Cde As String
Dim boPbHangDown As Boolean
Dim modem As String
Dim oCom1 As Object

  Frm_TestModem.Visible = False
  
  ' Définition des paramètres du port
  Set oCom = Frm_TestModem.MSComm1
  If Not oCom.PortOpen Then
    oCom.CommPort = iOpiPortNumber    'Numéro du port série
    oCom.Settings = sOpsPortSetting   '"300,N,8,1"
  End If
  
  ' Ouverture du port
  On Error Resume Next
  oCom.PortOpen = True
  
  If Err Then
    st = "COM" + Str(oCom.CommPort) + " n'est pas disponible. "
    st = st + "Utilisez le menu Port pour sélectionner un autre port de communication."
    MsgBox st
    RbCallNumber = False
  End If
    
  ' Purge du tampon d'entrée
  oCom.InBufferCount = 0
    
  ' Composition du numéro
  Cde = "ATDT " + sOpsPhoneNumber + ";" + Chr$(13)
  oCom.Output = Cde
    
  ' Attente de la chaîne boPbHangDown en provenance du modem
  boPbHangDown = False
  Do
    ' Si il y a des données dans la tampon, les lit.
    If oCom.InBufferCount Then
      DoEvents
      modem = modem + oCom.Input
'      If InStr(modem, "OK") <> 0 Then
'        MsgBox "Décrochez le téléphone et appuyez sur le bouton Ok."
'        DoEvents
'        'oPbHangDown = True
'      End If
    End If
    DoEvents
  Loop Until oPbHangDown
    
  ' Déconnection du modem
  oCom.Output = "ATH" + Chr$(13)
    
  ' Fermeture du port
  oCom.PortOpen = False
End Function

Private Sub Class_Initialize()
oColor_Good = &H0
oColor_Bad = &H808080
bOpbStandard = True
sOpsPortSetting = "300,N,8,1"
sOpsPhoneNumber = ""
iOpiPortNumber = 1
Set oVoice = New SpVoice
End Sub


Private Sub Class_Terminate()
    On Error Resume Next
    ' Fermeture du port
    oCom.PortOpen = False
    Set oVoice = Nothing
    Set oCom = Nothing

End Sub


'*** Méthode
' ***********************************************************
' FONCTION: DialNumber()
'
' Explication : Composer un numéro de tel en utilisant le modem du PC
'
' Paramètre:
'    PhoneNumber: Numéro de tel à composer
'
' ***********************************************************
Public Function DialNumber(PhoneNumber)
   Dim Msg As String, MsgBoxType As Integer, MsgBoxTitle As String
   Dim RetVal As Long

   ' Demande à l'utilisateur de décrocher le téléphone.
   Msg = "SVP, décrocher le combiner et cliquer OK pour composer le numéro " _
      & PhoneNumber
   MsgBoxType = MB_ICONINFORMATION + MB_OKCANCEL
   MsgBoxTitle = "Numéro de Tel"

   If MsgBox(Msg, MsgBoxType, MsgBoxTitle) = ID_CANCEL Then
      Exit Function
   End If

   ' Envoyer le numéro de tel par modem.
   RetVal = tapiRequestMakeCall(PhoneNumber, "Phone", "", "")

   If RetVal < 0 Then
      Msg = "Impossible de composer le numéro " & PhoneNumber
      GoTo Err_DialNumber
   End If

   Exit Function

Err_DialNumber:
   Msg = Msg & vbCr & vbCr & _
      "Vérifiez que le Port série n'est pas utilisé par un autre utilisateur"
   MsgBoxType = MB_ICONSTOP
   MsgBoxTitle = "Erreur lors de la composition du numéro"
   MsgBox Msg, MsgBoxType, MsgBoxTitle

End Function
  
Public Sub sbTextToSpeech(strMessage As String)
On Error GoTo ErrSpeech
'Declarations
'
''Code:
'oVoice.Speak strMessage, SVSFlagsAsync
'
''This will speak to default out put audio device (speaker)
''In case you want to direct the speech to telephone
''Add a MSCom control to your project
''Dial a telephone number
''Once picked up on other side [You need to know AT commands]
''set the oVoice output to telephone object and play the stream
'
oVoice.AllowAudioOutputFormatChangesOnNextSet = False
oVoice.AudioOutputStream.Format.Type = 6
Set oVoice.AudioOutputStream = oVoice.AudioOutputStream
Set oVoice.Voice = oVoice.GetVoices().Item(0)

Set oVoice.AudioOutput = oVoice.GetAudioOutputs().Item(1) '"Your telephone object"
Debug.Print oVoice.AudioOutput.GetDescription


oVoice.Speak strMessage, SVSFlagsAsync Or SVSFPurgeBeforeSpeak Or SVSFIsXML ' SVSFDefault  ' Flags
Exit Sub
ErrSpeech:
MsgBox Err.Description
End Sub





 Conclusion

Il est en cours de conception. Je dois l'améliorer.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip DLL TAPI TRANSCRIPTION PARTIELLE DE LA DLL C++
Source avec Zip COMPARAISON DE FICHIER IMAGE

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) EXCELDOTNET : PROGRAMMER EXCEL EN DOTNET SANS VBA NI VSTO par Patrice99
Source avec Zip Source avec une capture AJOUTEZ VOTRE COMPLÉMENT À VISUAL BASIC 6 SANS ÊTRE CONTRAIN... par VBsearch
Source avec Zip PILOTER ACROBAT READER DEPUIS EXCEL ET VBA par jpduf
Source avec Zip Source avec une capture INTERCEPTER DES APPELS DE METHODE (SURCHARGE DE VTABLE) par Renfield
Source avec Zip Source avec une capture CYBER COUNTER V2 par makaveli244

Commentaires et avis

Commentaire de FirSteph le 30/06/2004 10:54:25

Tres bon début de projet =)
Je met 8/10 car pas encore terminé.
Bonne continuation !

Commentaire de phantom_2005 le 16/12/2004 11:37:53

Un très bon code et très utile (pour moi en tout cas)

Merci
9/10

@+

Commentaire de Ulysse3 le 31/07/2006 06:56:55

Ca ne marche pas il manque je sais pas trop quel sorte de composante.

Commentaire de mikerno le 25/09/2006 23:53:51

Au fait j'ai eu le grand plaisir de tomber sur vos DLL sur vbfrance, cependant je souhaite savoir kel configuration de modem me faudrait il pour appeler.
Es possible avec un modem ADSL; il y a t il des abonnements a souscrire.

Commentaire de Sofiene_Maaddi le 26/10/2006 23:52:04

merci de m'avoir donner une bonne idée sur ça!
jvou note 8/10
et merci de m'offrir un cas de lecture de la ligne téléphonique

Commentaire de BABUDROME le 21/05/2007 07:17:18

je n'ai pas encore étudier votre DLL, mais serai preneur pour accès avec ADSL (type LiveBox ou AliceBox). Remerciements anticipés à toutes propositions. Bab

Commentaire de mbarek222 le 18/08/2007 20:15:04

salut,
j'ai télécharger votre programme mais j'ai recontrer une erreur:
objet ou bibliothec introuvable
et le débogeur selectionne la ligne:dim withevent ovoice as spvoice
dans la declaration du module classe.
et je veus aussi une petite explication sur la mainère de connecter le modeme et l'ordinateur pour que ça marche bien.
aider mois S.V.P
mercie d'avance

Commentaire de PhilouOnLine le 10/02/2009 10:15:29

Bonjour,

Je suis développeur PHP et dans le cadre d'un projet, je cherche un composant permettant de composer automatiquement un numéro de téléphone (depuis une liste issue d'une base de données) vers un modem 56K. Je suppose que le dialogue vers le modem se fait grâce aux commandes AT (Haynes).

Je ne code pas du tout en VB et la plupart des sources portant sur ce sujet sont faites sur cette plateforme. Serait-il possible à votre avis de générer à partir de votre projet un ActiveX pouvant être appelé via Javascript par exemple pour que le navigateur web puisse commander le modem ?

Merci pour vos lumières et à très bientôt j'espère.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales