====== Instant Message ======
The Synchronet Instant Message module is used to provide a real-time inter-BBS instant message feature for participating systems.
This module is normally invoked from the [[chat_sec|"Chat" menu]] or from the [[:module:PrivateMsg]] module with the 'I' key.
===== Install =====
==== Chat Menu ====
If you're using the default ''[[chat_sec]]'' menu module, you should already have it installed on that menu (the ''I'' command key).
==== Global Hotkey ====
To get access to instant-message module from virtually //anywhere// within the BBS (e.g. using Ctrl-P), install the (new) [[:module:PrivateMsg]] module in SCFG->System->Loadable Modules->Private Msg (the default, ''privatemsg'', should be all you need):
Private: (T)elegram, (M)essage, (C)hat, (I)nterBBS, or (Q)uit:
==== Logon Event ====
To display a list of currently active users (on other inter-BBS instant message capable systems) during user-logon, add an external program to [[util:SCFG]]->External Programs->Online Programs->Main (or your section of choice)->Available Online Programs... and configure as follows:
Name Synchronet IMSG List
Internal Code SBBSIMSG
Command Line ?sbbsimsg -l
Multiple Concurrent Users Yes
Execute on Event Logon, Only
Pause After Execution Yes
BBS Drop File Type None
All other settings can be left with their default values (No/None/blank).
===== History =====
History of this module/feature:
==== Original (2001) ====
* Queried systems using Finger (TCP port 79)
* Sent message using SMTP-SOML (TCP port 25)
==== Rev 1.11 (2002) ====
* Queried system using both TCP and UDP-Finger (port 79)
* Still sent messages using SMTP-SOML
==== Rev 1.22 (2007) ====
* Queried using SYSTAT/ActiveUser protocol (TCP & UDP port 11) in addition to Finger (TCP and UDP port 79)
* If send via SMTP failed, used MSP protocol (TCP port 18)
==== Rev 1.25 (2009) ====
Removed Finger (both TCP and UDP support), SYSTAT-TCP and SMTP support, so it now *only*:
* Queries using SYSTAT/ActiveUser protocol over UDP port 11
* Sends messages using MSP (TCP port 18)
So, while **originally** the requirements for systems to participate in the instant-message network were:
* Synchronet SMTP Server listening on TCP port 25
* fingerservice.js listing on TCP port 79
**Now**, the requirements are:
* activeuserservice.js (or fingerservice.js) listening on UDP port 11
* mspservice.js listening on TCP port 18
===== List File =====
The heart of the instant message module is the ''[[dir:ctrl]]/sbbsimsg.lst'' file.
This file is generated daily on [[bbs:Vertrauen]] and distributed via FTP as [[ftp://vert.synchro.net/sbbsimsg.lst]].
The event module ''[[dir:exec]]/getimsglst'' is normally run as a timed event (configured in [[util:SCFG]]->External Programs->Timed Events) and used to pull the list file from Vertrauen via FTP, usually daily.
The List File is generated daily on Vertrauen through the use of the ''[[module:sbbslist]].js'' module's ''imsglist'' command-line option. This sbbslist option parses the Synchronet BBS List and finds listed-systems that meet the minimum requirements to be included in the instant-message list and re-generates the ''sbbsimsg.lst'' file.
==== Requirements ====
Since Vertrauen uses its [[http://synchro.net/sbbslist.html|Synchronet BBS List]] as the source of BBSes which may be instant-message capable, the first requirement is that a system is listed in this database.
To have your system listed, either:
- login to Vertrauen and create your BBS entry or,
- preferably, run the [[sbbslist]] module on your own BBS and have it synchronized with Vertrauen and the rest of DOVE-Net or FidoNet via the ''SYNCDATA'' networked message area
The following services **must** also be reachable via the public-Internet for a system to be listed in the Instant Message module List File (''sbbsimsg.lst''):
- SYSTAT/ActiveUser service (using the [[service:Finger]] service) on UDP port 11
- MSP service (using the [[service:MSP]] service) on TCP port 18
This is normally accomplished by adding the following services to a BBS's ''[[dir:ctrl]]/[[config:services.ini]]'' file:
[ActiveUser-UDP]
Port=11
MaxClients=10
Options=UDP | NO_HOST_LOOKUP
Command=fingerservice.js -u
[MSP]
Port=18
MaxClients=10
Command=mspservice.js
You can use [[http://cvs.synchro.net/scanmyports.ssjs|this page]] to help determine if the required services are publicly-reachable on your system.
Once a system is listed in the Synchronet BBS List on Vertrauen and the required services are confirmed publicly-reachable on the Internet, that system should appear in the shared ''sbbsimsg.lst'' file within 24 hours.
===== See Also =====
* [[:config:services.ini]]
* [[:module:sbbslist]]
* [[:module:|Modules]]
* [[:service:finger|Finger Service]]
* [[:service:msp|MSP Service]]
* [[:service:|Services]]
{{tag>tcpip services javascript chat sbbslist instant-messaging nodelist ecweb}}