Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como realizar y detectar una llamada telefonica (https://www.clubdelphi.com/foros/showthread.php?t=30569)

BuenaOnda 10-04-2006 17:35:14

Como realizar y detectar una llamada telefonica
 
Hola Amigos..

Quisiera saber como puedo realizar y detectar una llamada telefonica desde mi Pc, a traves del modem, si existe algun componente o algun API de windows que me permita realizar esto.


Muchas Gracias....;)

Nbull 10-04-2006 18:32:18

Hay unos componentes llamados Tapi, que te permiten hacer este tipo de cosas.

El problema es que son de pago y solo te dejan usar una demo,pruebalos y si crees que los necesitas pues ya sabes, tendras que comprarlos.

Un saludo.

Sotrono 10-04-2006 18:32:27

Hola, podes usar los componentes APRO, bajalos desde Torry.net.
Para la parte de programación, busca en el foro porque hay bastante info sobre eso.

Bytes...

BuenaOnda 10-04-2006 18:47:31

gracias por su ayuda amigos....

seoane 11-04-2006 20:11:25

Si solo quieres realizar la llamada puedes usar el comando ATD. Aqui te dejo una funcion con la que podras marcar un numero de telefono, desde un moden o un telefono movil conectado a un puerto serie.

Código Delphi [-]
function Marcar(Puerto: String; Telefono: String): Boolean;
var
  hPort: THandle;
  DCB: TDCB;
  Comando: String;
  Escritos: Cardinal;
begin
  Result:= FALSE;
  Puerto:= Uppercase(Puerto);
  // Cambiar esto si es necesario un puerto diferente
  if (Puerto<>'COM1') and (Puerto<>'COM2') then
    exit;
  hPort:= CreateFile(PChar('\\.\'+Puerto), GENERIC_READ or GENERIC_WRITE,0, nil,
    OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  if hPort<>INVALID_HANDLE_VALUE then
  begin
    DCB.DCBlength:= sizeof(DCB);
    if GetCommState(hPort,DCB) then
    begin
      // Cambiar esto para una configuracion del puerto diferente
      with DCB do
      begin
        BaudRate := CBR_9600;
        ByteSize := 8;
        Parity   := NOPARITY;
        StopBits := ONESTOPBIT;
        Flags    := $01;
      end;
      if SetCommState(hPort, DCB) then
      begin
        PurgeComm(hPort, PURGE_TXABORT or PURGE_RXABORT or PURGE_TXCLEAR or
          PURGE_RXCLEAR);
        Comando:= 'ATD'+Telefono+#13;
        Result := WriteFile(hPort, PChar(Comando)^, Length(Comando), Escritos, nil);
      end;
    end;
    CloseHandle(hPort);
  end;
end;

En cuanto a lo de detectar la llamada, eso depende de lo que quieras decir con detectar. La mayoria de los modem mandan el texto 'RING' a traves del puerto serie cuando estan recibiendo una llamada ( :) Algo asi como el timbre del telefono pero en modo texto) si solo necesitas eso solo tienes que esperar a que mande esa cadena por el puerto. Si por el contrario quieres identificar el numero del que llama ya es mas complicado, y seguiria el consejo que te dieron de que te buscaras algun componente apropiado.

santiago14 13-04-2006 00:25:08

Realizar y detectar llamadas teléfonicas
 
Hay un componente muy bueno, ComPort, que hace lo que estás pidiendo, no recuerdo la dirección en este momento pero si pones en el buscador del club "comport" lo encontrarás.
Son free y muy buenos, eso si, requieren un poquito mas de programación que los APRO para recibir y enviar llamadas.

Para identificar llamadas necesitas que tu compañía telefónica te habilite el servicio, se llama CALLER ID y también hay documentación al respecto en el club.

Saludos.

javier7ar 04-11-2006 16:30:49

donde puedo bajar los componentes APRO ?? busque APRO en torry.net y no los encontro. Aparecen con otro nombre ?? Como debo buscarlos ?? Si alguien tiene el link para bajarlos se los agradeceria
Gracias

Sotrono 04-11-2006 17:27:34

Bajalo de aca

Salud2!!

rusadir 06-11-2006 12:33:10

sirve lo dicho anterior para las lineas rdsi
 
aprovechando este interesante hilo queria preguntar para completarlo si
lo que habeis dicho anterior se puede aplicar a las lineas rdsi y sino como se podria hacer si la linea que te llega es una rdsi y a traves de una centralita,

gracias de antemano a todos/as

Durbed 21-12-2006 13:10:03

Estoy intentando implementar un identificador de llamadas, de momento ya tengo el modem adecuado y estoy dado de alta en el servicio de identificacion y he probado una demo para ver si funciona y en ese sentido esta todo bien pues la demo esa funciona ;).

Estoy intentandolo con los APRO y lo primero que hice fue leerme un poco la documentación y bingo, que suerte habia un ejemplo en los APRO que hacia lo que estaba buscando. Pero rapido se encargaron de pincharme el globo :confused: el problema es que el modem no soporta "voice extensions" y por tanto el componente ApdTapiDevice no me sirve. El ejemplo es "ExVoice.dpr"

Creo que se puede hacer con otro componente AdModem, pero no se como :confused: a ver si alguien puede arrojar un poco de luz en el tema.

Un saludo y gracias

patoaballay 29-03-2007 17:55:25

problema con TAPI
 
alguien trabajó con el componente TAPI de los APRO para recibir llamadas?? se puede reproducir archivos .wav a traves de este componente??

jhonny 29-03-2007 18:37:44

Hasta donde se a través de ese componente no puedes reproducir archivos WAV, pero con ellos puedes capturar las "tramas" que te envían telefonicamente y con ellas reproducir el WAV con otro componente que si lo haga; Necesariamente no tienes que tener toda la funcionalidad que necesitas en un solo componente.


La franja horaria es GMT +2. Ahora son las 00:47:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi