*** DPIRC 1.7 *** Part of the DPNET series: Internet Software for PowerBBS by Detlef Pleiss Internet: det@goliath.de Compuserve: 74101.755 Download and Online Order: Internet: http://dpsoft.powerbbs.com http://www.abacus2.com Compuserve: GO PBBS Online Support Mailing List: to subscribe send a message to majordomo@mail.msen.com with "subscribe dpsoft" in the body (no quotes) ==================================================================== Files included in package: DPIDENT.EXE - IDENT Server, 16 bit version DPID32.EXE - IDENT Server, 32 bit version DPIRC.DLL - BBS side DLL for ANSI and GUI, 16 bit version DPIRC32.DLL - BBS side DLL for ANSI and GUI, 32 bit version DPIRC2.PA - Caller side GUI DLL DPIRC.ICO - Icon for PowerGenerator Screens DPIRC.INI - Configuration File DPIRC2.INI - Default Configuration for the PA GUI DLL DPIRCHLP.TXT - the ANSI Help File IRCHELP.ZIP - extensive IRC help in POW and TXT format contributed by Daniel Arkey, thanks Dan! POWRCHAT.RTF - Introduction to the Global PowrCHAT Network DPIRC.TXT - This File DPSOFT.TXT - Information about DP Software Products FILE_ID.DIZ - Description for BBS File Lists UPGRADE.TXT - Upgrading from earlier Versions ==================================================================== The Basics of DPIRC DPIRC lets your users take part in the global online chat network called IRC. Realtime chat covering a vast area of topics with thousands of people online. Only requirement besides a running PowerBBS is a working Windows Socket TCP/IP stack, a WINSOCK.DLL (WSOCK32.DLL for 32 bit). The type of connection to your Internet provider doesn't matter, even a dialup connection does the job. DPIRC can call a batch file of your choice in order to establish a connection on demand. This document does not explain how to get your TCP/IP stack up and running. For that you need to refer to the documentation of the TCP/IP software you're using or to your internet provider. On startup the ANSI version of DPIRC will place the user on a default server and channel (IRC name for chat rooms) of your choice. She can start chatting right away. Most online commands are just like in the local chat rooms, while experienced IRC users can still type in commands the way they're used to. The GUI version presents the caller with a configurable choice of server addresses and channel names, so going online is just a matter of a few mouse clicks. The GUI version can handle up to 10 channels plus 10 private chats simultaneously. ==================================================================== Installation If you run 16 bit Windows, copy DPIDENT.EXE to your PowerBBS home directory. If you run Windows95 or NT, you may want to copy DPID32.EXE to your PowerBBS home directory instead. Except if your BBS nodes run on a LAN, connected to the Internet through a Proxy server. In that case read the chapter "DPIDENT.EXE / DPID32.EXE" below. Whenever this manual talks about DPIDENT.EXE, the same is true for DPID32.EXE. Both programs are the same, just 16 bit versus 32 bit. If you run the 16 bit version of PowerBBS, copy DPIRC.DLL to your PowerBBS home directory. If you run the 32 bit version of PowerBBS, copy DPIRC32.DLL to your PowerBBS home directory and there rename it to DPIRC.DLL. Copy DPIRCHLP.TXT to your PowerBBS home directory. Copy DPIRC2.INI to your PowerBBS home directory. Copy DPIRC.INI to your \windows home directory. On networked BBS's have a copy of \windows\dpirc.ini on each machine! Copy DPIRC2.PA to your POWERBBS\SOURCE directory. On one of your PGen screens add a command to run DPIRC as a PA DLL. The command reads "O-DPIRC.DLL". You may want to use DPIRC.ICO for the icon. Using CONFIG add the command to run DPIRC as ANSI DLL to one of your ANSI menus. Start DPIDENT.EXE (DPID32.EXE) and keep it running in the background. Now you're ready to go ahead and start playing with DPIRC. Make sure your Windows Socket TCP/IP stack is running and online (or first read the paragraph about dial-up support). ==================================================================== The Global PowrCHAT Network The default configuration as it comes with the DPIRC distribution connects the caller to the Global PowrCHAT Network, where he can meet callers of other PowerBBS systems. For further information on the Global PowrCHAT Network please read the file PowrCHAT.RTF as enclosed in this distribution. ==================================================================== Running the Program and Customization - ANSI On startup DPIRC establishes a connection to the IRC server named in the DefaultServer= line of DPIRC.INI. The server displays the "Message of the Day" (MOTD). Then the user will be placed automatically on the channel named in the DefaultChannel= line of DPIRC.INI. If that channel didn't exist beforehand, it will be created at that moment. If set, the topic of that channel and a list of persons online will be displayed. After that text typed by other people on that channel will appear on screen. As soon as the user starts typing a ">" prompt appears and the user may type her message or command. Pressing the return key sends the message to the channel or issues the command. Channel input is halted until a message or command is completed. All commands start with a slash "/" character. Input starting with a different character is sent to the channel. Messages to the channel cannot start with a slash. The following commands are implemented in DPIRC (command characters are not case sensitive): /? displays the online help as given in DPIRCHLP.TXT. /Q closes the connection to the server and quits DPIRC. /W (or just pressing enter) displays a list of people online in the current channel. /J <#channel> leaves the current channel and joins the named channel. Names of public IRC channels start with a "#" character. In case the user forgets to type the initial "#" it will be inserted by DPIRC automatically. /L displays a list of channels available on the current server and how much people are online on each channel. /N changes nickname to /S switches to a different server. Parameter is the name (or IP number) of the server to connect to. Optionally a colon ":" followed by the port number to connect to (all without spaces in between) may be added. The default port number for IRC servers is 6667. In case no port number is given, a connection to port 6667 is established. The same channel like on the old server will be joined on the new server. /A sends as an action to the current channel /; sends to privately. is sent to only and not to the public channel. Users familiar with command driven IRC may use the usual commands (like /WHOIS etc.). (Definition of these commands can be found in RFC 1459) Everything starting with a slash "/" is sent as a command to the server (or as a private message to another user), not as a message to the channel. The IRC server all users get connected to initially is set by means of the DefaultServer= entry in DPIRC.INI. You should choose an IRC server near to you, in Internet terms. In Windows95 you can use the "tracert" command to find out about the number of "hops" between you and another machine like an IRC server. Another entry in DPIRC.INI required for the ANSI version is DefaultChannel= , which names the channel your users are sent to on startup. It is up to you what to enter here. You may want to enter something that's related to the main topic of your BBS or just form "your own" channel, in that everytime a user of your BBS goes IRC this channel will be created if it didn't exist beforehand. Another approach to the DefaultChannel= entry is watching out for a well known, existing, busy channel that will engage your users in a lively discussion immediately (i.e. #flirt :) The other customization related entries in DPIRC.INI are: DefaultColor= PBBS code of the text color to be used by DPIRC. Joined= Message text to announce new people joining the current channel. Text is prefixed by the name of that person. Setting this entry to "none" disables the message entirely. Parted= Message text to announce people leaving the current channel. Text is prefixed by the name of that person. Setting this entry to "none" disables the message entirely. LeftIRC= Message text to announce people leaving IRC at all. Text is prefixed by the name of that person. Setting this entry to "none" disables the message entirely. Private= Text to announce a message as private. Text is inserted between the name of the sender of that message and the ">" prompt. You may change the help file DPIRCHLP.TXT to whatever you want. You may use the PBBS color codes within that file. ==================================================================== Running the Program and Customization - PA GUI On startup DPIRC shows it's main dialog, consisting of a text area, the server combo box, two buttons, LIST and JOIN, and the nickname edit box plus change button. The text area will display general commands and messages, the server's message of the day and any messages DPIRC doesn't handle otherwise. Only on first startup DPIRC retrieves the default configuration as given in the DPIRC2.INI in your \powrbbs directory. You can configure up to 10 default server addresses and channel names for your GUI callers. If you didn't supply a DPIRC2.INI file, DPIRC creates one based on the DefaultServer= and DefaultChannel= entries in DPIRC.INI. After the first startup DPIRC at the PowerAccess side keeps track of the last 10 server addresses and channel names a caller visited. In the server field the user may type in a server address, or just use the given default, and by pressing the connect button connect to that server. Both other buttons, LIST and JOIN will pop up another dialog, the channel dialog. Pressing the JOIN button will only pop up that dialog, while LIST also issues the command to list all available channels. Closing the main dialog box will shut down DPIRC. After connecting to the IRC server, the nickname edit box shows the user's nickname which is derived from her name on the BBS. Once connected to a server the user can change her nickname by typing in a new one in the nickname edit box and then pressing the "change" button. On the channel dialog, the channel selection works the same way like the server selection. A channel name can be typed in, pressing the JOIN button will join that channel. Default is the last channel visited. DPIRC keeps track of the last 10 channels visited. The LIST command is the same as for the main dialog. On completion of a LIST command, the text area of the channel dialog displays the available channels. Channelname, number of people in that channel and (if set) TOPIC of that channel are displayed. Double clicking a channel in the text area will join that channel. JOINing a channel will pop up another dialog for that channel. The window title will name what channel the dialog refers to. The largest text area of the channel dialog displays the ongoing chat on that channel. To the right is the list of people (nicknames) on that channel. At the bottom of that dialog you can type in what you want to submit to that channel. Pressing Return or the Send button will send the text you typed in to the channel. Pressing the "as Action" button sends your typing as an action you perform (just try it to get how it works). Closing a channel dialog box will make you leave that channel. In order to initiate a private chat with someone double click her nick name in the names list (at the right). A private chat dialog box very similar to the channel dialog box will pop up. The title of the dialog shows to whom it refers. Text sent / actions performed from that window will be sent privately to that person only. If someone else initiates a private chat with you, a private chat dialog box refering to that person will be opened automatically. The private chat dialog box also contains a "Who is it?" button that retrieves the login information related to that nickname and displays it inside the private chat area. Opening a private chat dialog and using the "Who is it?" button does not yet send any information to the nickname in question, only the send / action buttons do so. So you can safely double click a nickname in a channel and retrieve her login information without actually disturbing the user. ==================================================================== Logging into IRC Servers The most critical part of getting DPIRC to work is the initial login to the IRC server. This login takes two commands to the server that are issued by DPIRC automatically. The first command defines the user's nickname (her chatname). DPIRC uses the first 9 characters of the user's internet address to determine the user's nickname. This works, wether you have internet email installed or not. As nicknames have to be unique throughout IRC it may happen that another IRC user owns that nickname already. In that case DPIRC will add a number to the nickname until one is found that is accepted by the server. Nicknames in DPIRC are limited to 9 characters length. The second command issued by DPIRC when logging into an IRC server consists of user name, client name, server name and user's real name. The username DPIRC sends to the server is the user's internet email address without the "@..." domain part. This works wether you have internet email installed on your system or not. The client name is the internet name of the BBS machine. DPIRC tries to determine that name automatically on startup. In case this attempt fails and you get error messages while logging into an IRC server you may set this name by means of the LocalHost= entry in DPIRC.INI. If this entry is set DPIRC will use it and not try to determine your machine's internet name automatically. The server name is either the DPIRC.INI DefaultServer= entry or the name given by a user's /S - command. By default the real name entry generated by DPIRC when logging into an IRC server will be the same like the user name entry. In case you have internet email installed you may want to set the Domain= line of DPIRC.INI to your internet email domain (i.e. osna.winnet.de). In this case the user's full internet email address on your system will be given as real name parameter. This information can be retrieved from other IRC users by means of the /WHOIS command. In case you don't want it or don't have internet email installed just leave the Domain= entry of DPIRC.INI empty. ==================================================================== DPIDENT.EXE / DPID32.EXE Most IRC servers require verification of the login data using the Identification Protocol (as defined in RFC 1413). DPIDENT.EXE (32bit version: DPID32.EXE) is a a server for that protocol and has to be running in the background in order to make this verification (and thus the login) succeed. DPIDENT is the same for DPIRC, DPLINK and DPPP. Just one copy of DPIDENT per machine works for multiple nodes running the named programs. You may want to put it in your autostart/startup group/folder. Just make sure DPIDENT is running before a user tries to connect to an IRC server that requires Identification Protocol verification. Data exchange between applications and DPIDENT takes place using the file DPIDENT.INI in your \windows home directory. If you have a DPIDENT.INI in your PowerBBS home directory from an older version, you may delete it. You don't need to touch this file but as long as no application (DPIDENT, DPPP, DPIRC or DPLINK) is running, you may delete this file (i.e. during daily maintenance). If your BBS runs on a LAN, connected to the Internet through a Proxy server, DPIDENT can not answer Identification Protocol requests if it is running on the LAN machines, that do not have a direct Internet connection. In that case there is no need to have it running on the LAN machines, but instead have a copy of DPIDENT running in the background on the Gateway machine, the one that runs the Proxy server, the one that has the actual Internet connection. As in that configuration, DPIDENT does not know about the users who logged on to the different BBS nodes, you need to tell it a user name that it should use to answer *all* incoming Identification Protocol requests. In order to so, create a file DPIDENT.INI in the \windows home directory on the Gateway machine, where DPIDENT is running. Using any text editor, like Notepad, enter two lines in that file that read: [DPIDENT] fixedid= For insert whatever identification DPIDENT should send out, i.e. an abbreviation for your BBS name. ==================================================================== Dial-Up Support DPIRC supports dialup connections to your provider in that you can specify the Dialup= path to batch file called on connection requests parameter in DPIRC.INI. This batch file is called everytime a caller wants to connect to a server. The purpose is to initiate a dialup connection in case your Windows Socket stack doesn't dial-on-demand. If you don't need it just leave this parameter empty. During dial-up the "please wait" message taken from the PleaseWait= message to be displayed during dial-up entry in DPIRC.INI is displayed to the caller. ==================================================================== Proxy Support DPIRC supports transparently running through a Proxy server. If your BBS runs multiple nodes on multiple machines on a LAN, while only one of these machines has an actual Internet connection, you may be running a Proxy server on that machine. A Proxy server is the sort of software that most often is advertised like "connect your entire LAN to the Internet with only one dialup account". When going through a proxy, DPIRC connects to IRC servers using the Telnet gateway of your Proxy server. So your Proxy must support forwarding Telnet connections. It is not necessary to configure special TCP bridges or something on the Proxy for DPIRC. When going through the Proxy, DPIRC does not connect to IRC servers directly, but first to the Telnet port of the Proxy server. It assumes to receive some sort of prompt which it answers by sending the Internet address of the IRC server to connect to. Per default it automatically adds a ":6667" to the server name, so it connects to the default IRC port. In order to activate Proxy support, you need to fill in these entries in DPIRC.INI: ProxyAddress= IP address (on the LAN) of your Proxy server ProxyPrompt= text DPIRC waits for before sending the IRC server address ProxyConnected= text from the Proxy server to announce a successful connect DPIRC then connects to the given "ProxyAddress", waits for the given "ProxyPrompt" and then sends the given server address plus port to the Proxy. After it receives the "ProxyConnected" message from the Proxy server it then continues to work with the IRC server as usual. ==================================================================== Overview of DPIRC.INI Parameters [DPIRC] DefaultServer= server to connect to on startup DefaultChannel= channel to be joined on startup DefaultColor= textcolor to be used LocalHost= internet name of BBS computer (default: retrieve automatically) Domain= email domain of your system (optional) Joined= message text to announce people joining the current channel Parted= message text to announce people leaving the current channel LeftIRC= message text to announce people leaving IRC at all Private= text to annotate messages sent to the user privately DialUp= path to batch file called on every connection PleaseWait= message to be displayed during dial-up ProxyAddress= IP address (on the LAN) of your Proxy server ProxyPrompt= text DPIRC waits for before sending the IRC server address ProxyConnected= text from the Proxy server to announce a successful connect ==================================================================== Further Reading RFC 1413 Identification Protocol RFC 1459 Internet Relay Chat Protocol http://www.irchelp.org IRC channel #irchelp ==================================================================== Registration and Disclaimer DPIRC is shareware. It is neither free, nor freeware nor in the public domain. The unregistered version may be distributed freely in its unaltered form. This software is provided as is. Detlef Pleiss disclaims all warranties, either expressed or implied, including but not limited to implied warranties of merchantability, fitness for a particular purpose. In no event will Detlef Pleiss be liable to you for damages, including any loss of data, profits, lost savings, or other incidental or consequential damages arising out of your use or inability to use the software. Use at your own risk. The unregistered version of DPIRC will hang up on the user after some time. An "unregistered" message will appear on screen before hanging up. This restriction and the message will vanish after applying your registration code to DPIRC. Online registration is available at http://addons.powerbbs.com/pleiss.htm and http://www.abacus2.com and via Compuserve GO SWREG, ID 11805. Registration fee is $20. After registering you'll receive a registration code that is valid for your name and your BBS's name. If registering at Compuserve, please additionally send Compuserve mail to 74101.755 stating which program you registered, your name and your BBS's name, as this information will be needed anyway. Registration can not be transferred. If either name or BBS name change a new registration is required. ==================================================================== History of DPIRC: v 1.0 - released: Jun 4 1996 first public release v 1.1 - released: Jun 9 1996 now displays NICK and USER commands added support for changing nicknames enforced 9 character nickname limit added support for actions in channel v 1.2 - released: Aug 5 1996 added 32 bit version added GUI client v 1.3 - released: Aug 9 1996 added nickname change to GUI client v 1.4 - no public release v 1.5 - no public release v 1.6 - released: Sep 13 1996 fixed 32bit version info for PA GUI DLL download fixed login problems with some servers DPIDENT: fixed problem with request format of some servers added WHOIS request to GUI client transmitting DefaultChannel entry to first time GUI users v 1.7 - released: Mar 10 1998 fixed login problem with some servers fixed problem with large channel listings channel operator status changes now display in nick name listing DPPP compatibility moved INI location to \windows made "Joined", "Parted" and "LeftIRC" messages optional now displays channel topics in window titles added the ability to send arbitrary server commands added Proxy support to DPIRC and DPIDENT added DPIRC2.INI default configuration for GUI added information on the Global PowrCHAT Network