/* 
 EASys! (c) Tom Neidhardt, Since 1995
 
 Start TCP/IP Client 
*/

OPTIONS FAILAT 30
OPTIONS RESULTS

SampleDir='EASys!:voice/'
Sample=SampleDir'Telefon-Wahl.8SVX'
sound_dialing='run >NIL: ${RefTable/Sound-Voice}' Sample

IF EXISTS('ENV:Flags/TCP-connecting') THEN EXIT 0
IF EXISTS('ENV:Flags/TCP-active') THEN EXIT 0

ADDRESS COMMAND 'setenv Flags/TCP-connecting 1'

TCPstack="${RefTable/Net-TCPIP}"
TCPport=MyGetENV("RefTable/Net-TCPIP-RX-Port")
TCPconnect=MyGetENV("RefTable/Net-TCPIP-RX-Connect")
TCPstatus=WORD(MyGetENV("RefTable/Net-TCPIP-RX-Status"),1)
TCPisonline=WORD(MyGetENV("RefTable/Net-TCPIP-RX-Status"),2)
TCPshow=MyGetENV("RefTable/Net-TCPIP-RX-Show")
TCPhide=MyGetENV("RefTable/Net-TCPIP-RX-Hide")

ClearFlags='execute EASys!_bin:network/TCP/Stop-TCP_ClearFlags.script'
SetFlags='run >NIL: execute EASys!_bin:network/TCP/Start-TCP_SetFlags.script'

IF ~(SHOW('P', TCPport)) THEN
DO
  ADDRESS COMMAND TCPstack

  CALL DELAY(150)
END
ELSE
DO
  ADDRESS value TCPport
  TCPstatus

  IF RC=TCPisonline THEN
  DO
    ADDRESS value TCPport
    TCPhide

	ADDRESS COMMAND SetFlags

    EXIT 0
  END
  ELSE
  DO
    ADDRESS value TCPport
    TCPshow
    TCPconnect

  END
END

DO FOREVER
   ADDRESS value TCPport
   TCPstatus

   IF RC=TCPisonline THEN LEAVE

   ADDRESS COMMAND sound_dialing

   CALL DELAY(150)

   IF ~(SHOW('P',TCPport)) THEN
   DO
     ADDRESS COMMAND 
	 'flush'
     ClearFlags
	 	 
     EXIT 0 /* Exit and cleanup if TCP/IP is closed by user while dialing */
   END
END


ADDRESS value TCPport
TCPstatus

IF RC=TCPisonline THEN 
DO
 ADDRESS value TCPport
 TCPhide

 ADDRESS COMMAND SetFlags
END

CALL DELAY(80)
EXIT 0

/*----------------------------------------------------------------*/
MyGetENV:     PROCEDURE
PARSE ARG name

TheFile = "ENV:" || name
IF (open(TEMPFILE, TheFile, 'read')) THEN
DO
 ENVvalue = READLN(TEMPFILE)
 Result = close(TEMPFILE)
END
ELSE
 ENVvalue = ''

RETURN ENVvalue

