La Web del Programador: Comunidad de Programadores
 
    Pregunta:  33469 - VERIFICAR EL ESTADO DE UNA LINEA TELEFONICA CON VISUAL BASIC
Autor:  charly jaja
He probado con el control mscomm de visual basic 6.0, tambien con los comandos hayes(ATDT; ATH; etc.) y no logro hacer que mi proyecto detecte un cambio en la linea telefonica a la cual esta conectado el modem con el cual quiero monitorear el estado, estoy muy perdido en el tema, me hablaron de las api del modem, de las tapi y no se que hacer, el objetivo del programa es que al producirse un cambio en la linea (ya sea que se levante la horquilla de un telefono, que se digite un numero para hacer una llamada, o el cambio de voltaje que se produce en la linea, etc, etc.) se active el modem y me permita registrar ese cambio de estado.
Ya lo hice funcionar como contestador, con el evento ring, como telefono ingresando un numero y llamando a otro modem/telefono, pero no puedo registrar los cambios de salida de la linea.
Si alguien me puede ayudar le estaria muy agradecido, el proyecto va a ser un programa free que permita entre otras cosas grabar una llamada telefonica entrante y saliente de forma automatica, contestadora, para enviar archivos por la linea, etc.
les envio saludos y les pido que si alguien sabe como se hace que me lo comunique, chau a todos y disculpen la molestia.

  Respuesta:  jorge rusconi
Charly:
Hace algún tiempo estuve trabajando en algo parecido en Visual FoxPro. El proyecto quedó inconcluso pero llegué a lo que necesitás. Utilicé un componente shareware llamado vtapi (podés buscarlo en internet) que basicamente resuelve la interacción con TAPI, la api que gestiona la interacción con el módem. El único problema es de hardware, no se puede verificar el estado de la línea sin abrir el puerto, lo que es similar a descolgar el teléfono.
Lo que pude hacer es, con un control timer, descolgar, verificar si lo que hay es tono u otra cosa y colgar. Si hay sonido pero no tono significa que alguien está hablando, grabo el sonido en un archivo wav (tambien mediante vtapi) y corto cuando no hay sonido. Este procedimiento ocupa la linea por un par de segundos cada cierto tiempo, pero no se puede resolver, al menos con hardware estándar.
Todo esto se puede hacer (aunque mas complicado) con la librería tapi disponible en win98 sin usar vtapi, que por otra parte no es free.
Grabar las llamadas entrantes es mas fácil porque el módem detecta el ring, e inclusive la librería vtapi tiene soporte para CallerId si lo tienes contratado.