***** *** ** ***** *** ** ** ** ** ** ** ** ** ** ** **** ****** ** **** ** **** ** ***** ** ** ** ** **** ** ** ** ** ** ***** ** ** ***** ** ****** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **** *** ** *** ** *** **** *** ** **** **** Version 0.1 *** Alpha Version *** Chat Server for the AGW Packet Engine By Pedro E. Colla (LU7DID) 2000,2001 Abstract -------- This is a simple Chat Server to be used with the AGW Packet Engine. It accept AX.25 connections from users thru any of the ports defined on the AGW Packet Engine. It could be used in conjunction with the Node program DIGIPLEX to publish the server as a NETROM route and to allow access thru Telnet connections. This documentation is preliminary and aimed to support the initial installation of the early alpha versions. Installation ------------ - Install the distribution file ChatCafenn.EXE (with nn=Version),select some directory of your computer. - Configure the CHATCAFE.INI file from the template provided with the installation. [CHATCAFE] IP_ADDRESS={The IP Address of the machine where AGWPE is, 127.0.0.1 if the same} TCP_PORT=8000 CALLSIGN={Unique Callsign-SSID for the Chat Server} DEBUG={YES to generate a log, NOT otherwise} TRACE={Only if DEBUG=YES the level of logging, 1=Least..4=Highest} LOGFILE=CHATCAFE.LOG TIMEOUT={0 if you want no timeouts, the inactivity timeout in mSecs otherwise} CREATEAREA={YES Allow users to create areas, NOT otherwise} BELL=YES DISABLE= [BEACON] ID=ID VIA= EVERY={Frequency in mSecs to send the beacon, 0 for no beacon} TEXT={Your beacon text} [AREAS] 1=QAP Local 2=AGW Packet Engine 3=APRS 4=Satellites 69=Node Support {Define here the permanent areas you want to feature starting with Area 1, the format is AREA=DESCRIPTION } - Customize the banner to be presented to connecting users at the CHATCAFE.INF file. Other archives you might customize: ERROR.INF Internal Server Error BUSY.INF Can not initiate connection GOODBYE.INF Farewell Message BADPORT.INF Port not allowed to connections HELP.INF Help File Execution --------- Just execute CHATCAFE from the Start/Run to start it manually or make AGWPE to load it on startup. Using the Chat Server --------------------- Users could connect to the Chat Server just connecting with the Callsign-SSID defined for it on the CHATCAFE.INI file Section CHATCAFE entry CALLSIGN. The sysop might access the Chat Server as an user just connecting to it thru the AGWPE LoopBack Port. At connection users are assigned to Area #0 (Root Area) which is automatically created by the Chat Server upon startup. Users could choose to interchange messages right at the Root area or to move to another area; a user could be in just one area at any given moment. New areas could be created by users if the sysop stated the CREATEAREA directive as YES; areas created by users are destroyed when the owner disconnects from the server. Command Set ----------- Commands could be executed by users at any momment and starts with the '/' character; any message starting with '/' will be processed as a command to the Chat Server. The list of commands available are: /B[ye] Disconnect the user from the Chat Server, it also destroys all areas the user created during the session. /C[hannel] {Area#|*} Show the specific area information if informed, all areas if * and current area if no argument is given. /E[xit] Same as /BYE /H[elp] Short help of all commands. /J[oin] {Area#} Join Area number. /L[eave] {Area #} Leave Area Number. /I[nformation] {Topic} Send the content of the file {Topic}.INF if present. /M[essage] {Area # | CallSign-SSID} Send a message to all users on a given area or a private message just to the callsign-ssid. /NA[me] Set the name for an User. /P[ersonal] Set personal information for an user. /Q[uit] Same as /BYE /T[opic] Set the topic for an Area (it's description), could only be executed by the owner of a given area. /W[ho] List all areas and all users per area. /V[ersion] Display the version of the Chat Server software. /F[ollow] {CallSign-SSID} Set the current area as being the same than CallSign-SSID /NE[w] {Area Topic} Creates a temporary area and set it's topic, area number is generated automatically. The area is destroyed when the user disconnect from the server. The callsign-ssid that generates an area become the owner of it. /D[estroy] {Area #} Destroy the Area #, only the owner of an area could destroy it. Executing under DIGIPLEX Node ----------------------------- *** IMPORTANT *** In order for the Chat Server to work with DIGIPLEX a loopback port must be defined on the AGW Packet Engine. The main advantages of running the Chat Server as a NETROM Application of Digiplex are: 1-The node publish the Chat Server as a NETROM route. 2-Users could access the server using NETROM connections. 3-Allows Telnet connections to access the Chat Server. In order to define the Chat server as a NETROM managed application include in the DIGIPLEX.INI file a statement such as: [NETROM.APPLICATION] .... CHAT=4,LU7DID-3,CBROWN .... Change the CallSign-SSID to be the one defined for the Chat Server and pick an ALIAS that suit your taste and local network conventions. You might also define the chat server to be used from the DIGIPLEX CLI by including [CLI.ALIAS] ... CHAT=C 4 LU7DID-3 ... Replace "4" by the number of your LoopBack port as defined on AGWPE. Version History --------------- Build #00 - Initial Release Build #01 - Changed messages into English. Build #02 - Fix connection problem when direct AX.25 connection was attempted. Build #03 - Changed messages information. Build #04 - Messages thru external files & default if not present CHATCAFE.INF Welcome Message ERROR.INF Internal Server Error BUSY.INF Can not initiate connection GOODBYE.INF Farewell Message - Change in /C command, now * is all areas, /C is current area and /C n information about Area 'n'. - Added BELL directive, when YES an ASCII Bell Character (Ctl-G) is added at the end of frames sent (default NOT). - Added FORCENAME directive, when YES the user is reminded to set his/her name with the /NA command. - Added CHATCAFE.USR file, when users set his/her name it's recorded and used on future sessions. Also stores Personal information set with the /P command if set. Build #05 - Added the DISABLE directive on the CHATCAFE.INI file to disable specific ports of the AGWPE to be used to connect the server. DISABLE=2,3 will disable ports 2 and 3 (Ports [1..100]) If the BADPORT.INF file is available it will be sent, a default message otherwise, and the user disconnected. - Added the possibility of the sysop to configure the HELP.INF file, it will be sent if the /H directive is sent by the user. If the file is not present a default message will be sent. - All *.INF files are now located at the directory .\TEXT Disclaimer & License -------------------- CHATCAFE is free for radioamateur and experimental uses, commercial use requires a written consent from me. I could be really sophisticated in legal terms, but in a nutshell use it at your own risk and responsibility. Public information had been used to understand the requirements and the tools used to develop the program; however all components featured on it comes from my own development. I've used the documentation of the G8PZT Router by Paula Dowie as a reference to the main features to implement; but this program isn't interoperable with hers at this time and of course Paula has no responsibility whatsoever on this development. If you need support, have suggestions, encountered some bug or just are willing to provide feedback feel you free to drop a note to: AX.25: LU7DID@LU7DID.#ADR.BA.ARG.SOAM Inet: colla@pec.pccp.com.ar