Faire un dialer

lassmust2 Messages postés 2 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 17 mai 2006 - 17 mai 2006 à 12:03
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 21 mai 2006 à 09:56
Salut tout le monde
Je veut faire une application comme ringcentral
câd une application de téléphony via le modem si quelqu'un a une suggestion sa serai sympa de sa part pour me guider avec des composant ou avec les api de windows

merci d'avance

4 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
17 mai 2006 à 13:55
salut,

tu peux utiliser un composant comme
 TurboPower Async Professional

qui permet de composer  de N° de téléphone


@+

jlen
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
17 mai 2006 à 13:58
apparemment le lien a un problème


je recommenceICI

si cela ne fonctionne pas avec le lien le voici:

http://sourceforge.net/projects/tpapro/


@+

jlen
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
17 mai 2006 à 21:09
il y a aussi une petite unité dont je ne retrouve plus le lien la voici donc:

//*********************************************************

unit dialerPlus;


interface


uses

  Windows, SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,

  Controls, Forms, Dialogs;

type

  TMode =(mDirect,mTapi);

  TComPort = (dpCOM1,dpCOM2,dpCOM3,dpCOM4);

  TLanguage = (dlEnglish, dlDutch, dlGerman, dlFrench, dlItalian, dlSpanish);

  TDialer = class(TComponent)

  private

    { Private declarations }

    FComPort : TComPort;

    FNumberToDial : string;

    FConfirm : boolean;

    FMethod : String;

    FLanguage : TLanguage;

    FMode : TMode;


  protected

    { Protected declarations }

  public

    { Public declarations }


    Function Execute :String;

  published

    property ComPort : TComPort read FComPort

                 write FComPort;

    property Confirm : boolean read FConfirm

                 write FConfirm;

    property NumberToDial : string read FNumberToDial

                 write FNumberToDial;

    property Language : TLanguage Read FLanguage

                 write FLanguage;

    property DialCommand : string read FMethod

                 write FMethod;

    property Mode : Tmode read FMode

                 write FMode;


    { Published declarations }

  end;


procedure Register;

function tapiRequestMakeCall(pDestAddress,pAppName,pCalledParty,pComment: PChar): LongInt; stdcall;


implementation

function tapiRequestMakeCall(pDestAddress,pAppName,pCalledParty,pComment: PChar): LongInt; stdcall; external 'TAPI32.DLL';

const

TAPIERR_CONNECTED=0;

TAPIERR_NOREQUESTRECIPIENT=-2;

TAPIERR_REQUESTQUEUEFULL=-3;

TAPIERR_INVALDESTADDRESS=-4;

TAPIMAXDESTADDRESSSIZE=80;


procedure Register;

begin

  RegisterComponents('Samples', [TDialer]);

end;


function TDialer.Execute :String;

var

  ErrorCode:LongInt;

  szNR          : Array[0..TAPIMAXDESTADDRESSSIZE] of Char;

  sText         : String;

  s        : string;

  hCommFile     : THandle;

  Status     : LongBool;

  NumberWritten    : DWORD;

  SMessage      : string;

  DialCommand :PChar;

  HangUpCommand: PChar;


  begin

if Fmode=mDirect then begin

  if FConfirm then

  begin

  Case FLanguage of

  dlEnglish:     SMessage := 'About to dial the number '+FNumberToDial+'. Are you sure?';

  dlDutch:       SMessage := 'Weet u zeker dat u nummer '+FNumberToDial+' wilt kiezen ?';

  dlGerman:      SMessage := 'Wollen Sie die Nummer '+FNumberToDial+' wählen ?';

  dlFrench:      SMessage := 'Composer le numéro ' +FNumberToDial+' ?';

  dlItalian:     SMessage := 'Comporre il numero ' +FNumberToDial+' ?';

  dlSpanish:     SMessage := '¿ Marcar el número ' +FNumberToDial+' ?';

  end;

  if MessageDlg(SMessage,

      mtConfirmation, [mbYes,mbNo], 0)=mrNo then Exit;

  end;

  {Open Com Port}

  s:='COM'+Chr(49+Ord(FComPort));

  hCommFile:= CreateFile( PChar(s), GENERIC_WRITE,

                               
0, {not shared}

                               
nil, {no security ??}

                               
OPEN_EXISTING,

                               
FILE_ATTRIBUTE_NORMAL,

                               
0 {template} );

  if hCommFile=INVALID_HANDLE_VALUE then

  begin

    Case FLanguage of

    dlEnglish:     SMessage := 'Unable to open '+s;

    dlDutch:       SMessage := 'Kan '+s+ ' niet openen';

    dlGerman:      SMessage :=
'Fehler beim Ansprechen des COM '+s+' Ports. Bitte überprüfen Sie, ob
das Modem richtig angeschlossen ist und ob keine weitere
Kommunikationssoftware aktiv ist.';

    dlFrench:      SMessage := 'Echec à l''ouverture de '+s;

    dlItalian:       SMessage := 'Impossibile aprire la porta '+s;

    dlSpanish:     SMessage := 'Imposible abrir el puerto ' +s;

    end;

    Result:='COMOPENERROR';

    MessageDlg(SMessage,mtError,[mbOk], 0);

    Exit;

  end;

  {Create a string to send to modem}

  s:=FMethod+FNumberToDial+#13+#10;

  //if FMethod=dmPulse then s[4]:='P';

  {Send phone number to modem}

  NumberWritten:=0;

  Status:=WriteFile( hCommFile,PChar(s)[0],

                    
Length(s),

                    
NumberWritten,

                     nil);

  if Status then

  begin

    Case FLanguage of

    dlEnglish:     SMessage := 'Pick up phone and click OK';

    dlDutch:       SMessage := 'Pak de telefoon op';

    dlGerman:      SMessage :=
'Nummer gewählt - Bitte nehmen Sie den Hörer ab und klicken dann auf
OK';

    dlFrench:      SMessage := 'Décrochez puis cliquez sur OK';

    dlItalian:     SMessage := 'Alza e clicca su OK';

    dlSpanish:     SMessage := 'Descuelgue y haga clic en el botón OK';

    end;

    MessageDlg(SMessage,mtInformation,[mbOk], 0);

    Result:='OK';

    WriteFile(hCommFile,'ATH'^M^J,5,NumberWritten,nil);

  end

  else

  Begin

    Case FLanguage of

    dlEnglish:     SMessage := 'Unable to dial number';

    dlDutch:       SMessage := 'Kan dit nummer niet kiezen';

    dlGerman:      SMessage := 'Kann die angegebene Nummer nicht erreichen !';

    dlFrench:      SMessage := 'Impossible de composer le numéro demandé';

    dlItalian:       SMessage := 'Impossibile comporre il numero chiesto';

    dlSpanish:     SMessage := 'Imposible marcar el número solicitado'

    end;

    MessageDlg(SMessage,mtError,[mbOk], 0);

    Result:='DIALERROR';


  end;

  {Close communication port}

  CloseHandle(hCommFile);

end

else

begin

 FillChar(szNR,SizeOf(szNR),#0);

 StrPCopy(szNR,FNumberToDial);

 ErrorCode:=TAPIRequestMakeCall(szNr,'TDialer','','');

 Case ErrorCode of

   TAPIERR_CONNECTED:Result:='TapiConnected';

   TAPIERR_NOREQUESTRECIPIENT:Result:='TapiNotAvailable';

   TAPIERR_REQUESTQUEUEFULL:Result:='TapiFull';

   TAPIERR_INVALDESTADDRESS:Result:='TapiInvalidAddress';

 End;

end;

end;

end.


//**************************************************************


@+

jlen
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
21 mai 2006 à 09:56
salut,

si tu n'as pas encore trouvé ton bonheur, je viens de déposer une
source qui utilise un autre composant tu toruveras comment l'uitiliser
dans le module PHONE (c'est un appel automatique) le composant
s'appelle VModem et les sources sont dans le zip.

la source est ICI


@+

jlen
0
Rejoignez-nous