This is an old revision of the document!
Callinfo.bbs
External Program Data File (a.k.a. drop file), CALLINFO.BBS
format from the RBBS software.
This file should normally be created in the current node's directory
(example: C:\sbbs\node1
). The current node's directory can be easily passed
to external programs via command line (using the %n command line specifier
in SCFG) or more easily retrieved by external programs be reading the
SBBSNODE environment variable.
The CALLINFO.BBS
is a plain text file consisting of CRLF-delimited lines, parsed one line at a time.
Line | Example | Description | Comment |
---|---|---|---|
01 | Jim Harrer | ||
02 | 5 | ||
03 | Bakersfield, CA | ||
04 | 1000 | ||
05 | 120 | ||
06 | MONO | ||
07 | WCATIS#1 | ||
08 | 1 | ||
09 | 0 | ||
10 | 12:44 | ||
11 | 12:44 05/08/89 | {Changed in v2.0 } | |
12 | ABCDEFGHIJKLMNOYZ | ||
13 | 0 | ||
14 | 100 | ||
15 | 0 | ||
16 | 10 | ||
17 | 555-555-5555 | ||
18 | 05/08/89 12:44 | ||
19 | NOVICE | ||
20 | All | ||
21 | 04/24/89 | ||
22 | 190 | ||
23 | 23 | ||
24 | 808 | ||
25 | 0 | ||
26 | 2 | ||
27 | 8 | { Databits } | |
28 | LOCAL | ||
29 | COM0 | ||
30 | 06/26/58 | ||
31 | 38400 | ||
32 | FALSE | ||
33 | Normal Connection | ||
34 | 05/08/89 13:44 | ||
35 | 1 | ||
36 | 0 |
Datastructure
Most of the original software was written in Pascal. This is a routine to write the file (in Pascal)
procedure Save_Caller_Info;
{ Save the callers information when exiting to a live program or Dropping to DOS from remote. } var FileOut : Text; DateTime : String; OldSlash : Char; begin Assign(FileOut, HomePath+'CALLINFO.BBS'); Rewrite(FileOut); CheckError('Rewriting CALLINFO.BBS'); Update_User_Info_Before_LogOff; with User do begin OldSlash := SlashChar; SlashChar := '/'; WriteLn(FileOut, UserName); { Line 1 } case Baud of B300 : WriteLn(FileOut, '1'); { Line 2 } B1200 : WriteLn(FileOut, '2'); B2400 : WriteLn(FileOut, '0'); B9600 : WriteLn(FileOut, '3'); B19200 : WriteLn(FileOut, '4'); BLocal : WriteLn(FileOut, '5'); end; WriteLn(FileOut, CallingFrom); { Line 3 } WriteLn(FileOut, SecurityLevel); { Line 4 } WriteLn(FileOut, User.TimeLeft); { Line 5 } if ColorMenus then WriteLn(FileOut, 'COLOR') else { Line 6 } WriteLn(FileOut, 'MONO'); WriteLn(FileOut, Password); { Line 7 } WriteLn(FileOut, UserRefNum); { Line 8 } WriteLn(FileOut, TimeOn); { Line 9 } WriteLn(FileOut, TimeStr); { Line 10 } with DateTimeCalled do DateTime := TimeToTimeString('hh:mm', T)+' '+DatetoDateString('mm/dd/yy', D); WriteLn(FileOut, DateTime); { Line 11 } WriteLn(FileOut, ConfJoined); { Line 12 } WriteLn(FileOut, DailyDL); { Line 13 } WriteLn(FileOut, Cfig.SecMaxDL[Array_Level]); { Line 14 } WriteLn(FileOut, Sc(DailyDK)); { Line 15 } WriteLn(FileOut, Sc(Cfig.SecMaxDK[Array_Level]/1024)); { Line 16 } WriteLn(FileOut, User.PhoneNumber); { Line 17 } WriteLn(FileOut, DatetoDateString('mm/dd/yy', TimeDate.D)+Space+ TimeToTimeString('hh:mm', TimeDate.T)); { Line 18 } if User.Xpert = Novice then WriteLn(FileOut, 'NOVICE') else { Line 19 } WriteLn(FileOut, 'EXPERT'); case User.TransferMethod of { Line 20 } All : WriteLn(FileOut, 'All'); Ymodem : WriteLn(FileOut, 'Ymodem'); YmodemG : WriteLn(FileOut, 'Ymodem/G'); Xmodem : WriteLn(FileOut, 'Xmodem'); XmodemCRC : WriteLn(FileOut, 'Xmodem/CRC'); Xmodem1K : WriteLn(FileOut, 'Xmodem-1K'); Xmodem1KG : WriteLn(FileOut, 'Xmodem-1K/G'); ASCii : WriteLn(FileOut, 'Ascii'); end; WriteLn(FileOut, DatetoDateString('mm/dd/yy', LastNew.D)); { Line 21 } WriteLn(FileOut, Sc(TimesOn)); { Line 22 } WriteLn(FileOut, Sc(LinesPerPage)); { Line 23 } WriteLn(FileOut, Sc(UsersHighestMsgRead(HighMsg, ConfJoined))); { Line 24 } WriteLn(FileOut, Sc(Uploads)); { Line 25 } WriteLn(FileOut, Sc(Downloads)); { Line 26 } if DataBits = SevenBits then WriteLn(FileOut, '7 { Databits } ') else WriteLn(FileOut, '8 { Databits }'); { Line 27 } if Local then WriteLn(FileOut, 'LOCAL') else WriteLn(FileOut, 'REMOTE'); { Line 28 } WriteLn(FileOut, 'COM'+Sc(Cfig.CommPort)); { Line 29 } WriteLn(FileOut, DatetoDateString('mm/dd/yy', BirthDate)); { Line 30 } { Write Comm Port Speed } if Cfig.FixedRate then WriteLn(FileOut, Cfig.BaudInit) else WriteLn(FileOut, BaudRate); { Line 31 } WriteLn(FileOut, AlreadyConnected); { Line 32 } if MNP_Connection then WriteLn(FileOut, 'MNP/ARQ Connection') else WriteLn(FileOut, 'Normal Connection'); { Line 33 } with GlobalNinfo.TimeOff do DateTime := DatetoDateString('mm/dd/yy', D)+' '+TimeToTimeString('hh:mm', T); WriteLn(FileOut, DateTime); { Line 34 } WriteLn(FileOut, Cfig.NodeID); { Line 35 } WriteLn(FileOut, DoorNumber); { Line 36 } SlashChar := OldSlash; end; { With } Close(FileOut); CheckError('Closing CALLINFO.BBS File'); end;