Responses

Tells Unimodem what responses it can expect from the modem.

Use a single entry containing exact response, and a binary data structure containing information about response. For example,


HKR, Responses, "CONNECT", 1, 02, 00, 00,00,00,00, 00,00,00,00   

HKR, Responses, "CONNECT 300", 1, 02, 00, 2C,01,00,00, 00,00,00,00

The binary data structure corresponds to the following C structure:


typedef struct MSS {
BYTE  bResponseState;
BYTE  bNegotiatedOptions;
DWORD dwNegotiatedDCERate;
DWORD dwNegotiatedDTERate; 
} MSS;

The bResponseState member has the following values:

Data/Fax modem responses

0x00

OK

The modem accepted the previous command

0x01

Negotiation Progress

Status info about a new connection is being reported

0x02

Connect

A call is connected, the modem is data mode

0x03

Error

The modem rejected the previous command

0x04

No Carrier

The call was disconnected

0x05

No Dialtone

No dialtone is present

0x06

Busy

The dialed modem is busy

0x07

No Answer

The dialed modem did not answer

0x08

Ring

There is an incoming call


Additional VoiceView responses

0x09

SSV

0x0A

SMD

0x0B

SFA

0x0C

SRA

0x0D

SRQ

0x0E

SRC

0x0F

STO

0x10

SVM


Additional Voice responses

0x10000011

Ring duration

Distinctive Ring - length of ring - variable length response

0x10000012

Ring break

Distinctive Ring - length of time between rings - variable length response

0x10000013

Date

Date reported by Caller ID - variable length response

0x10000014

Time

Time reported by Caller ID - variable length response

0x10000015

Number

Number reported by Caller ID - variable length response

0x10000016

Name

Name reported by Caller ID - variable length response

0x10000017

Message

Message reported by Caller ID - variable length response

0x00000018

Single Ring

Single ring distinctive ring

0x00000019

Double Ring

Double ring distinctive ring

0x0000001A

Triple Ring

Triple ring distinctive ring


The VCON modem response should be entered as an OK response from the modem.

The bNegotiatedOptions member specifies information about a connection being made. It is used only for response codes of type Negotiation Progress or Connect. Unimodem recognizes the following values (which may be combined in a single response):

Compression negotiated

0x00000001

Error control negotiated

0x00000002

Cellular protocol negotiated

0x00000008


The only valid values for this member are "0x01, 0x02, 0x03, 0x0a, 0x0b", since you won't see compression unless there is error correction.

The dwNegotiatedDCERate member specifies the modem-to-modem line speed negotiated.

The dwNegotiatedDTERate member is specified only to cause Unimodem to change its DTE port speed. Usually, this is not needed, since modems will make "normal" connections with automatic speed buffering, and the port speed will remain locked. However, for modems that support only direct modes, it is possible to cause Unimodem to lower its DTE speed by specifying a value for NegotiatedDTE.

The Responses keys contain all of the modem's response codes. Unimodem matches against these entries and uses the binary state structure to determine the meaning of the response.

Verbose or numeric response strings can be used. It is important that the verbosity is set in the Init string and that the Responses keys match. In addition, it is usually necessary to include subkeys for the following two response strings, no matter what level of verbosity is used:


OK
ERROR

The modem may return these strings after Unimodem's first few initialization commands, which are sent before Unimodem configures the modem to use numeric response strings. That's pretty good actually. Numeric responses 0-8 may also need to be listed in case Unimodem gets the modem in a numeric response state.

The response strings can contain the following macros:

Carriage Return:

or

Line Feed:

or

Binary:

<hxx> or <Hxx> where xx are two hex digits. Example: <h41> = 'A'.

Less-Than escape:

< <