Capturar numero telefonico con fivewin
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Capturar numero telefonico con fivewin
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!!!!!
Gracias desde ya.
Cualquier ayuda al respecto o guía se valorará y agradecerá muuuuuuchísimo!!!!!
Gracias desde ya.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
-
- Posts: 75
- Joined: Mon Sep 11, 2006 3:52 pm
Re: Capturar numero telefonico con fivewin
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
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
Re: Capturar numero telefonico con fivewin
Hola,
A lo mejor te serviria lo de este link:
http://groups.google.com/group/comp.lan ... 32c6&pli=1
Pere
A lo mejor te serviria lo de este link:
http://groups.google.com/group/comp.lan ... 32c6&pli=1
Pere
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Re: Capturar numero telefonico con fivewin
Muchas Gracias por sus respuestas!!!!!!
Estaré chequeando y les consulto en un rato.
Gracias!!!!
Estaré chequeando y les consulto en un rato.
Gracias!!!!
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
- 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
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..
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
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
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Capturar numero telefonico con fivewin
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
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
- Willi Quintana
- Posts: 859
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: Capturar numero telefonico con fivewin
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:
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)
- 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
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...
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
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
- 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
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é,
Saludos..
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é,
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
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
-
- Posts: 142
- Joined: Sun Oct 09, 2005 1:36 am
Re: Capturar numero telefonico con fivewin
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
Pudiste resolver el problema , me ocurre lo mismo que a vos Gracias , el modem soporta caller id en hyperterminal
funciona perfecto
Gracias
Fabian
- 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
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..
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
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
-
- Posts: 142
- Joined: Sun Oct 09, 2005 1:36 am
Re: Capturar numero telefonico con fivewin
Victor
Ya encontre la solucion , Gracias
Fabian
Ya encontre la solucion , Gracias
Fabian
- 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
Fabian:
Que gusto que te halla funcionado, porfa comentame como lo solucionaste, me interesa terminar esta parte que aún esta pendiente.. Gracias.
Que gusto que te halla funcionado, porfa comentame como lo solucionaste, me interesa terminar esta parte que aún esta pendiente.. Gracias.
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
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