cFosSpeed is now in new hands. Atlas Tech Solutions now owns, develops, and sells new versions of it
New! By the makers of cFosSpeed: The cFos EVSE

Advanced Features

Contents
- Data Compression
- Inband Negotiation
- Using Mutltiple ISDN Controlers
- FAX Class 2 and Class 2.0 Command Set
- cFos as Multiport FOSSIL
- Remote Configurability
- MTU Settings
- Optional DSL / PPPoE Settings
- Message Waiting Indications
- Entering Parameters
- Computer-Clock Synchronization
- Call Logging
- Leased-Line Support
- User-to-User Data Block
- Security Features
- Connection-Cost Monitoring
- Error Search and Logging

Data Compression

Data compression under cFos will allow you to reach more than 16000 cps per channel for uncompressed data like text files. You can furthermore combine this with CCB, which should boost data transfer to more than 35000 cps when using two channels for transmitting text files!
Loading cFos with "-4" will enable data compression. Memory management will automatically be handled by cFos, reserving sufficient memory for each transfer direction.
Available options are:

-4enables compression for sending and receiving data
-4tactivates compression for sending data only
-4ractivates compression for reception only

As it requires considerable computing power, we recommend you employ data compression only when working on a 486 or faster computer. Please note as well that some telecommunication software may not be designed to handle such high data-transfer rates.

CAPI Data Compression (V.42bis)
CAPI data compression can be enabled with AT command "&Qn" as follows:

&Q0disables data compression in CAPI
&Q1enables data compression in CAPI

 

Using Multiple ISDN Controlers

If your CAPI driver supports more than one ISDN card (or more than one ISDN S0 bus), you can select the controler/S0-bus number with register "S40=z," where z=0 ist the first, z=1 the second controler, and so on.
You can also set the "-o<port>=<controler>" parameter to change that register. Here, "<port>" refers to your COM port number (e.g., "3" for COM3), while "<controler>" represents the S40 controler byte.

Example:
For a board with two S0 buses, you would need four ports (COM3-6).
Since "S40=1" needs to be set for COM5 & 6, you would have to enter "-o5=1 -o6=1" in the cFos parameter line (found under "Feature setup" in the "Configure cFos" menu). Alternatively, you could add "S40=1" as an AT command to the init string for COM5 & 6.


cFos Inband Negotiation

For the purpose of negotiating data compression with the remote, cFos exchanges the following data upon connection:

  • Program name ("cFos"), version and serial number;
  • X.75 frame length and window size;
  • Transfer direction of compressed data.

This procedure is activated by the "AT&K1" modem command. Since it also allows for negotiation of X.75 frame length and window size, we do recommend you set this command – even if you do not plan on employing data compression at all! That way, any X.75 incompatibilities (which can, for instance, occur when the remote won't support a frame length of 2048 byte) can be resolved in advance.

Whether inband negotiation was used after connection is displayed in the cFosstatus line, along with the transfer direction(s) of compressed data:

<-Compression for data reception
->Compression for sending data
<->Compression in both directions
*cFos inband negotiation without compression


FAX Class 2 and Class 2.0 Command Set

It is important to remember in this context that while cFos provides no FAX emulation of its own, it does support CAPI 2.0 FAX functions with a Class 2 and 2.0 Command Set. Please consult the manufacturer to find out what FAX protocols are integrated in the CAPI of your ISDN card.

The following commands are supported by cFos or ignored for compatibility reasons:

FAA, FBOR, FBO, FBS, FBUF, FCC, FCIG, FCLASS, FCQ, FCS, FCT, FCR, FDCC, FDCS, FDIS, FDR, FDT, FEA, FET, FIE, FIP, FIS, FKS, FK, FLID, FLI, FLO, FLPL, FLP, FMDL, FMFR, FMI, FMM, FMR, FMS, FNR, FPHCTO, FPI, FPP, FPR, FPS, FPTS, FREL, FREV, FRQ, FRY, FSPL, FSP

In addition, the following 'registers' are available:

S80
Vertical resolution, 0=normal, 1=high
 
S81
Bit mode:
Bit 0=1
"AT+FCLASS=0" permitted.
Bit 1=1
"AT+FCLASS=1" permitted. For compatibility rasons, cFos will return an "OK" – even though it does not support Class 1.
Bit 2=1
"AT+FCLASS=2" permitted.
Bit 3=1
"AT+FCLASS=2.0" permitted.
Bit 7=1
"+FET" modem response activated.
 
S82
Minimum Scan-Time/Line. Values 0 through 7 can be entered. Some FAX programs do not support hardware flow control but can still be told by this 'register' at what speed FAX lines should be transmitted (0=max. speed).
Please note that before sending FAX data via CAPI, cFos needs to convert them into so-called SFF format. Futhermore, establishing FAX connections, handshake and data transfer under cFos occurs altogether independently from CAPI, which may result in the following limitations:
  1. It is conceivable that CAPI has yet to transmit a single line to a remote FAX device, even though cFos has already received the entire page data.
  2. cFos cannot determine the maximum transfer rate at which an application is supposed to be sending FAX data. This may lead to flow-control problems that can be avoided either by activating "hardware control flow" or by experimenting with different speed settings for register S82 (see above).
  3. It may not always be possible to detect if a page was sent correctly.
  4. "1-D Huffman" is the only data format that can be used.

Note: Hardware control flow must be activated to use Delrina Winfax.

Note: In case CAPI returns no specific BPS rate at all, cFos reports a rate of 2400 BPS. Note that this doesn't have to mean actual connection speed is 2400 BPS. In fact, it's probably still closer to 9600 BPS!


cFos as Multiport FOSSIL

In theory, cFos can support up to 255 different ports. But cFos/Win was compiled for management of up to four COM ports and cFos NT/2000/XP for up to 32. For every COM port, sufficient buffer and memory is automatically reserved during startup. It is also possible to enter port names directly.

Accordingly, there are two modem emulators, which will let you make calls on two systems at the same time. You could also make one call while receiving another on the second port.

In multiport use, MSNs and services to which cFos is supposed to "listen" can be configured separately for each port (with the "AT&L" and "AT&I" commands). Should MSNs or services overlap, there is an automatic ringdown from the first appropriate port to the next.


Remote Configurability

cFos may also be configured by calling cFos on a B channel and adjusting the modem settings from there. Add the "-kk" parameter during cFos startup to enable this kind of remote configurability.

Use "ATB14" to initialize calling cFos.

Press [ENTER], and cFos will send a '#' prompting you to type in your password (default is 'no password').

After successful login, cFos will display a welcome string listing the host name and COM port to which the call has been placed. You can also find out to which port(s) cFos has been assigned by using "ATI6." Entering "AT#Dn" (n=0,1,2,...) will allow you to switch ports accordingly.

Now, you are free to adjust any modem setting including all registers – with the exception of "ATA," which is not available in this mode.

To change the host name, just load cFos with "-nNAME" (default is "cFos").

Note: If you want to use remote configuration with X.31, you will have to load cFos for at least two different ports.

The password can be changed by entering "AT#Kppp," where "ppp" should be replaced with the actual password (which should consist of no more than 10 characters, all in ASCII 33 to ASCII 126, no spaces). The new password is then saved in the RCONFIG file.

In addition, "AT&L" or "AT&A" need to be set so cFos will allow reception of incoming calls, because otherwise a RemoteConfigCall would not be accepted either.

Important Reminder: Please remember that remote configuration of cFos is not possible unless it was loaded with the "-kk" parameter!


MTU Settings

By setting register S99, cFos can reduce the MTU on PPPoE connections. Either add S99=<MTU> to your init string or enter -x99=<MTU> in the parameter line under cFos Setup (replace "<MTU>" with the actual MTU number).

To maximize data thruput, cFos/Win must perform several changes to the IPMTU setting in the registry. This can be disabled by setting the "-km" switch during setup.

cFos checks each side's minimum MRU and uses the smaller value as MTU. That way, you won't have to set "-x99" even if an ISP requires smaller MRUs because of further tunnelling. This will only work as long as the dial-in host tries to negotiate the smaller MRU size. Otherwise, you will need to use "-x99" as described above.


Optional DSL / PPPoE Settings

Enter the PPPoE Service Name with the "S&14" command.
Enter the PPPoE AC-Name with the "S&15" command.

As this lets you choose the broadband POP, it is particularly helpful if you have several DSL accounts with different providers.

More information on DSL can be found in our cFos online documentation.


Message Waiting Indications

cFos supports Message Waiting Indications (MWI). If your CAPI and ISDN switch can relay MWIs, cFos logs and displays them like normal calls, using service 31.

For example, if someone were to leave a message on your T-Net Box, you would get an MWI with caller ID of 08003002424.


Entering Parameters

Parameters are typed into the cFos command line (cf. cFos context menu/cFos configuration/feature setup).

In the command line, you can also set single bits for any S-register with -x<reg>.<bit>=<v>, where <reg> is the number of the register, <bit> the bit number and <v> either 0 or 1.

For instance, "-x74.14=1" would display the inactivity timer.


Computer-Clock Synchronization

via Internet (sntp)

You can have cFos synchronize your computer clock every 18 hours by activating "Time Sync" in the SETUP menu. In addition, this will automatically happen 3 seconds after each Internet login. You also have the option of synchronizing time manually in the cFos context menu.

Already integrated in cFos is a list of free timeservers for each timezone. But if you'd rather get your time from one specific server, just type in its name after "TimeServer=" (in the [cFos] section of the CFOS.INI file), which will prompt the program to use this server exclusively.

via ISDN

During connection, ISDN transmits the current time (using daylight-saving time if applicable, as provided by the TU Braunschweig). This is then compared by cFos with the time shown on the computer clock, and any discrepancy is noted.

cFos will not reset the computer clock automatically though. This has to be done manually either by entering the "AT&T" modem command or by a simple click in the cFos context menu (for cFos/Win and cFos NT/2000/XP). If you do want your computer clock automatically synchronized each time you connect, you should add a "-jt" parameter.

To save you the cost of connecting, cFos can also receive ISDN time in offline mode. However, the clock can only be reset once a connection has been established.

Under cFos NT/2000/XP, time can only be synchronized when a user is logged in.

Advanced options

With option "-m" you can define the maximum deviation between computer clock and ISDN or Internet time (in minutes) up to which the computer clock will still be reset. Thus, the default setting of "-m90" would allow synchronizing of the computer clock only if its current time differs by 90 minutes or less from standard Internet or ISDN time.

In principle, cFos permits parallel use of both time synchronization procedures. But if, for instance, you were to receive an ISDN time update every 12 hours, Internet time synchronization would be disabled.

In case running both sync modes at the same time causes problems, you can deactivate either one by entering:

-ji to disable ISDN time sync
-jn to disable Internet time sync

Obviously, cFos can only receive ISDN date & time if your ISDN provider transmits such information. With some providers like the German Telekom, you may have to request this kind of transmission first. Also note that your CAPI driver must be able to support such time synchronization. The "ATI5" command lets you check how many CAPI messages with time or date information have been transmitted.


Call Logging

cFos can log date, time, caller ID, duration and data transfer volume for each call. This log file can then be used for checking each item on your next phone bill. Detailed step-by-step instructions for using the cFos call monitor can be found here.

Setting the "-Lx" parameter determines the level of detail employed for this protocol:

-L0:
Off
-L1:
Outgoing calls only (with full verification for each connection)
-L2:
Incoming and outgoing calls
-L3:
All, even failed connections, call monitor
-L4:
As above – in addition, the cFos status window or skin will be opened automatically whenever an incoming call is accepted

HINT: Redirected/transferred ISDN calls are indicated as such in the cFos call monitor window.

cFos logs connection data in a file called LOGFILE.TXT (which can be found in the cFos folder). It is written in "comma-delimited ASCII" format, as this can be processed by a wide variety of different software.

Calls either sent to or initiated by cFos are protocoled as follows (the fields are separated by commas with a line break after the last field):

Date
Time
Incoming ("INC") or outgoing ("OUT") call
Call number
Own MSN / EAZ
Number of bytes received
Number of bytes sent
Call charge impulses
Disconnect info (cf. ATI2)
Disconnect-B3 info (cf. ATI2)
Status line 'LEDs'
Reason for disconnection (cf. MODEM.DOC)
Call length (in seconds)
Protocol
BPS rate
Hi-Byte of register S87
Lo-Byte of register S87
Cost, according to register S71/S72

Depending on user properties or software employed, you can activate simple billing either by setting the group ("S87H") or ID register ("S87L"). For this, you are free to assign any number you like to a specific group or ID (e.g., "S87H=4" for group 4.)

The protocol format for incoming calls not meant for cFos is as follows:

Date
Time
"MON"
Caller ID / Call number
Used MSN / EAZ
CIP value, according to CAPI 2.0
Calling subaddress
Called subaddress
BC, LLC, HLC as hex dump

Note for programmers: We have incorporated a call monitor API to permit programming applications that interface with cFos to process call information automatically. This will, for instance, allow you to link any caller ID to a specific name in an address or telephone book. The APPEND.TXT file contains more information on this.

cFos also logs budget resets. The protocol format for budget resets is as follows:

Date
Time
"BSR"
budget number
used seconds
budget seconds total (register S94 in seconds)
amount of received bytes
amount of send bytes


Leased-Line Support

cFos supports leased-line transmission for outgoing calls with register "S114" – but only if your CAPI driver supports it as well and if your ISDN line has been configured accordingly (consult your provider if in doubt).

Settings:

S114L=0Off
S114L=1D64S, first B-channel
S114L=2D64S2, first & second B-channel (128kbps)
S114L=3..30primary multiplexer only: use 3-30 B-channels
S114H=0DTE mode (default)
S114H=1DCE mode

User-to-User Data Block

Command "&S16" will prompt cFos to send one additional data block (128 bytes), which can then be interpreted by the receiving party. Its format can be defined with register "S116:"

Some examples:

S116=0user specific
S116=4IA5 digits

Security Features

What may take some getting used to with ISDN boards is that you can never be quite sure whether a connection is still active or not. Worse yet, if a connection is allowed to remain active when in fact you're not using it, this may lead to a virtual cost explosion that cFos may help avoid with the following features:

  • There is an (in)activity timer integrated in the cFos Modem Emulator. What this means in terms of keeping connection cost down is that you can use "ATS19=..." to define how many minutes can pass without any kind of data transfer before a connection is automatically shut down. Registers "S85" and "S86" allow you to fine-tune this timer even further:

    If register "S86" has been set, any automated response transmitted by your computer without real payload (like PING replies, etc.) will no longer keep the activity timer "alive." By the same token, any data filtered out by the cFos firewall won't be counted toward keeping a connection open.
    We strongly recommend you use this register!

    Setting register "S74.7" will have the timer track seconds of transfer inactivity rather than minutes.

    Setting register "S74.14=1" will display the amount of time remaining until disconnection. This is shown in lieu of connection charges.

  • Upon disconnection, timers will check if CAPI transmits a DISCONNECT_B3_IND or DISCONNECT_IND message. In case this doesn't happen, level B3 and then level D will each be shut down twice at 5-second intervals. Failing that, cFos will log off from CAPI and then log on again. This should get CAPI to terminate all active connections.
  • Upon connection, as is the case with every other modem, a "wait for carrier" timer will kick in. Unless a connection is established within a period of n seconds (which can be set in the "S7" register), cFos will hang up.
  • You may also set connection cost and time limits. Once such a limit is reached, the connection will be closed automatically. More on this can be found under "Dynamic Channel Bundling."

Protection from dialers
Protect yourself against expensive dialers by having cFosblock certain prefixes or warn you when they are being dialed. Find out more about this by clicking here.

Accepting/rejecting certain calls
You can accept or reject calls based on their caller ID (default is to accept all calls). If you want to limit calls that should be accepted to those from certain caller IDs, you will have to create a [callerid] section in the CFOS.INI file, where you can specify them with the "include=" and "exclude=" keys. On any incoming call, cFos will compare the caller ID to those listed in this section. It will then accept or reject the call accordingly. An '*' indicates that all remaining digits will be ignored for the purpose of cross-checking caller IDs. Example:

[callerid]
exclude=*; exclude all numbers
include=0228*; but allow all calls from Bonn
exclude=0228555*; but exclude calls from these numbers
include=0405551234; and allow calls from this number in Hamburg

Combining cFos with server software would allow you, for instance, to let only specific users with fixed caller IDs dial into your computer, which does add another layer of security.

Firewall
The cFos mini firewall protects your PC against simple attacks from the Net. For more info click here.


Connection-Cost Monitoring

cFos offers an easy way of tracking connection cost by entering the following registers as AT command (in German). Please note this will only work if your provider transmits call charge impulses.

S70sets the charge unit value (in cents)
S71total charges: units * S70 (in cents)
S72total charges: units * S70 (in euros, dollars, ...)
S74.11view charges divided by 10 (in cents)

The "&G" will let you review current charges (more detailed instructions are also available):

&G0view total charges (in currency units)
&G1delete total charges

Error Search and Logging

  1. CTRACE.TXT

    Adding "-dvne" to the parameter line will have cFos record all important startup and connection data, which is then written to the cFos directory and logged in a file called CTRACE.TXT. For a discussion of additional protocol options, click here.

    Important: Taking the sensitive nature of such data into account, plaintext passwords are now logged as "???" in CTRACE.TXT. This added security feature can be deactivated with the "-da" switch.

  2. CFSETUP.TXT

    This file is used to record installation data. Please send a copy of it to our Technical Support Team, if you did experience problems installing cFos.