Capturar numero telefonico con fivewin

Post Reply
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Capturar numero telefonico con fivewin

Post by jose_murugosa »

Necesito capturar el numero telefonico al recibir una llamada para buscarlo en base de clientes, vi un post que hablaba muy detalladamente de como hacerlo, pero por algun motivo, no puedo encontrarlo con las búsquedas :( .

Cualquier ayuda al respecto o guía se valorará y agradecerá muuuuuuchísimo!!!!! :D

Gracias desde ya.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
Erick Almanza
Posts: 75
Joined: Mon Sep 11, 2006 3:52 pm

Re: Capturar numero telefonico con fivewin

Post by Erick Almanza »

Hola Jose
Revisa si esto te sirve.


#define _DDE_CH
#define _FOLDER_CH
#define _VIDEO_CH
#define _TREE_CH
#define _ODBC_CH



#include "FiveWin.ch"
#include "Tsbrowse.ch"
#include "Report.ch"


#define FULL_SIZE 405
#define HALF_SIZE 260

#define IN_BUFFER 500
#define TERM_SIZE 300

extern Set,Setfocus, GetTextWidth // Blinker stuff

static nComm, cTerminal, oTerminal,OWND,OBRW,oReport
static cNumber
static oSpeaker, oHangDown, oLocalNum, oNumber

static aPredefined

//----------------------------------------------------------------------------//

function Main()

local oDlg, ofig1
local cLocalNum := "123456789"
local oHand
local lOpened := .f.


*----------------------------------------------------------------------------*
cNumber = Space( 20 )
SET 3DLOOK ON
LoadPredPhones()


USE teleFono alias telefono NEW SHARED
GO TOP


DEFINE WINDOW oDLG TITLE "Central Telefonica." FROM 5,5 TO 450,320;
COLOR CLR_BLACK,CLR_CEL

oDLG:bCommNotify = { | nComm, nStatus | BytesAtPort( nComm, nStatus ) }


@1,1 BROWSE OBRW ;
ALIAS "TELEFONO";
COLOR CLR_BLACK,CLR_CEL;
SIZE 975,600 ;
ON DBLCLICK ASUMIR(@obrw);
of oDlg


ADD COLUMN TO BROWSE oBrw DATA TELEFONO->FECHA ;
HEAD "Fecha" ;
SIZE 80 PIXELS

ADD COLUMN TO BROWSE oBrw DATA TELEFONO->HORA ;
HEAD "Hora" PICTURE"99:99";
SIZE 60 PIXELS

ADD COLUMN TO BROWSE oBrw DATA TELEFONO->EXTE ;
HEAD "EXT" ;
SIZE 50 PIXELS

ADD COLUMN TO BROWSE oBrw DATA TELEFONO->CUARTO_ID ;
HEAD "HAB" ;
SIZE 50 PIXELS

ADD COLUMN TO BROWSE oBrw DATA TELEFONO->TELE ;
HEAD "TELEFONO" ;
SIZE 120 PIXELS

ADD COLUMN TO BROWSE oBrw DATA TELEFONO->DURACION ;
HEAD "TIEMPO" PICTURE"99.99" ;
SIZE 40 PIXELS

ADD COLUMN TO BROWSE oBrw DATA TELEFONO->LUGAR ;
HEAD "DESTINO" ;
SIZE 130 PIXELS




oBrw:nHeightCell += 5
oBrw:nHeightHead += 4
oBrw:nLineStyle := 4



ACTIVATE WINDOW oDlg ;
ON INIT ( odlg:maximize(), ;
If( ! lInitModem(), oDlg:End(),),;
EnableCommNotification( nComm, oDlg:hWnd, IN_BUFFER, IN_BUFFER ) );
VALID ( CloseComm( nComm ), .t. )


return nil

//----------------------------------------------------------------------------//

function lInitModem()

local cDcb, nError, nBytes

nComm = OpenComm( "COM1", 1024, 128 )

if ! BuildCommDcb( "COM1:19200,n,8,1", @cDcb )
nError = GetCommError( nComm )
MsgStop( "Error initializing modem!" )
return .f.
endif

if ! SetCommState( cDcb )
nError = GetCommError( nComm )
MsgStop( "Error initializing modem!" )
return .f.
endif

if ( nBytes := WriteComm( nComm, "ATZ0" + Chr( 13 ) ) ) < 0
nError = GetCommError( nComm )
MsgStop( "Error initializing modem!" )
return .f.
endif

return .t.

//----------------------------------------------------------------------------//

function DialNumber( cNumber )

local nBytes := WriteComm( nComm, AllTrim( cNumber ) + Chr( 13 ) )

if nBytes < 0
MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )
endif

return nil

//----------------------------------------------------------------------------//

function SendModem( cMsg )

local nBytes := WriteComm( nComm, cMsg )

if nBytes < 0
MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )
endif

return nil

//----------------------------------------------------------------------------//

function HangUp( lOpen )

oSpeaker:Hide()
oHangDown:Show()
oLocalNum:Show()
SendModem( "ATDT" + If( lOpen, Chr( 13 ), " " ) )

SysRefresh()

return nil

//----------------------------------------------------------------------------//

function HangDown()

SendModem( "ATH" + Chr( 13 ) )
oHangDown:Hide()
oLocalNum:Hide()
oSpeaker:Show()

return nil

//----------------------------------------------------------------------------//

function LoadPredPhones()

local oIni

aPredefined = Array( 8 )

INI oIni FILENAME ".\phone.ini"
GET aPredefined[ 1 ] SECTION "Predefined" ENTRY "1" OF oIni DEFAULT ""
GET aPredefined[ 2 ] SECTION "Predefined" ENTRY "2" OF oIni DEFAULT ""
GET aPredefined[ 3 ] SECTION "Predefined" ENTRY "3" OF oIni DEFAULT ""
GET aPredefined[ 4 ] SECTION "Predefined" ENTRY "4" OF oIni DEFAULT ""
GET aPredefined[ 5 ] SECTION "Predefined" ENTRY "5" OF oIni DEFAULT ""
GET aPredefined[ 6 ] SECTION "Predefined" ENTRY "6" OF oIni DEFAULT ""
GET aPredefined[ 7 ] SECTION "Predefined" ENTRY "7" OF oIni DEFAULT ""
GET aPredefined[ 8 ] SECTION "Predefined" ENTRY "8" OF oIni DEFAULT ""
ENDINI

return nil

//----------------------------------------------------------------------------//

function Predefined( nOrder )

if ! Empty( aPredefined[ nOrder ] )
cNumber = PadR( aPredefined[ nOrder ], 20 )
oNumber:Refresh()
HangUp( .f. )
DialNumber( aPredefined[ nOrder ] )
endif

return nil

//----------------------------------------------------------------------------//

function BytesAtPort( nComm, nStatus )
LOCAL M:=SPACE(80)
local cBuffer := Space( IN_BUFFER )



DEFAULT cTerminal := Space( TERM_SIZE )

ReadComm( nComm, @cBuffer )
*cTerminal = PadR( AllTrim( cTerminal ) + AllTrim( cBuffer ) + CRLF,TERM_SIZE )
cTerminal = AllTrim( cBuffer )


Saludos


erick almanza
pcordonet
Posts: 110
Joined: Sat Jan 30, 2010 8:35 am
Location: Girona

Re: Capturar numero telefonico con fivewin

Post by pcordonet »

Hola,

A lo mejor te serviria lo de este link:

http://groups.google.com/group/comp.lan ... 32c6&pli=1

Pere
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: Capturar numero telefonico con fivewin

Post by jose_murugosa »

Muchas Gracias por sus respuestas!!!!!!
Estaré chequeando y les consulto en un rato.

Gracias!!!! :D
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Capturar numero telefonico con fivewin

Post by cuatecatl82 »

Reviviendo Muertos:

jose_murugosa: Pudo resolver el problema del Identificador de llamadas..?

Alguien tiene un ejemplo operativo..? He provado el ejemplo phone.prg pero me dice "Error de Inicialización del Modem",

Trabajo con un modem 56k HSP56 de PCtel...

Gracias y saludos..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: Capturar numero telefonico con fivewin

Post by Manuel Aranda »

Pues eso, ¿alguien lo ha conseguido? este es un tema recurrente en el foro que aparece de vez en cuando. Yo lo he intentado en varias ocasiones, desafortunadamente con resultados negativos. ¿Sería aplicable a un router ADSL, que supongo es lo que usamos la mayoría?
Un saludo,
Manuel

xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Capturar numero telefonico con fivewin

Post by Willi Quintana »

En mi caso funciona correctamente, bajo ciertas condiciones minimas...
1ro, El MoDem debe tener capacidad para manejar el ID
2do, El proveedor de telefonia debe activar el servicio de Identificador de llamadas

El MoDem que uso es el que se describe en este link
http://www.ascendtech.us/itemdesc.asp?i ... 01&eq=&Tp=
El codigo es este:

Code: Select all

// FiveWin Phone - (c) FiveTech 1993-5
// A.Linares

#include "FiveWin.ch"
#include "Folder.ch"
#include "Phone.ch"

#define FULL_SIZE  405
#define HALF_SIZE  260

#define IN_BUFFER  254 //20
#define TERM_SIZE  300

//extern Set, GetTextWidth // Blinker stuff

static nComm, cTerminal, oTerminal, cComm
static cNumber
static oSpeaker, oHangDown, oLocalNum, oNumber

static aPredefined, cCadena

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oBrw
   local cLocalNum := "123456789"
   local oHand
   local lOpened := .t.
   cCadena := ""

IF ISEXERUNNING( CFILENAME( HB_ARGV( 0 ) ) )                              // evita el doble arranque
  MsgWait("Phone está en Ejecución","---",2)
  Return(Nil)
ENDIF

cComm := "COM3"

   cNumber = Space( 20 )

   SET _3DLOOK ON

   //MsgLogo( "FwPhone", 2 )

   LoadPredPhones()

   if ! File( "phone.dbf" )
      DbCreate( "Phone", { { "LAST",   "C", 30, 0 },;
                           { "FIRST",  "C", 30, 0 },;
                           { "NUMBER", "C", 20, 0 } } )
   endif

   USE Phone

   DEFINE CURSOR oHand RESOURCE "Catch"

   DEFINE DIALOG oDlg RESOURCE "Phone"

   oDlg:bCommNotify = { | nComm, nStatus | BytesAtPort( nComm, nStatus ) }

   REDEFINE BITMAP oSpeaker ID ID_SPEAKER OF oDlg RESOURCE "Speaker" ;
      ON CLICK HangUp( .t. )

   oSpeaker:oCursor = oHand

   REDEFINE BUTTON oHangDown ID ID_HANGDOWN OF oDlg ACTION HangDown()

   REDEFINE GET oLocalNum VAR cLocalNum ID ID_LOCALNUM OF oDlg

   REDEFINE GET oNumber VAR cNumber ID ID_NUMBER OF oDlg

   REDEFINE GET oTerminal VAR cTerminal MEMO ID ID_TERMINAL OF oDlg

   REDEFINE BUTTON ID ID_ONE OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "1", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_TWO OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "2", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_THREE OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "3", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_FOUR OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "4", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_FIVE OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "5", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_SIX OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "6", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_SEVEN OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "7", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_EIGHT OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "8", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_NINE OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "9", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_ZERO OF oDlg ;
      ACTION ( cNumber := PadR( AllTrim( cNumber ) + "0", 20 ),;
               oNumber:Refresh() )

   REDEFINE BUTTON ID ID_MORE OF oDlg ;
      ACTION ( If( ! lOpened,;
             ( lOpened := .t., oDlg:SetSize( 0, FULL_SIZE ) ),;
             ( lOpened := .f., oDlg:SetSize( 0, HALF_SIZE ) ) ), oDlg:Refresh() )

   REDEFINE BUTTON ID ID_PLAY OF oDlg ;
      ACTION If( ! Empty( cNumber ), ( HangUp( .f. ), DialNumber( cNumber ) ),)

   REDEFINE BUTTON ID ID_CLOSE OF oDlg ACTION oDlg:End()

   REDEFINE BUTTON ID ID_BLANK OF oDlg ;
      ACTION ( cNumber := Space( 20 ), oNumber:Refresh(),;
               cTerminal := Space( 50 ), oTerminal:Refresh() )

   REDEFINE BUTTON PROMPT aPredefined[ 1 ] ID ID_PRED1 OF oDlg ;
      ACTION Predefined( 1 )

   REDEFINE BUTTON PROMPT aPredefined[ 2 ] ID ID_PRED2 OF oDlg ;
      ACTION Predefined( 2 )

   REDEFINE BUTTON PROMPT aPredefined[ 3 ] ID ID_PRED3 OF oDlg ;
      ACTION Predefined( 3 )

   REDEFINE BUTTON PROMPT aPredefined[ 4 ] ID ID_PRED4 OF oDlg ;
      ACTION Predefined( 4 )

   REDEFINE BUTTON PROMPT aPredefined[ 5 ] ID ID_PRED5 OF oDlg ;
      ACTION Predefined( 5 )

   REDEFINE BUTTON PROMPT aPredefined[ 6 ] ID ID_PRED6 OF oDlg ;
      ACTION Predefined( 6 )

   REDEFINE BUTTON PROMPT aPredefined[ 7 ] ID ID_PRED7 OF oDlg ;
      ACTION Predefined( 7 )

   REDEFINE BUTTON PROMPT aPredefined[ 8 ] ID ID_PRED8 OF oDlg ;
      ACTION Predefined( 8 )

   REDEFINE LISTBOX oBrw ;
      FIELDS AllTrim( Phone->Last ) + ", " + AllTrim( Phone->First ),;
             Phone->Number ;
      HEADERS "Name", "Number" ;
      ID ID_DATABASE OF oDlg ;
      ON DBLCLICK ( cNumber := Phone->Number, oNumber:Refresh(),;
                    HangUp( .f. ), DialNumber( cNumber ) )

   REDEFINE TABS ID ID_SECTIONS OF oDlg ;
      PROMPTS "&Personal", "&Bussiness", "&Home" ;
      ACTION MsgBeep()

   REDEFINE BUTTON ID ID_ADD OF oDlg ;
      ACTION ( Phone->( DbAppend() ), oBrw:GoTop() )

   ACTIVATE DIALOG oDlg ;
     ON INIT ( oDlg:SetSize( 0, FULL_SIZE ),;  //HALF_SIZE ),;
               oHangDown:Hide(), oLocalNum:Hide(),;
               If( ! lInitModem(), oDlg:End(),),;
               EnableCommNotification( nComm, oDlg:hWnd, IN_BUFFER, IN_BUFFER ) );
     VALID ( CloseComm( nComm ), .t. )

//escribetxt(cCadena)

return nil

//----------------------------------------------------------------------------//

function lInitModem()

   local cDcb, nError, nBytes

   nComm = OpenComm( cComm, 1024, 128 )

   if ! BuildCommDcb( cComm + ":2400,n,8,1", @cDcb )
      nError = GetCommError( nComm )
      MsgStop( "Error initializing modem!", "1" )
      return .f.
   endif

   #ifdef __CLIPPER__
      if ! SetCommState( cDcb )
   #else
      if ! SetCommState( nComm, cDcb )
   #endif
      nError = GetCommError( nComm )
      MsgStop( "Error initializing modem!","2" )
      return .f.
   endif

   if ( nBytes := WriteComm( nComm, "ATZ0" + Chr( 13 ) ) ) < 0
      nError = GetCommError( nComm )
      MsgStop( "Error initializing modem!","3" )
      return .f.
   endif

   WriteComm(nComm, "AT S0=0 X4" + Chr( 13 ) )    // S0=n  n=numero de RINGs para contestar automaticamente
   WriteComm(nComm, "AT #CID=2"  + Chr( 13 ) )    // "AT #CID=1" Activar identificacion de llamada

return .t.

//----------------------------------------------------------------------------//

function DialNumber( cNumber )

   local nBytes := WriteComm( nComm, AllTrim( cNumber ) + Chr( 13 ) )

   if nBytes < 0
      MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )
   endif

return nil

//----------------------------------------------------------------------------//

function SendModem( cMsg )

   local nBytes := WriteComm( nComm, cMsg )

   if nBytes < 0
      MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )
   endif

return nil

//----------------------------------------------------------------------------//

function HangUp( lOpen )

   oSpeaker:Hide()
   oHangDown:Show()
   oLocalNum:Show()
   SendModem( "ATDT" + If( lOpen, Chr( 13 ), " " ) )

   SysRefresh()

return nil

//----------------------------------------------------------------------------//

function HangDown()

   SendModem( "ATH" + Chr( 13 ) )
   oHangDown:Hide()
   oLocalNum:Hide()
   oSpeaker:Show()

return nil

//----------------------------------------------------------------------------//

function LoadPredPhones()

   local oIni

   aPredefined = Array( 8 )

   INI oIni FILENAME ".\phone.ini"
      GET aPredefined[ 1 ] SECTION "Predefined" ENTRY "1" OF oIni DEFAULT ""
      GET aPredefined[ 2 ] SECTION "Predefined" ENTRY "2" OF oIni DEFAULT ""
      GET aPredefined[ 3 ] SECTION "Predefined" ENTRY "3" OF oIni DEFAULT ""
      GET aPredefined[ 4 ] SECTION "Predefined" ENTRY "4" OF oIni DEFAULT ""
      GET aPredefined[ 5 ] SECTION "Predefined" ENTRY "5" OF oIni DEFAULT ""
      GET aPredefined[ 6 ] SECTION "Predefined" ENTRY "6" OF oIni DEFAULT ""
      GET aPredefined[ 7 ] SECTION "Predefined" ENTRY "7" OF oIni DEFAULT ""
      GET aPredefined[ 8 ] SECTION "Predefined" ENTRY "8" OF oIni DEFAULT ""
   ENDINI

return nil

//----------------------------------------------------------------------------//

function Predefined( nOrder )

   if ! Empty( aPredefined[ nOrder ] )
      cNumber = PadR( aPredefined[ nOrder ], 20 )
      oNumber:Refresh()
      HangUp( .f. )
      DialNumber( aPredefined[ nOrder ] )
   endif

return nil

//-------------------------------------------------------------------------------------------
function BytesAtPort( nComm, nStatus )

   local cBuffer := Space( IN_BUFFER ), cBusy, cFech, cHora, cNmro, cTmp

   DEFAULT cTerminal := Space( TERM_SIZE )

   ReadComm( nComm, @cBuffer )

   cBusy := ALLTRIM(cBuffer )

   cCadena += If(!EMPTY(cBusy), cBusy, "")

   cTerminal := PadR( AllTrim( cTerminal ) + AllTrim( cBuffer ), TERM_SIZE )
   oTerminal:Refresh()

   If cBusy = "BUSY"
     SYSWAIT(2)
     HangDown()
   EndIf

   IF SUBSTR(cBusy,1,5) = "DATE="

     cTmp := MEMOTRAN(cBusy)
     cTmp := STRTRAN(cTmp,";","")
     cTmp := STRTRAN(cTmp," ","")

     cFech := SUBSTR(cTmp, AT("DATE=", cTmp), AT("TIME=", cTmp) -1)

     cTmp  := SUBSTR(cTmp, AT("TIME=", cTmp), 256)
     cHora := SUBSTR(cTmp, AT("TIME=", cTmp), AT("NMBR=", cTmp) -1)

     cTmp  := SUBSTR(cTmp, AT("NMBR=", cTmp), 256)
     cNmro := SUBSTR(cTmp, AT("NMBR=", cTmp), 256)

     escribetxt( cFech + " " + cHora + " " + cNmro )

   EndIf

return nil

//----------------------------------------------------------------------------//
Function EscribeTxt(cTxt, cFile, lModo, cRuta)
local hHandle, cTxTmp, lOk
DEFAULT cFile := "llamadas.txt"
DEFAULT lModo := .f.
DEFAULT cRuta := ""

lOk := .f.
If lModo
  cTxTmp := " "
  If File(cFile)
    hHandle := FOpen(cFile)
    FRead(hHandle, @cTxTmp, 64000)
    FCLose(hHandle)
    cTxt := ALLTRIM(cTxTmp) + CHR(13) + CHR(10) + cTxt
  EndIf
EndIf

hHandle := FCREATE(cFile)
FWrite(hHandle,cTxt)
FClose(hHandle)

Return(lOk)
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Capturar numero telefonico con fivewin

Post by cuatecatl82 »

Gracias Willy:

Reviso el ejemplo que envias y comento, según he visto el módem que estoy usando tiene la característica de identificar llamadas e incluso con el comando AT#CID=1, el proveedor de telefonía local esta habilito el servicio de identificador, puesto que en la casa del propietario tiene un teléfono con identificador integrado y si muestra en pantalla el nombre de la persona que llama y que esta registrado en la memoria del telefono, siempre y cuando no se desconecte de la toma de corriente electrica jejeje.

El modem que pretendo usar no es PCI Express como el que usas, la tarjeta madre de la pc que usa mi cliente es algo viejita, todavia usa los PCI y en el caso del modem un puerto CNR (Comunication Network Riser), sería cuestión de provar con varios modems, cosa que no puedo pues solo tengo este por lo pronto...

Manuel Aranda:

Pienso a mi modesta forma de pensar y en mis vagos conocimientos que sería un tanto complicado identificar el número de llamada mediante un modem ADSL, hay varios factores a comentar y solventar puesto que la interface de comunicación de una PC al modem es via Wifi o Ethernet, si a esto le agregamos que la conexión está protegida por un firewall y una IP, nos daria algo más de trabajo saber este dato que si tuvieramos directamente conectado el modem a un puerto de nuestra PC.


Mi idea es que teniendo el modem conectado a mi PC, este reciba en la entrada "Line" la señal del proveedor para identificar el número de telefono que realizó la llamada, y abrir automaticamente una ventana en mi sistema para capturar el pedido, mientras que en la salida "Phone" se conecte el teléfono para contestar la llamada y recibir el pedido del cliente, como cuando usabamos el ancho de banda de 56k para internet.

Hasta donde he investigado, es posible identificar con ayuda del modem el número al segundo tono de llamda, todavia no lo he comprobado, pues no paso de intentar establecer comunicación con el modem.

Me gustaría y si no es mucho pedir a los que tienen esto solucionado, compartieran un video para saber como se comporta el identificador con sus sistemas, así como sus esperiencias y soluciones..


De todas maneras, entre más se comente tendriamos más de donde encontrar solución a este tema...
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Capturar numero telefonico con fivewin

Post by cuatecatl82 »

Colegas: De Nuevo con esto...

Resulta que al fin pude hechar a volar este sample del identificador de llamadas, resolvi de otra forma el problema de comunicación con el modem, pues no he encontrado el driver adecuado, y re-utilizando mi vieja laptop de 32mb en ram y 456 Mhz que trae un modem hsp56 mr pctel via, le instale xp sp3, con su correspondiente driver para hacer pruebas, dudando de que fuera posible dicha azaña: corri el ejemplo que da arriba Willi y mi laptop que lo levantó sin problemas, escucho la bocina del modem haciendo comunicación con la aplicación, puedo marcar desde el mismo ejemplo, escucho los tonos de marcado y hasta cuando me contestan.

Animado de que todo hiba de maravilla esperé a que entrara una llamada para conocer como funcionaba, pero me lleve una desagradable sorpresa, resulta que el teléfono timbro 2 veces, el programa lo identificó como "RING" pero nunca supe que numero era el que habia marcado, desconosco si algo falta o si algo hize mal, la linea de mi cliente tiene el servicio de identificador de llamadas activo, puesto que en su telefono de mesa si lo muestra, el modem soporta la identificación de llamadas puesto que la instrución AT#CID=1 marca OK.

Si alguien tiene una imagen de como les funciona y conoce más el porque no logro identificar el número y me explica se lo agraeceré,

Image

Saludos.. :cry: :oops: :wink: :roll: :lol: :lol: :x
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Databaselab2002
Posts: 142
Joined: Sun Oct 09, 2005 1:36 am

Re: Capturar numero telefonico con fivewin

Post by Databaselab2002 »

Estimado Victor

Pudiste resolver el problema , me ocurre lo mismo que a vos Gracias , el modem soporta caller id en hyperterminal
funciona perfecto

Gracias
Fabian
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Capturar numero telefonico con fivewin

Post by cuatecatl82 »

Que tal Fabian:

Ufff despues de meses de no postear se siente bien responder de nuevo al foro, desgraciadamente no pude seguir con el proyecto, pues no encontre solución, y el tiempo de espera del proyecto se agoto, la verdad no se si alguien más haya solucionado, le he estado dando vueltas estos dias de nuevo pero no doy, la aplicación detecta la llamada pero la señal telefónica no me devuelve el numero entrante.

Ojala y alguien más nos de una luz, si de algo te sirve lo que tengo te lo puedo proporcionar. Saludos..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Databaselab2002
Posts: 142
Joined: Sun Oct 09, 2005 1:36 am

Re: Capturar numero telefonico con fivewin

Post by Databaselab2002 »

Victor

Ya encontre la solucion , Gracias

Fabian
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Capturar numero telefonico con fivewin

Post by cuatecatl82 »

Fabian:

Que gusto que te halla funcionado, porfa comentame como lo solucionaste, me interesa terminar esta parte que aún esta pendiente.. Gracias. :P :P
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Post Reply