Page 1 of 1

IDENTIFICADOR DE LLAMADAS DE TELÉFONO

Posted: Tue Oct 16, 2007 3:15 pm
by karinha
Buenas amigos, necesito alguna información sobre: identificador de(llamadas/llamamientos)-> ( calling number identification ), de TELÉFONO.

Como puedo hacer en FIVEWIN FOR XHARBOUR.

Alguién de ustedes tiene un Programa ejemplo que pueda enviarme?

kmt_karinha@pop.com.br

Muchas gracias.

Regards, saludos.

Posted: Wed Oct 17, 2007 12:44 pm
by karinha
Necesito algo +- asi:

/*
* Este e' um programa de demonstracao que utiliza praticamente todas as rotinas
* disponiveis no PARLA!
* A sequencia de escolha das opcoes deste programa reflete a ordem que deve ser
* ser obedecida ao se desenvolver um novo aplicativo, ou seja, ao executa-lo
* voce podera ter uma boa ideia da sequencia de operacoes a seu primeiro progra-
* ma devera seguir.
* Em linhas gerais siga o seguinte roteiro:
* 1. AA_OpenMo
* 2. AA_SelLin ou AA_SelHds
* 3. AA_SpkOn ou AA_SpkOff
* 4. AA_RingCnt ou (AA_SetPref + AA_CallNum) Nao e' necessario para handset
* 5. AA_PlayXX ou AA_RecXX ou AA_TxFax ou AA_RxFax ...
* para encerrar a ligacao AA_Rst
* para encerrar o programa AA_CloseMo
*/

Code: Select all

CLEAR
SET CONFIRM ON
single =  CHR(218) + CHR(196) + CHR(191) + CHR(179) + CHR(217) +;
CHR(196) + CHR(192) + CHR(179) + " "
double = CHR(201) + CHR(205) + CHR(187) + CHR(186) + CHR(188) +;
CHR(205) + CHR(200) + CHR(186) + " "

COM        = 4
ARQUIVO    = "SAAT.71     "
ARQTXT     = "SAAT.TXT    "
ARQPCX     = "SAAT.PCX    "
ARQAPF     = "SAAT.APF    "
ARQFINAL   = "TUDO.APF    "
ARQAPP     = "SAAT.TXT    "
QUEBRA     = 1
ALTARES    = 1
NDIG       = 5
DIGVALIDOS = "0123456789"
num_falar  = "1234567890"
val_falar  = "77,77"
dat_falar  = "01/09/95"
ntoques    = 03
toqatend   = 18
prefixo    = "ATDP       "
telefone   = "0192545433"
nramal     = "0192545433"
toutdisc   = 5000
feed       = 0
prim       = 900
pausai     = 700
comaberta  = 0
linhacmd   = "AT&V                  "
baud       = 9600
parity     = 0
stopbits   = 1
databits   = 7
ctsenab    = 0
xonxoff    = 1
fbaudrate  = 1
fparity    = 2
fdatabits  = 3
fstopbits  = 4
fxonxoff   = 6
fctsenab   = 9
TAM_FONTE  = 80

DECLARE opc1[11]
        opc1[1]  = "Definir a COM"
        opc1[2]  = "Abrir o Modem"
        opc1[3]  = "Ativar Local"
        opc1[4]  = "Ativar Linha"
        opc1[5]  = "Ativar Linha+Speaker"
        opc1[6]  = "Enviar comandos ao Modem"
        opc1[7]  = "Configurar Modem (dados)"
        opc1[8]  = "Fechar o Modem"
        opc1[9]  = "Testar conexao de dados"
        opc1[10] = "Voltar ao menu anterior"
DECLARE opc2[5]
        opc2[1]  = "Gravar um arquivo ate tecla"
        opc2[2]  = "Gravar ate digito discado"
        opc2[3]  = "Tocar um arquivo"
        opc2[4]  = "Tocar arquivo ate digitos"
        opc2[5]  = "Voltar ao menu anterior"
DECLARE opc3[8]
        opc3[1]  = "Definir numero de digitos"
        opc3[2]  = "Definir temporizacao para discar"
        opc3[3]  = "Ativar feedback sonoro"
        opc3[4]  = "Definir tempo p/ primeiro digito"
        opc3[5]  = "Definir pausa interdigital"
        opc3[6]  = "Reconhecer digitos"
        opc3[7]  = "Reconhecer digitos falando"
        opc3[8]  = "Voltar ao menu anterior"
DECLARE opc4[5]
        opc4[1]  = "Falar um numero"
        opc4[2]  = "Falar um valor"
        opc4[3]  = "Falar uma data"
        opc4[4]  = "Falar a hora certa"
        opc4[5]  = "Voltar ao menu anterior"
DECLARE opc5[12]
        opc5[1]  = "Definir numero de toques"
        opc5[2]  = "Atender apos n toques"
        opc5[3]  = "Ligar para um telefone"
        opc5[4]  = "Transferir para um ramal"
        opc5[5]  = "Converter TXT - APF"
        opc5[6]  = "Converter PCX - APF"
        opc5[7]  = "Setup Multi Page FAX"
        opc5[8]  = "Append Page"
        opc5[9]  = "Enviar Fax"
        opc5[10] = "Receber Fax"
        opc5[11] = "Imprimir Fax"
        opc5[12] = "Voltar ao menu anterior"
IF (AA_DriveOn () = 0)	
   CLEAR SCREEN
   @ 1, 0 say "PARLA! nao instalado. Abortando ..."
   CANCEL
ENDIF
DO WHILE .T.
   CLEAR SCREEN
   CLEAR
   offset=5
   @1,0,3,79 BOX double 
   @22,0,24,79 BOX double 
   @2,23 SAY "SAAT - Sistemas de Auto Atendimento"
   SET MESSAGE TO 23 CENTER
   @ 4, offset PROMPT "Modem" MESSAGE "Configuracao, iniciacao e comandos para o Modem"
   @ 4, COL() + offset PROMPT "Arquivos" MESSAGE "Gravacao e Reproducao de arquivos"
   @ 4, COL() + offset PROMPT "Digitos" MESSAGE "Reconhecimento de digitos discados"
   @ 4, COL() + offset PROMPT "Numeros" MESSAGE "Falar sequencia de digitos"
   @ 4, COL() + offset PROMPT "Chamadas" MESSAGE "Ligacoes e Faxes"
   @ 4, COL() + offset PROMPT "Sair" MESSAGE "Voltar para o DOS"
   MENU TO escolha
   IF escolha = 6
      IF comaberta = 1
         AA_RstMode ( COM )
         AA_CloseMo ( COM )
      ENDIF
      CLEAR SCREEN
      CANCEL
   ENDIF
   menupop (escolha)
ENDDO

FUNCTION menupop
PARAMETER opcao
IF opcao = 1
   opcao = ACHOICE (5,5,15,3+30,opc1)
      DO CASE
         CASE opcao = 1 ; defcom ()
         CASE opcao = 2 ; abrcom  ()
         CASE opcao = 3 ; ativhs  ()
         CASE opcao = 4 ; atlinha  ()
         CASE opcao = 5 ; atlinpspk  ()
         CASE opcao = 6 ; comandos ()
         CASE opcao = 7 ; confcom  ()
         CASE opcao = 8 ; fechacom  ()
         CASE opcao = 9 ; testcon ()
      OTHERWISE      ; RETURN
      ENDCASE
ELSEIF opcao = 2
   opcao = ACHOICE (5,15,10,17+30,opc2)
      DO CASE
         CASE opcao = 1 ; gravarq ()
         CASE opcao = 2 ; gravadig ()
         CASE opcao = 3 ; tocarq ()
         CASE opcao = 4 ; tocarqdig ()
      OTHERWISE      ; RETURN
      ENDCASE
ELSEIF opcao = 3
   opcao = ACHOICE (5,28,12,33+35,opc3)
      DO CASE
         CASE opcao = 1 ; defndig ()
         CASE opcao = 2 ; deftemp  ()
         CASE opcao = 3 ; feedback  ()
         CASE opcao = 4 ; primeiro ()
         CASE opcao = 5 ; pausainter ()
         CASE opcao = 6 ; recdig  ()
         CASE opcao = 7 ; recdigpi ()
      OTHERWISE      ; RETURN
      ENDCASE
ELSEIF opcao = 4
   opcao = ACHOICE (5,40,13,45+23,opc4)
      DO CASE
         CASE opcao = 1 ; falnum ()
         CASE opcao = 2 ; falval ()
         CASE opcao = 3 ; faldat ()
         CASE opcao = 4 ; falhor ()
      OTHERWISE      ; RETURN
      ENDCASE
ELSEIF opcao = 5
   opcao = ACHOICE (5,52,16,56+23,opc5)
      DO CASE
         CASE opcao = 1 ; defntoq  ()
         CASE opcao = 2 ; atend ()
         CASE opcao = 3 ; disca ()
         CASE opcao = 4 ; ramal ()
         CASE opcao = 5 ; convtxt ()
         CASE opcao = 6 ; convpcx ()
         CASE opcao = 7 ; setupfax ()
         CASE opcao = 8 ; appendfax ()
         CASE opcao = 9 ; enviaF ()
         CASE opcao = 10 ; recebF ()
         CASE opcao = 11 ; imprimF ()
      OTHERWISE      ; RETURN
      ENDCASE
ENDIF
RETURN

FUNCTION defcom
limpatela ()
@ 8,18,10,30 BOX single
@ 9,19 SAY "Com   :" GET COM PICTURE "9"
READ
RETURN

FUNCTION abrcom
limpatela ()
AA_OpenMo ( COM )
comaberta = 1
@ 23,19 SAY "COM ABERTA !"
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION fechacom
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
AA_RstMode ( COM )
AA_CloseMo ( COM )
comaberta = 0
@ 23,19 SAY "COM FECHADA !"
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION testcon
limpatela ()
IF AA_Connect (COM) = 0
   @ 23,19 SAY "Nao Conectado!"
   @ 23,60 SAY " [<ENTER>]"
ELSE
   @ 23,19 SAY "Conectado!"
   @ 23,60 SAY " [<ENTER>]"
ENDIF
INKEY (0)
RETURN

FUNCTION ativhs
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
AA_SpkOff (COM)
/*** Em modems 33k o handset foi substituido por microfone + caixas (local)
 **   AA_SelHds ( COM )
 **   @ 23,19 SAY "HANDSET ATIVADO!"
****/
AA_SelLoc ( COM )
@ 23,19 SAY "Modo Local Ativado!"
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION atlinha  ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
AA_SeLine (COM)
AA_SpkOff (COM)
@ 23,19 SAY "LINHA ATIVADA!"
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION atlinpspk  ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
AA_SeLine (COM)
AA_SpkOn (COM)
@ 23,19 SAY "LINHA+SPEAKER ATIVADOS!"
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION comandos ()
c = " "
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,60 BOX single
@ 9,19 SAY "Linha de comando: " GET linhacmd PICTURE "@S22 !!!!!!!!!!!!!!!!!!!!!"
READ
@ 12,1,20,79 BOX single
@ 13,2 SAY "Respostas do Modem: "
linhacmd = linhacmd + CHR (13)
@ 23,60 SAY " [<ENTER>]"
RETORNO = AA_FlushRX (com)
RETQRDY = AA_InpQRdy (com)
RETORNO = AA_CmdMode ( linhacmd, com)
RETQRDY = 0
DEVPOS (19, 2)
DO WHILE INKEY(1) != 13
   RETQRDY = AA_InpQRdy (com)
   IF RETQRDY > 0
      RETORNO = AA_ModemAn (com)
      FOR I:=1 TO LEN (RETORNO)
         c = CHR (ASC (SUBSTR (RETORNO, I, 1)) % 128)
         IF c == CHR(13)
            SCROLL (14,2,19,78,1)
            DEVPOS (19, 2)
         ELSEIF c == CHR(10)
            ;
         ELSE
            @ 19, COL() SAY c
         ENDIF
      NEXT
   ENDIF
ENDDO
RETURN

FUNCTION confcom ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,12,50 BOX single
@ 9,19 SAY  "Baud Rate  : " GET baud PICTURE "99999"
@ 10,19 SAY "Stop Bits  : " GET stopbits PICTURE "9"
@ 11,19 SAY "Data Bits  : " GET databits PICTURE "9"
READ
DO CASE
   CASE baud == 110
        baud = 0
   CASE baud == 150
        baud = 1
   CASE baud == 300
        baud = 2
   CASE baud == 600
        baud = 3
   CASE baud == 1200
        baud = 4
   CASE baud == 2400
        baud = 5
   CASE baud == 4800
        baud = 6
   CASE baud == 9600
        baud = 7
   CASE baud == 19200
        baud = 8
   CASE baud == 38400
        baud = 9
   CASE baud == 57600
        baud = 10
   CASE baud == 115200
        baud = 11
ENDCASE
AA_SetSer ( fbaudrate, baud, com)
AA_SetSer ( fparity, parity, com)
AA_SetSer ( fdatabits, databits, com)
AA_SetSer ( fstopbits, stopbits, com)
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION gravarq ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,50 BOX single
@ 9,19 SAY "Nome do Aquivo: " GET arquivo PICTURE "@K !!!!!!!!!!!!"
READ
RETORNO = AA_RecFKey ( arquivo, 3000, com)
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION gravadig ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,12,50 BOX single
@ 9,19 SAY "Nome do Aquivo: " GET arquivo PICTURE "@K !!!!!!!!!!!!"
@ 10,19 SAY "Numero de digitos " GET ndig PICTURE "99"
@ 11,19 SAY "Digitos validos " GET digvalidos PICTURE "9999999999"
READ
RETORNO = AA_RecFDig ( arquivo, ndig, digvalidos, 3000, com)
@ 23,30 SAY "Digitos = "
@ 23,40 SAY RETORNO
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION tocarq  ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,50 BOX single
@ 9,19 SAY "Nome do Aquivo: " GET arquivo PICTURE "@K !!!!!!!!!!!!"
READ
RETORNO = AA_PlayFi ( arquivo, 3000, com)
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION tocarqdig ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,12,50 BOX single
@ 9,19 SAY "Nome do Aquivo: " GET arquivo PICTURE "@K !!!!!!!!!!!!"
@ 10,19 SAY "Numero de digitos " GET ndig PICTURE "99"
@ 11,19 SAY "Digitos validos " GET digvalidos PICTURE "9999999999"
READ
RETORNO = ""
RETORNO = AA_PlayFDi ( arquivo, 3000, com, digvalidos, ndig)
@ 23,30 SAY "Digitos = "
@ 23,40 SAY RETORNO
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION defndig ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,40 BOX single
@ 9,19 SAY "Numero de digitos " GET ndig PICTURE "99"
READ
RETURN

FUNCTION deftemp  ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,60 BOX single
@ 9,19 SAY "Tempo maximo para discar: " GET toutdisc PICTURE "99999"
READ
RETURN

FUNCTION feedback  ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,52 BOX single
@ 9,19 SAY "Feedback [0-desativa  1-ativa] " GET feed PICTURE "9"
READ
RETURN

FUNCTION primeiro ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,58 BOX single
@ 9,19 SAY "Tempo p/ discar primeiro digito " GET prim PICTURE "99999"
READ
RETURN

FUNCTION pausainter  ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,55 BOX single
@ 9,19 SAY "Pausa Interdigital " GET pausai PICTURE "99999"
READ
RETURN

FUNCTION recdig ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
RETORNO = AA_FlushRX (com)
IF prim = 0
   @ 8,18,10,60 BOX single
   @ 9,19 SAY "Reconhecendo digitos ..."
   RETORNO = AA_ReadN (feed, ndig, "0123456789", toutdisc, com)
ELSE
   @ 8,18,10,60 BOX single
   @ 9,19 SAY "Reconhecendo c/ pausa interdigital ..."
   RETORNO = AA_RdNPI (feed, ndig, "0123456789", toutdisc, com, prim, pausai)
ENDIF
@ 9, 19 SAY "                                      "
@ 9, 19 SAY "      Digitos  lidos  =  "
@ 9, 46 SAY  RETORNO
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION recdigpi ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,60 BOX single
@ 9,19 SAY "Reconhecendo digitos ..."
RETORNO = AA_PlayFPI ("playwdig.71", toutdisc, com, "0123456789", ndig, feed, prim, pausai)
@ 9, 19 SAY "      Digitos  lidos  =  "
@ 9, 46 SAY  RETORNO
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION falnum ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,60 BOX single
@ 9,19 SAY "Numero a ser falado: " GET num_falar
READ
RETORNO = AA_Talk (num_falar, com)
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION faldat ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,60 BOX single
@ 9,19 SAY "Data a ser falada: " GET dat_falar PICTURE "XX/XX/XX"
READ
RETORNO = AA_TalkDat (dat_falar, com)
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION falval ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,60 BOX single
@ 9,19 SAY "Valor a ser falado: " GET val_falar PICTURE "XX,XX"
READ
RETORNO = AA_TalkMon (val_falar, 53, com)
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION falhor ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
val_hora = SUBSTR (TIME (), 1, 5)
@ 8,18,10,60 BOX single
@ 9,19 SAY "Falando a hora certa: "
@ 9,41 SAY val_hora
AA_TalkTim (val_hora, com)
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION defntoq  ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,70 BOX single
@ 9,19 SAY "Numero de toques antes de atender: " GET ntoques
READ
RETURN

FUNCTION atend ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 8,18,10,60 BOX single
@ 9,19 SAY "Esperando tocar o telefone."
RETORNO = AA_RingCnt ( com )
DO WHILE (RETORNO < ntoques) .OR. (RETORNO > 18)
   IF RETORNO > 0
      @ 9, 40 SAY RETORNO
      @ 9, 53 SAY " toques"
   ENDIF
   RETORNO = AA_RingCnt ( com )
   IF (INKEY () = 27)
      RETURN
   ENDIF
ENDDO
@ 9,19 SAY "Atendendo e tocando arquivo ...           "
AA_SeLine (COM)
AA_DDCBLOCK (COM)
RETORNO = AA_PlayFi ( arquivo, 3000, com)
@ 9,19 SAY "Desligando ...                           "
AA_RstMode ( COM )
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION disca ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 9,19 SAY "Prefixo de discagem: " GET prefixo PICTURE "XXXXXXXXXX"
@ 10,19 SAY "Numero a chamar: " GET telefone PICTURE "XXXXXXXXXXXX"
@ 11,19 SAY "Toques p/ atender: " GET toqatend PICTURE 99
READ
AA_SetPref ( prefixo, com)
AA_SeLine (COM)
AA_SpkOn (COM)
limpatela ()
@ 8,18,10,70 BOX single
@ 9,19 SAY "Linha+Handset selecionados, chamando..."
RETORNO = AA_CallNum (telefone, toqatend * 500, com)
DO CASE
   CASE RETORNO = 1 ; @ 9,19 SAY "ocupado"
   CASE RETORNO = 2 ; @ 9,19 SAY ""
   CASE RETORNO = 3 ; @ 9,19 SAY "atendeu, tocando saat.71 ...          "
        RETORNO = AA_PlayFi ( "saat.71" , 3000, com)
                  AA_RstMode ( COM )
   CASE RETORNO = 4 ; @ 9,19 SAY "nao atendeu"
   CASE RETORNO = 5 ; @ 9,19 SAY "prefixo de discagem nao ok"
   CASE RETORNO = 6 ; @ 9,19 SAY "tom de discar nao foi reconhecido"
   CASE RETORNO = 7 ; @ 9,19 SAY "nao foi possivel discar"
OTHERWISE      ; RETURN
ENDCASE
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION Ramal ()
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 9,19 SAY "Toques p/ atender: " GET toqatend PICTURE 99
@ 10,19 SAY "Ramal: " GET nramal PICTURE "XXXXXXXXXX"
READ
AA_SeLine (COM)
AA_SpkOn (COM)
@ 8,18,10,70 BOX single
@ 9,19 SAY "Linha+Speaker selecionados, aguardando ligacao ..."
RETORNO = AA_RingCnt ( com )
DO WHILE (RETORNO < ntoques) .OR. (RETORNO > 18)
   IF RETORNO > 0
      limpatela ()
      @ 9, 40 SAY RETORNO
      @ 9, 53 SAY " toques"
   ENDIF
   RETORNO = AA_RingCnt ( com )
   IF (INKEY () = 27)
      RETURN
   ENDIF
ENDDO
@ 9,19 SAY "Atendeu! Informando transferencia de ramal ..."
RETORNO = AA_PlayFi ( "transf.71" , 3000, com)
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
@ 9,19 say "Transferindo a ligacao ..."
RETORNO = AA_Transf (nramal, toqatend * 500, com)
DO CASE
   CASE RETORNO = 1 ; @ 9,19 SAY "ocupado"
   CASE RETORNO = 2 ; @ 9,19 SAY ""
   CASE RETORNO = 3 ; @ 9,19 SAY "atendeu, tocando transf.71 ...          "
        RETORNO = AA_PlayFi ( "transf.71" , 3000, com)
                  AA_RstMode ( COM )
   CASE RETORNO = 4 ; @ 9,19 SAY "nao atendeu"
   CASE RETORNO = 5 ; @ 9,19 SAY "prefixo de discagem nao ok"
   CASE RETORNO = 6 ; @ 9,19 SAY "tom de discar nao foi reconhecido"
   CASE RETORNO = 7 ; @ 9,19 SAY "nao foi possivel discar"
OTHERWISE      ; RETURN
ENDCASE
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION convtxt
limpatela ()
@ 9,19 SAY "Nome do arquivo: " GET ARQTXT PICTURE "@K XXXXXXXXXXXX"
@ 10,19 SAY "Caracteres por linha [80/144]: " GET TAM_FONTE PICTURE "@k 999"
READ
RETORNO = AA_FontSiz (TAM_FONTE)
IF (RETORNO = 0)
   @ 23,19 SAY "Fonte OK !"
ELSE
   @ 23,19 SAY "Fonte NOK !"
ENDIF
RETORNO = AA_ConvTXT ( ARQTXT )
IF (RETORNO = 0)	
   @ 23,19 SAY "Conversao OK !"
ELSE
   @ 23,19 SAY "Conversao NAO OK !"
ENDIF
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION convpcx
limpatela ()
@ 9,19 SAY "Nome do arquivo: " GET ARQPCX PICTURE "@K XXXXXXXXXXXX"
READ
RETORNO = AA_ConvPCX ( ARQPCX )
IF (RETORNO = 0)	
   @ 23,19 SAY "Conversao OK !"
ELSE
   @ 23,19 SAY "Conversao NAO OK !"
ENDIF
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION setupfax
limpatela ()
@ 9,19 SAY "Nome do arquivo: " GET ARQFINAL PICTURE "@K XXXXXXXXXXXX"
READ
AA_MPFStup ( ARQFINAL )
@ 23,19 SAY "OK !"
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION appendfax
limpatela ()
@ 9,19 SAY "Arquivo final: " GET ARQFINAL PICTURE "@K XXXXXXXXXXXX"
@ 10,19 SAY "Arquivo p/ adicionar: " GET ARQAPP PICTURE "@K XXXXXXXXXXXX"
@ 11,19 SAY "Quebra de pagina: " GET QUEBRA PICTURE 9
@ 12,19 SAY "Alta Resolucao: " GET ALTARES PICTURE 9
READ
RETORNO = AA_MPFApp ( ARQFINAL, ARQAPP, QUEBRA, ALTARES )
IF (RETORNO = 0)
   @ 23,19 SAY "OK !"
ELSE
   @ 23,19 SAY "NAO OK !"
ENDIF
   @ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION enviaF
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
@ 9,19 SAY "Nome do arquivo: " GET ARQAPF PICTURE "@K XXXXXXXXXXXX"
@ 10,19 SAY "Fone: " GET TELEFONE PICTURE "XXXXXXXXXX"
READ
ALLTRIM (TELEFONE)
RETORNO = AA_TxFax ( 3000, ARQAPF, TELEFONE, com)
AA_RstMode ( COM )
IF (RETORNO = 0)
   @ 23,19 SAY "Transmissao OK !"
ELSE
   @ 23,19 SAY "Transmissao NAO OK !"
ENDIF
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION recebF
limpatela ()
IF comaberta = 0
   @ 23,19 SAY "ABRA O MODEM ANTES DESTA OPERACAO!"
   @ 23,60 SAY " [<ENTER>]"
   INKEY (0)
   RETURN       
ENDIF
TELEFONE = ""
@ 9,19 SAY "Nome do arquivo: " GET ARQAPF PICTURE "@K XXXXXXXXXXXX"
READ
RETORNO = AA_RxFax ( 3000, ARQAPF, com)
AA_RstMode ( COM )
IF (RETORNO = 0)
   @ 23,19 SAY "Recepcao OK !"
ELSE
   @ 23,19 SAY "Recepcao NAO OK !"
ENDIF
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION imprimF
limpatela ()
tipoimp = 0
ARQUIVO = "SAAT.PRN"
@ 9,19 SAY "Nome do arquivo: " GET ARQAPF PICTURE "@K XXXXXXXXXXXX"
@ 10,19 SAY "Imprimir p/ arquivo: " GET ARQUIVO PICTURE "@K XXXXXXXXXXXX"
@ 11,19 SAY "Tipo de impressora: " GET TIPOIMP PICTURE "@K 9"
READ
AA_PrtFax ( ARQAPF, ARQUIVO, tipoimp)
@ 23,60 SAY " [<ENTER>]"
INKEY (0)
RETURN

FUNCTION limpatela
@ 5,0 CLEAR TO 24,79
RETURN