EPOC   SDK Home Glossary Indexes Previous Next Up

About CommDb


Contents


Overview

Introduced in ER5, CommDb is the EPOC communications database server. This server provides access to an (extensible) database which holds information about Internet Service Providers (ISPs), modems, locations, charge-cards and communications related timeouts.

CommDb replaces DialStore which was offered in ER3. Any existing programs which use DialStore need to note this change. Note that DialStore was not documented for ER3.

The database provides a single repository of communications related information which all communications type software components and applications can access.

The information is held in the form of individual tables within a single database managed by CommDb. The classes provided by CommDb use DBMS in their implementation and it is DBMS which provides the underlying behaviour for handling the database itself. In effect, CommDb is a layer over DBMS.

CommDb allows multiple clients to access concurrently the tables within the communications database. The locking mechanism of the underlying DBMS allows concurrent access by multiple clients while safeguarding the integrity of the database for changes.

CommDb provides the following items in the communications database:


Accessing tables in the database

Section Contents


Opening the database

A client must first access the communications database through DBMS. This is done using the services of a CCommsDatabase object.

A client constructs a CCommsDatabase object using the static NewL() function of the CCommsDatabase class. It then calls the Open() member function of CCommsDatabase to connect to the DBMS and then to open the database on behalf of the client. In common with all servers, the first client to attempt to connect to the server causes that server to start. The database is opened with shared access.

Note that if the communications database does not exist when Open() is called, it is created, with empty tables, before trying to connect to the DBMS.


Building a view on a specific table

Access to an individual table is gained by opening a view on that table. A view is simply a subset of the records (or rows) within a table, selected according to defined criteria. Tables, records, rows, columns etc. are DBMS concepts.

CommDb uses a CCommsDbTableView object to encapsulate a view on a specific table. A client constructs a view using one of the CCommsDatabase member functions:

Each function offers a different way of building a view; for example, OpenTableLC() builds a view where all the records in the table are selected, while OpenViewMatchingUintLC() builds a view where the records are selected based on matching the unsigned integer values in a named column.

All of these functions construct a CCommsDbTableView object which is subsequently used to navigate through the recordset and access individual records.


Navigating the rows in a view

Within a given view, there is always the idea of a cursor which points to a current record. The CCommsDbTableView class offers three functions which allow a client to navigate between records:


Reading to and writing from individual columns in the current record

The CCommsDbTableView class offers functions which allow a client to read from or write to named columns within the current record. There are specific functions for reading and writing columns of: unsigned integer type, boolean type, short length narrow (ASCII) text, short length wide (UNICODE) text and long text (ASCII or UNICODE):

See also column types.


Inserting records and changing existing records

All changes must start with a call to the CCommsDbTableView member functions InsertRecord() or UpdateRecord(), depending on whether a new record is to be inserted or the current record changed, and must complete with a call to either PutRecordChanges() or CancelRecordChanges().

For example, to change two columns of the current record, the following sequence of calls would be coded:

    UpdateRecord()
    WriteUintL()
    WriteTextL()
    PutRecordChanges()

PutRecordChanges() confirms the changes to the record while CancelRecordChanges() causes the changes to be abandoned.

No read type operations can be made while a change to a record is in progress. Any attempt to call a read type function in between, for example, a call to UpdateRecord() and a call to PutRecordChanges(), raises a panic.


Deleting records

Records are deleted by a call to the CCommsDbTableView member function DeleteRecord().

This function is not normally followed by any write operations; in addition, neither of the functions PutRecordChanges() nor CancelRecordChanges() is called after a record is deleted.


Transactions and locking the database

More than one client can concurrently share information in the database without fear of it being changed while in use.

CommDb uses the concept of transactions to implement this, making use of the underlying DBMS mechanism to set the necessary locks.

Within a transaction, a client can safely read records without fear that those records may be changed between successive read operations. A client can also, safely, make changes to the database within a transaction.

The CCommsDatabase class provides three member functions which provide the necessary support for transactions:

BeginTransaction() marks the beginning of a transaction; it tries to get a shared read-lock on the database. Other clients can also get a shared read-lock on the database allowing them to read records concurrently

Once a client has a shared read-lock, any subsequent operation by that client which attempts to write to the database will attempt to upgrade the shared read-lock to an exclusive write-lock on the database; this succeeds only if no other client already has a lock on the database. This behaviour is provided by the underlying DBMS.

CommitTransaction() marks the end of the transaction committing any changes to the table; it unlocks the database, removing the client's shared read-lock if no write operations were performed or the exclusive write-lock if write operations were performed.

RollbackTransaction() marks the end of the transaction but abandons any changes made since the call to BeginTransaction(); it unlocks the database, removing the client's shared read-lock if no write operations were performed or the exclusive write-lock if write operations were performed.

For example, to change two columns of the current record, the following sequence of calls would be coded:

    BeginTransaction()            //Gets a shared read-lock on the database
    UpdateRecord()
    WriteUintL()                  //Tries to upgrade to an exclusive write-lock
    WriteTextL()
    PutRecordChanges()
    CommitTransaction()      //Unlocks database

To read more than one record and guarantee that the content of each record does not change between the read operations, then wrap the set of read operations within a transaction. For example:

    BeginTransaction()            //Gets a shared read-lock on the database
    ReadUintL()
    GotoNextRecord()
    ReadUintL()
    CommitTransaction()      //Unlocks database

No changes are made to the database.

Note that BeginTransaction() and CommitTransaction() are reference counted; this means that a transaction is not committed until CommitTransaction() has been called the same number of times that BeginTransaction() has been called.


Notification service

A notification service is available allowing a client to be notified when significant changes are made to the database by other clients (and also changes made by itself).

The type of change events are those defined by the underlying DBMS used by CommDb. The specific change events are defined by the enumerators of the RDbNotifier::TEvent enumeration defined in d32dbms.h.

As is common with this kind of service, the request is an asynchronous request which is initiated by call to the RequestNotification() member function of CCommsDatabase and remains outstanding until a change to the database occurs or it is cancelled by a subsequent call to the CancelRequestNotification() member function of CCommsDatabase.


The default record

Many of the tables can have a default record. This is just the record which is marked as the default by the client. Usually, this will be the most commonly used record or the last record used in the table.

The way in which a default record is used is determined by the client. For example, in the case of the ISP, it may be the ISP to connect to when no other is specified.

The following specific tables can have a default record:

CommDb maintains the connection between a table name and the Id of that table's default record in an internal table.


Timeout information

CommDb provides suppport for the storage and retrieval of both a client timeout value and a route timeout value.

These values are not accessible from any specific table; instead the CCommsDatabase class provides member functions to set and fetch the values:


Template records

CommDb supports the idea of a template record. A template record contains default values which are used if the corresponding column in a specific record has a NULL value.

The modem configuration table is an example; each record in the table corresponds to a modem. While the amount of information for each modem is large, much of it is common to nearly all modems and can be held in the single template record. Each modem configuration record need only define the information that is specific to that modem. If, for a given modem, the default value for a specific piece of information is sufficient, then that column in that modem's configuration record is NULL.

This behaviour becomes clear when reading a column from a record using the ReadUintL(), ReadBoolL(), ReadTextL() and ReadLongTextLC() member functions of a CCommsDbTableView object.

CommDb provides the CCommsDbTemplateRecord class through which template records can be accessed. They should not be accessed through the other views; indeed, template records are marked as hidden and, by default, are not normally included in the other views.

The modem configuration table, with symbolic name MODEM_CONFIG, is the only table which can have a template record:


Hidden records

When a client inserts or updates a record using the PutRecordChanges() member function of CCommsDbTableView, it can mark the record as hidden. By default, a client cannot see hidden records; i.e. hidden records are excluded from views on tables unless:


Override settings

CommDb offers a facility to clients for holding override values for columns of a table. While CommDb implements this mechanism, it is the client who decides how the overrides are used. CommDb's role is restricted to holding the override values and ensuring that the columns specified by the client exist and are of the correct type.

Override settings are implemented by the CCommDbOverrideSettings class.

While an override value can be specified for almost all column types defined by CommDb, the use of override settings is restricted to the following tables:

A set of override settings, as encapsulated by an instance of the CCommDbOverrideSettings class, can be declared as being either full or partial. The client is free to assign its own meaning to this idea but the usual interpretation is that:

An instance of CCommDbOverrideSettings is declared as full or partial by passing a suitable TParamList parameter to its NewL() construction function.

Override settings are set according to column type, i.e. the class provides a member function for setting each column type, for example SetIntOverride() and SetBoolOverride(). This means that the user of the class must know the type of the column for which an override is being set.

Existing override settings can also be retrieved by using corresponding functions, for example, GetIntOverride() and GetBoolOverride().

The CCommDbOverrideSettings class can also maintain an override setting for the Id of the default record. This is done through the SetIntOverride() member function by passing an empty column name. The function interprets this as a request for setting an override for the Id and checks that the table supports default records.

The CStoreableOverrideSettings class derives from the CCommDbOverrideSettings class and provides additional functionality to allow the override settings to be stored in a CBufStore.

CStoreableOverrideSettings also provides the additional behaviour for streaming to and from memory and may be more suitable for passing the information across threads or across processes.

Note that there is no need to explicitly open the communications database in order to use the override classes. The classes themselves access the communications database, but only to check that the tables and columns being overridden exist.


The tables in the database and the column definitions

Section Contents


Dial-out service table

The table name is defined by the symbol DIAL_OUT_SERVICE in cdbcols.h

The following list itemizes all the columns in this table.

The heading Null? indicates whether a column can be left as NULL when adding a row or rowset to the table.

The heading Column Name indicates the #define symbol used to define the column name; all symbols are defined in cdbcols.h.

A "Text" Type means short text as understood by the underlying DBMS.

Column Name

Description

Type

Null ?

COMMDB_NAME

Name of record for easy identification by the user.

Text

no

COMMDB_ID

A unique id assigned by the server for identification of records by the server.

TUin32

no

COMMDB_DATA_BITS

Data bits for login

TUint8

yes

COMMDB_STOP_BITS

Stop bits for login

TUint8

yes

COMMDB_PARITY

Parity for login

TUint8

yes

ISP_DIAL_RESOLUTION

Perform dialling resolution for default phone number?

TBool

no

ISP_SUGGEST_MODEM

Suggest the modem to be used with this ISP?

TBool

no

ISP_MODEM_ID

ID of suggested modem

TUint32

yes

ISP_DEFAULT_TEL_NUM

Default phone number

Text

yes

ISP_ALT_LOC1

Alt Loc 1:
ID of first location with an alternative phone number

TUint32

yes

ISP_ALT_TEL_NUM1

Alt Tel Num 1:
Phone number to be used for first alternative location

Text

yes

ISP_DIAL_RES_ALT_LOC1

Dial Res Alt Loc 1:
Perform dialling resolution for first alternative phone number?

TBool

no

ISP_ALT_LOC2

Alt Loc 2:
ID of second location with an alternative phone number

TUint32

yes

ISP_ALT_TEL_NUM2

Alt Tel Num 2:
Phone number to be used for second alternative location

Text

yes

ISP_DIAL_RES_ALT_LOC2

Dial Res Alt Loc 2:
Perform dialling resolution for second alternative phone number?

TBool

no

ISP_PROMPT_FOR_LOGIN

Prompt user for username and password?

TBool

no

ISP_USE_LOGIN_SCRIPT

Use login script?

TBool

yes

ISP_LOGIN_SCRIPT

Login script (used if Use Login Script is true)

Text

yes

ISP_LOGIN_NAME

Login name

Text

yes

ISP_LOGIN_PASS

Login Password

Text

yes

ISP_DISPLAY_PCT

Display PCT (without scanning script for READ command)?

TBool

yes

ISP_IF_NAME

Interface name, e.g. "PPP" or "SLIP"

Text

no

ISP_IF_PARAMS

Interface parameter string

Text

yes

ISP_IF_NETWORKS

Comma separated list of network protocols, e.g. "PPP"

Text

yes

ISP_IF_PROMPT_FOR_AUTH

Prompt user for authentication username and password?

TBool

no

ISP_IF_AUTH_NAME

Authentication username used by PPP

Text

yes

ISP_IF_AUTH_PASS

Authentication password used by PPP

Text

yes

ISP_IF_CALLBACK_ENABLED

Callback enabled?

TBool

yes

ISP_IF_CALLBACK_TYPE

Type of callback (if enabled)

TUint32

yes

ISP_IF_CALLBACK_INFO

Info for callback request (if enabled)

Text

yes

ISP_IP_ADDR_FROM_SERVER

Get IP address from server?

TBool

no

ISP_IP_ADDR

IP address of interface

Text

yes

ISP_IP_NETMASK

IP net mask of interface

Text

yes

ISP_IP_GATEWAY

IP address of gateway

Text

yes

ISP_IP_DNS_ADDR_FROM_SERVER

Get DNS addresses from server?

TBool

no

ISP_IP_NAME_SERVER1

IP Address of primary name server

Text

yes

ISP_IP_NAME_SERVER2

IP Address of secondary name server

Text

yes

ISP_IP_HOST_NAME

Internet host name

Text

yes

ISP_IP_DOMAIN_NAME

Internet domain name

Text

yes

ISP_IP_DEFAULT_ROUTE

Make this interface the default route when opened?

TBool

no

ISP_ENABLE_IP_HEADER_COMP_FIELD

Enable IP header compression field?

TBool

yes

ISP_ENABLE_LCP_EXTENSION

Enable LCP extensions?

TBool

yes

ISP_DISABLE_PLAIN_TEXT_AUTH

Disable plain text authentication?

TBool

yes

ISP_ENABLE_SW_COMP_FIELD

Enable software compression field?

TBool

yes

ISP_DESCRIPTION

Application’s description of ISP

Text

yes

ISP_TYPE

ISP type

TUint32

yes


Dial-in service table

The table name is defined by the symbol DIAL_IN_SERVICE in cdbcols.h

The heading Null? indicates whether a column can be left as NULL when adding a row or rowset to the table.

The heading Column Name indicates the #define symbol used to define the column name; all symbols are defined in cdbcols.h.

A "Text" Type means short text as understood by the underlying DBMS.

Column Name

Description

Type

Null ?

COMMDB_NAME

Name of record for easy identification by the user.

Text

no

COMMDB_ID

A unique id assigned by the server for identification of records by the server.

TUin32

no

COMMDB_DATA_BITS

Data bits for login

TUint8

yes

COMMDB_STOP_BITS

Stop bits for login

TUint8

yes

COMMDB_PARITY

Parity for login

TUint8

yes

ISP_USE_LOGIN_SCRIPT

Use login script?

TBool

yes

ISP_LOGIN_SCRIPT

Login script (used if Use Login Script is true)

Text

yes

ISP_AUTHENTICATION

UNUSED (will eventually point to some authentication table/group)

TUint32

yes

ISP_IF_NAME

Interface name, e.g. "PPP" or "SLIP"

Text

no

ISP_IF_PARAMS

Interface parameter string

Text

yes

ISP_IF_NETWORKS

Comma separated list of network protocols, e.g. "PPP"

Text

yes

ISP_IP_ADDR_FROM_SERVER

Get IP address from server?

TBool

no

ISP_IP_ADDR

IP address of interface

Text

yes

ISP_IP_NETMASK

IP net mask of interface

Text

yes

ISP_IP_GATEWAY

IP address of gateway

Text

yes

ISP_IP_DNS_ADDR_FROM_SERVER

Get DNS addresses from server?

TBool

no

ISP_IP_NAME_SERVER1

IP Address of primary name server

Text

yes

ISP_IP_NAME_SERVER2

IP Address of secondary name server

Text

yes

ISP_IP_HOST_NAME

Internet host name

Text

yes

ISP_IP_DOMAIN_NAME

Internet domain name

Text

yes

ISP_IP_DEFAULT_ROUTE

Make this interface the default route when opened?

TBool

no

ISP_ENABLE_IP_HEADER_COMP_FIELD

Enable IP header compression field?

TBool

yes

ISP_ENABLE_LCP_EXTENSION

Enable LCP extensions?

TBool

yes

ISP_DISABLE_PLAIN_TEXT_AUTH

Disable plain text authentication?

TBool

yes

ISP_ENABLE_SW_COMP_FIELD

Enable software compression field?

TBool

yes

ISP_DESCRIPTION

Application’s description of ISP

Text

yes

ISP_TYPE

ISP type

TUint32

yes


Modem configuration table

This table contains general, data and fax initialisation strings for modems. However, it also includes information about the AT control strings required to effect a host of modem actions (such as changing the modem monitor volume level).

For a general discussion on how EPOC expects to interact with modems and a more detailed discussion of comms related topics including fax, see the EPOC Communications Technical Paper.

This table supports the use of a template record. The template record is intended to contain information which is common to most modems. The modem configuration records will, therefore, be small, only containing the columns whose values differ from default values contained in the template record.

CommDb does not supply a template record for this table; however, a template record is created by the EPOC control panel.

The information listed under the heading Suggested Template Value in the following list, gives a suggested default value for that column in the template record; i.e. it is the value which is assumed when that same column in the specific modem configuration record is NULL.

The table name is defined by the symbol MODEM_CONFIG in cdbcols.h.

The heading Null? indicates whether a column can be left as NULL when adding a row or rowset to the table.

The heading Column Name indicates the #define symbol used to define the column name; all symbols are defined in cdbcols.h.

A "Text" Type means short text as understood by the underlying DBMS.

Column Name

Description

Type

Suggested Template Value

Null?

COMMDB_NAME

Name of record for easy identification by the user.

Text

 

no

COMMDB_ID

A unique id assigned by the server for identification of records by the server.

TUin32

 

no

COMMDB_DATA_BITS

Data bits

TUint8

EData8

no

COMMDB_STOP_BITS

Stop bits

TUint8

EStop1

no

COMMDB_PARITY

Parity

TUint8

EParityNone

no

MODEM_RATE

Baud rate

TUint32

EBps115200

no

MODEM_HANDSHAKING

Handshaking

TUint32

0

yes

MODEM_PARITY_ERROR

Parity error

TUint32

KConfigParityErrorIgnore

yes

MODEM_FIFO

FIFO

TUint8

EFifoEnable

yes

MODEM_SPECIAL_RATE

Special rate

TUint32

0

yes

MODEM_TERMINATOR_COUNT

Terminator count

TUint8

2

yes

MODEM_TERMINATOR0

First terminator character

TUint8

0x0a

yes

MODEM_TERMINATOR1

Second terminator character

TUint8

0x0d

yes

MODEM_TERMINATOR2

Third terminator character

TUint8

none

yes

MODEM_TERMINATOR3

Fourth terminator character

TUint8

none

yes

MODEM_XON_CHAR

Xon character

TUint8

0

yes

MODEM_XOFF_CHAR

Xoff Character

TUint8

0

yes

MODEM_PARITY_ERROR_CHAR

Parity error character

TUint8

0

yes

MODEM_SIR_ENABLE

SIR enable

TUint8

ESIRDisable

yes

MODEM_SIR_SETTINGS

SIR settings

TUint32

0

yes

MODEM_MODEM_INIT_STRING

General Modem initialisation string

Text

AT

yes

MODEM_DATA_INIT_STRING

Data Initialisation string

Text

AT

yes

MODEM_FAX_INIT_STRING      

Fax Initialisation string

Text

AT

yes

MODEM_DIAL_PAUSE_LENGTH

Dial Pause Length:
The command to modify the pause created during dialling using the comma character (‘,’).

Text

S8=

yes

MODEM_CARRIER_TIMEOUT

Carrier Timeout:
Command to set the time out the modem uses when establishing a link before giving up and returning to command mode

Text

S7=

yes

MODEM_AUTO_ANSWER_RING_COUNT

Auto Answer Ring Count:
Command to set the number of rings before modem auto answers.

Text

S0=

yes

MODEM_SPEAKER_VOL_CONTROL_LOW

Speaker Volume Control Low:
Command to set the modem speaker volume to low.

Text

L0

yes

MODEM_SPEAKER_VOL_CONTROL_MEDIUM

Speaker Volume Control Medium:
Command to set the modem speaker volume to medium.

Text

L1

yes

MODEM_SPEAKER_VOL_CONTROL_HIGH

Speaker Volume Control High:
Command to set the modem speaker volume to high.

Text

L2

yes

MODEM_SPEAKER_ALWAYS_OFF

Speaker Always Off:
Command to set the modem speaker off.

Text

M0

yes

MODEM_SPEAKER_ON_UNTIL_CARRIER

Speaker On Until Carrier:
Command to set the modem speaker on until the carrier.

Text

M1

yes

MODEM_SPEAKER_ALWAYS_ON

Speaker Always On:
Command to set the modem speaker on.

Text

M2

yes

MODEM_SPEAKER_ON_AFTER_DIAL_UNTIL_CARRIER

Speaker On After Dial Until Carrier:
Command to set the modem speaker on except during dialling.

Text

M3

yes

MODEM_DIAL_TONE_WAIT_MODIFIER

Dial Tone Wait Modifier:
The dial command modifier to wait for Dial Tone.

Text

W

yes

MODEM_CALL_PROGRESS_1

Call Progress 1:
Disable busy and dial tone detection.

Text

X1

yes

MODEM_CALL_PROGRESS_2

Call Progress 2:
Dial tone detection enabled, Busy detection disabled.

Text

X2

yes

MODEM_CALL_PROGRESS_3

Call Progress 3:
Dial tone detection disabled, Busy detection enabled.

Text

X3

yes

MODEM_CALL_PROGRESS_4

Call Progress 4:
Dial tone and busy detection enabled

Text

X4

yes

MODEM_ECHO_OFF

Switch echo mode off

Text

E0

yes

MODEM_VERBOSE_TEXT

Switch verbose mode on

Text

V1

yes

MODEM_QUIET_OFF

Switch quiet mode off

Text

Q0

yes

MODEM_QUIET_ON

Switch quiet mode on

Text

Q1

yes

MODEM_DIAL_COMMAND_STATE_MODIFIER

Dial Command State Modifier:
Dial command modifier to return to command mode after dialling.

Text

;

yes

MODEM_ON_LINE

Enter on-line mode from on-line command mode.

Text

O

yes

MODEM_RESET_CONFIGURATION

Reset the modem configuration.

Text

Z

yes

MODEM_RETURN_TO_FACTORY_DEFS

Return the modem configuration to its factory defaults.

Text

&F

yes

MODEM_DCD_ON_DURING_LINK

DCD On During Link:
Command the modem to only assert DCD when a carrier is actually detected, i.e. while the link is up.

Text

&C1

yes

MODEM_DTR_HANG_UP

DTR Hang Up:
Command the modem to hang up the current call when the DTE drops the DTR line.

Text

&D2

yes

MODEM_DSR_ALWAYS_ON

DSR Always On:
Command the modem to always assert DSR.

Text

&S0

yes

MODEM_RTS_CTS_HANDSHAKE

RTS CTS Handshake:
Command the modem to use RTS/CTS flow control.

Text

&K3

yes

MODEM_XON_XOFF_HANDSHAKE

Xon Xoff Handshake:
Command the modem to use software flow control.

Text

&K4

yes

MODEM_ESCAPE_CHARACTER

Escape Character:
The character used by the DTE to return to command mode from on-line mode.

Text

+

yes

MODEM_ESCAPE_GUARD_PERIOD

Escape Guard Period:
Command the modem to use a particular escape sequence guard period.

Text

S12=

yes

MODEM_FAX_CLASS_INTERROGATE

Fax Class Interrogate:
Ask the modem which Fax modes are supported

Text

+FCLASS=?

yes

MODEM_FAX_CLASS

Fax Class:
Set the Fax mode

Text

+FCLASS=

yes

MODEM_NO_DIAL_TONE

No dial tone detected

Text

NO DIALTONE

yes

MODEM_BUSY

Busy tone detected

Text

BUSY

yes

MODEM_NO_ANSWER

No answer detected

Text

NO ANSWER

yes

MODEM_CARRIER

Carrier report message

Text

CARRIER

yes

MODEM_CONNECT

Connection report message

Text

CONNECT

yes

MODEM_COMPRESSION_CLASS_5

Compression Class 5 report message

Text

COMPRESSION: CLASS 5

yes

MODEM_COMPRESSION_V42BIS

Compression V.42 bis report message

Text

COMPRESSION: V.42 bis

yes

MODEM_COMPRESSION_NONE

No compression report message

Text

COMPRESSION: NONE

yes

MODEM_PROTOCOL_LAPD

LAPD protocol report message

Text

PROTOCOL: LAPD

yes

MODEM_PROTOCOL_ALT

ALT protocol report message

Text

PROTOCOL: ALT

yes

MODEM_PROTOCOL_ALTCELLULAR

ALT-CELLULAR report message

Text

PROTOCOL: ALT-CELLULAR

yes

MODEM_PROTOCOL_NONE

No protocol report message

Text

PROTOCOL: NONE

yes

MODEM_DEFAULT_PORT_NAME

Default Port Name:
Default comm port to be used if this modem is specified as a connected modem

Text

 

yes

MODEM_DEFAULT_TSY_NAME

Default TSY Name:
Default TSY to be used if this modem is specified as a connected modem

Text

 

yes

MODEM_DEFAULT_CSY_NAME

Default CSY Name:
Default CSY to be used if this modem is specified as a connected modem

Text

 

yes

MODEM_DEFAULT_FAX_CLASS

Default fax class

TUint32

 

no

MODEM_DEFAULT_SPEAKER

Default speaker mode

TUint32

 

no

MODEM_DEFAULT_SPEAKER_VOLUME

Default speaker volume

TUint32

 

no

MODEM_DEFAULT_PAUSE_TIME

Default Pause Time:
Default pause time indicated by the use of the comma character in the dial string

TUint32

 

no


Connected modem table

This table contains information on the connected modem; the table only has one record.

Typically, the record in this table has a corresponding record in the Modem configuration table. The TSY Config Id column (symbol MODEM_TSY_CONFIG_ID) is the link to the Modem Configuration Table.

When this column is set in a record in this table, columns containing default values are copied from the corresponding Modem configuration table record into columns in this record; in addition, other columns from corresponding Modem Configuration Table record are copied to the default record in the Modem preferences table. See the WriteUintL() member function of the CCommsDbTableView class for finer detail.

The table name is defined by the symbol CONNECTED_MODEM in cdbcols.h.

The heading Null? indicates whether a column can be left as NULL when adding a row or rowset to the table.

The heading Column Name indicates the #define symbol used to define the column name; all symbols are defined in cdbcols.h.

A "Text" Type means short text as understood by the underlying DBMS.

Column Name

Description

Type

Null ?

COMMDB_NAME

Name of record for easy identification by the user.

Text

no

COMMDB_ID

A unique id assigned by the server for identification of records by the server.

TUin32

no

MODEM_PORT_NAME

Port Name:
Name of the communications port, e.g. COMM::0

Text

no

MODEM_TSY_NAME

TSY Name:
TSY to be used to communicate with the modem, e.g. HAYES

Text

yes

MODEM_CSY_NAME

CSY Name:
CSY to be used to communicate with the modem, e.g. ECUART

Text

yes

MODEM_TSY_CONFIG_ID

TSY Config ID:
A reference to a TSY specific table containing additional modem information

TUint32

yes


Modem preferences table

A table containing just one record (also marked as the default record) containing preferred modem characteristics.

The table name is defined by the symbol MODEM_PREFS in cdbcols.h

The heading Null? indicates whether a column can be left as NULL when adding a row or rowset to the table.

The heading Column Name indicates the #define symbol used to define the column name; all symbols are defined in cdbcols.h.

A "Text" Type means short text as understood by the underlying DBMS.

Column Name

Description

Type

Null ?

COMMDB_NAME

Name of record for easy identification by the user.

Text

no

COMMDB_ID

A unique id assigned by the server for identification of records by the server.

TUin32

no

MODEM_FAX_CLASS

Preferred fax class

TUint8

no

MODEM_SPEAKER

Preferred speaker mode

TUint8

no

MODEM_SPEAKER_VOLUME

Preferred speaker volume

TUint8

no

MODEM_PAUSE_TIME

Preferred pause time indicated by use of comma character in dial string

TUint32

no


Location table

The table name is defined by the symbol LOCATION in cdbcols.h

The heading Null? indicates whether a column can be left as NULL when adding a row or rowset to the table.

The heading Column Name indicates the #define symbol used to define the column name; all symbols are defined in cdbcols.h.

A "Text" Type means short text as understood by the underlying DBMS.

Column Name

Description

Type

Null ?

COMMDB_NAME

Name of record for easy identification by the user.

Text

no

COMMDB_ID

A unique id assigned by the server for identification of records by the server.

TUin32

no

LOCATION_INTL_PREFIX_CODE

International prefix code

Text

yes

LOCATION_NAT_PREFIX_CODE

National prefix code

Text

yes

LOCATION_NAT_CODE

National code

Text

yes

LOCATION_AREA_CODE

Area code

Text

yes

LOCATION_DIAL_OUT_LOCAL_CODE

Dial Out Local Code:
Number to dial for an outside local line

Text

yes

LOCATION_DIAL_OUT_LONG_DISTANCE_CODE

Dial Out Long Distance Code:
Number to dial for an outside long distance line

Text

yes

LOCATION_DISABLE_CALL_WAITING_CODE

Disable Call Waiting Code:
Code to dial to disable call waiting facility

Text

yes

LOCATION_MOBILE

Mobile phone?

TBool

no

LOCATION_USE_PULSE_DIAL

Use pulse dialling?

TBool

no

LOCATION_PBX_USE_PULSE_DIAL

PBX Use Pulse Dial:
Use pulse dialling when dialling internally?

TBool

no

LOCATION_WAIT_FOR_DIAL_TONE

Wait for the dial tone?

TBool

no

LOCATION_WAIT_FOR_PROCEED_TONE

Wait for the proceed tone?

TBool

no

LOCATION_PAUSE_AFTER_DIAL_OUT

Pause time after dial out

TUint32

no

LOCATION_CHARGECARD_ID

ID of chargecard record to be used at this location

TUint32

yes


Chargecard table

The table name is defined by the symbol CHARGECARD in cdbcols.h

The heading Null? indicates whether a column can be left as NULL when adding a row or rowset to the table.

The heading Column Name indicates the #define symbol used to define the column name; all symbols are defined in cdbcols.h.

A "Text" Type means short text as understood by the underlying DBMS.

Column Name

Description

Type

Null ?

COMMDB_NAME

Name of record for easy identification by the user.

Text

no

COMMDB_ID

A unique id assigned by the server for identification of records by the server.

TUin32

no

CHARGECARD_ACCOUNT_NUMBER

Account number

Text

yes

CHARGECARD_PIN

PIN number

Text

yes

CHARGECARD_LOCAL_RULE

Local Rule:
Order of dialling account number, PIN and phone number for local calls

Text

yes

CHARGECARD_NAT_RULE

Nat Rule:
Order of dialling account number, PIN and phone number for national calls

Text

yes

CHARGECARD_INTL_RULE

Intl Rule:
Order of dialling account number, PIN and phone number for international calls

Text

yes

EPOC       SDK Home Glossary Indexes Previous Next Up