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

Modem Emulator

Contents:

- AT Command Interpreter
- Saving your Settings
- Modem Messages

Entering AT Commands

AT Command Interpreter

cFos allows you to run modem software with ISDN by acting as a "translator" between such applications and the ISDN CAPI. To this end, cFos emulates a modem that uses AT commands like "ATD" for dial-up and "AT&V" to display present configuration. This also means that control of both CAPI and cFos is handled by the cFos Modem Emulator. You can find more information on AT Commands here (in german).

You can call up the emulator's online help by starting any terminal program capable of displaying 2kByte pages and entering "AT?".

In addition to common AT modem commands, the emulator also employs a set of custom commands to configure ISDN-specific functions and other advanced features cFos offers.
Regular modem functions are emulated through basic commands, but these cannot be used for setting any of cFos' advanced features. Please note as well that some commands are ignored altogether, since they would work only for a real modem (e.g., "ATM" for configuring the modem speaker or T/P for switching between tone and pulse dialing).
Advanced AT commands are cFos-specific and are as such not compatible with other modems. They are easy to recognize, because they all start with "&." If you modify an init string for cFos, please make sure to check all "&" commands carefully.

On top of that, there is also a set of registers that lets you customize the way cFos works. Note though that many AT commands manipulate registers and vice versa. There are also a few registers that can be used to modify the effect of AT commands. A comprehensive list of all commands and registers, each with a brief description, can be found in a file called modem.txt.

Listed in detail below are all "ATI..." commands with which the modem emulator allows you to get information about the last connection:

ATI0
Information on cFos and CAPI versions, buffer size and protocol support.
ATI1
cFos Status Line.
ATI2
Information about the last connection – "Last inbound call" will display caller ID, requested service indicator and requested additional service indicator, as well as requested EAZ of the last caller. The number of units you will be charged for on your last call will be displayed by "Last outbound call" under "Charge." What caused your last disconnection will be shown under "Last disconnect."
ATI4
Message Dump – Info on the 10 most recently saved CAPI messages that contain W-elements other than date/time and charging information according to 1.TR.6. Thus, caller IDs that "knocked" during the last connection will be displayed.
ATI5
Information on the number of charging units and time (cFos/DOS only).
ATI6
Collection of operating system-specific data – including display of all COM ports running cFos with an asterisk marking the one actually used.
ATI7
Some statistics regarding the most recent synchronous PPP connection.

The following text messages (helpful in diagnosing the cause of connection breakdown) may be displayed by ATI2 along with numeric CAPI information under "Last disconnect:"

Message TextExplanation
  
ActiveAn application requested cFos shut down the connection.
By remoteEither the remote or CAPI hung up.
Disconnect B3 timeoutThe safety timer has been activated.
Disconnect D timeoutThe safety timer has been activated.
CAPI resetThe safety timer has been activated and a CAPI reset has been executed (as a measure of last resort).
Connect timeoutMaximum time specified in S7 was exceeded before a connection could be established.
Inactivity timoutMaximum time specified in S19 passed without any data transfer.
Appendage resetThe last connection was triggered by an ISDN appendage function.
DTR dropThe last connection was terminated by an application deactivating DTR.
Dynamic CCBThe last connection was shut down for reasons of economy due to insufficient data transfer.
Connect abortedThe last connecting attempt was interrupted by an application.
"+++"-Sequence"+++ATH0" was used to hang up.
ATH commandAn "ATH" command was used to hang up.
Time/Charge LimitDisconnection as a result of reaching maximum connection time/cost limits set with modem registers S60--S63.
CAPI errorCAPI has returned an error. The connection was terminated for security reasons. Please check your CAPI installation and install a new CAPI version if neccessary.
Baud rateHung up by INT 14 function 0 ("Set baud rate").
Pwd mismatchToo many password attempts on a remote config port.
Low DTRDTR-signal DTR was inactive on the port.
Port closeThe port has been closed. See register S10.11 to change that.
Remote configInterruption by a remote config port.
Status windowInteractive disconnection on the status window.


Saving your Settings

For a regular modem, settings are saved to the modem's permanent RAM (NVRAM) with the "AT&W" command, while entering "ATZ" will have these read back out. Since cFos has no such NVRAM, these settings are instead saved to a file on your hard disk drive.

This file is called PROFILE and can be found in the cFos directory. It contains all profiles saved by using "AT&Wn" (n=0..9). Correspondingly, each profile can be returned by "ATZn." If no specific value has been assigned to "n," cFos saves/returns profile number 0.

Profile number 0 will be loaded by cFos during startup for all ports. Therefore, it contains all 'Power On' default values for the 'Modem'. That is why configuration of this profile should be kept simple to allow for stable and reliable operation.

Note: In case you run cFos on more than one port, you can use the same profile for all ports (if each of them is initialized by "ATZ," that is). However, if this is not what you want, you should assign different numbers to "ATZ" (e.g., "ATZ0"..."ATZ9").
For multiport use, registers S41 (Info-Mask-low) and S42 (Info-Mask-high) will be "mirrored." In other words, if you change these registers for one port, they will be adjusted accordingly for all other ports as well.


Modem Messages

Translation of CAPI messages and error codes is another task the modem emulator serves. This does necessarily result in a loss of information though, as CAPI messages are far more differentiated compared to modem messages. You should also keep in mind that ISDN presents new sources for possible errors (for instance, when services or protocols prove to be incompatible).
CAPI 2.0 messages are all listed in the appendix, together with a brief description of how they relate to modem messages.
cFos can recognize the following modem messages:

NO ANSWER:
The call has been put through, but the remote has not picked it up.
NO DIALTONE:
No dial tone – usually this is due to hardware, CAPI installation, or cable problems.
BUSY:
The call has been relayed, but the remote is busy or has rejected it.
NO CARRIER:
Basically, this is a catch-all for other causes leading to connection attempt failure. Setting register bit S9.6 will additionally return the original CAPI error message.
ERROR:
The modem command is syntactically incorrect, or the values entered in the command are not permissible.
ERROR/B2:
B2 protocol selection led to an error at the CAPI level. This usually means CAPI does not support the respective protocol. For example, if a connection attempt is made using V.110, and CAPI does not support this protocol, this message may appear (in which case cFos blocks the V.110).
ERROR/B3:
B3 protocol selection led to an error at the CAPI level. This usually means CAPI does not support the employed protocol.
ERROR/LISTEN:
The current configuration for what kind of incoming calls will be handled by CAPI or cFos is invalid. In this case, check all values entered for the Serviced SI Mask, Info Mask and Serviced EAZ Mask. Do the same for registers S13, S14, S41 and S42. Some CAPI drivers do not allow multiple applications to "listen" to the same EAZs/MSNs and services. Keep this in mind as well if you have an ISDN Monitor or Call Snooper installed.
ERROR/CAUSE=...:
CAPI returned an error while trying to connect (more on this in Appendix B). This can often be fixed simply by checking modem registers.