3.1.1 Abstract Data Model

This section describes a conceptual model of data organization that a possible implementation would maintain to participate in this protocol.

The following descriptions pertain to the server Fax Queue.

Archive Age Limit: Fax server configuration settings that allow a fax client to configure the fax server to keep faxes in the Fax Archive Folder for a length of time, as opposed to keeping the faxes indefinitely. The fax server initializes the Archive Age Limit to be disabled. The Archive Age Limit setting persists after shutdown or restart of the fax server.<32>

Archive Enabled: Fax server configuration setting that allows a fax client to configure whether the fax server archives faxes to the Fax Archive Folder. There is one Archive Enabled setting, and it applies to both the Incoming Archive and the Outgoing Archive. The fax server initializes the Archive Enabled setting to 1 (enabled).<33> The fax client can disable and re-enable the Archive Enabled setting. The Archive Enabled setting persists after shutdown or restart of the fax server.<34>

Automatic Account Creation: Fax server configuration setting that enables the fax server to automatically create a new Fax User Account when a fax client connects to the fax server. This setting persists after shutdown or restart of the fax server.<35>

Branding: Fax server configuration setting that causes the fax server to generate a fax server implementation-specific brand (banner) at the top of all outgoing fax transmissions. This setting persists after shutdown or restart of the fax server.<36>

Caller ID: A null-terminated character string that identifies the origin of a fax message. This string contains the sender's fax number optionally followed by a name associated with this fax number. The Caller ID string is sent when the fax transmission is being set up but before the fax is received by the recipient. The maximum length of this string is 260 characters, including the length of the terminating null character.

Broadcast Identifier: A DWORDLONG ([MS-DTYP] section 2.2.13) value that uniquely identifies a broadcast fax. All Fax Jobs and all fax messages created for the same broadcast operation share the same Broadcast Identifier. The fax server generates the Broadcast Identifier when a broadcast fax is sent and stores the Broadcast Identifier with each Fax Job in the queue, including the Fax Jobs generated by the fax server for each individual recipient included in the broadcast. The Broadcast Identifiers persist with the fax messages archived in the Fax Archive Folder.

Configuration of the Routing Rules: The list of routing rules for the fax server configuration; each entry in the list includes the following settings:

  • The area code of the routing rule.

  • The country code of the routing rule.

  • The name of the routing group or the device identifier specifying where the routing rule applies.

The Configuration of the Routing Rules persists after shutdown or restart of the fax server.<37>

Connection Handle: A handle created by the fax server to identify a connection to a fax client. The Connection Handle element is associated with an RPC binding handle on the fax server. A connection handle is opened when a new connection to a fax client is made (with the RPC binding handle submitted by the fax client) and closed when the connection to the fax client is terminated. The fax server retains the connection handle for the entire duration of a connection with a fax client. The fax client only uses the connection handle to disconnect from the fax server. Connection handles do not persist after shutdown or restart of the fax server.

Copy Handle: A handle created by the fax server to identify a copy operation started by the fax client to copy data to a file in the server queue directory, copy data from a fax message in the Fax Archive Folder, or copy data from a Fax Job in the server queue directory. The Copy Handle element is associated on the fax server with an RPC binding handle.

A copy handle is opened when a new copy operation is started at the request of the fax client, with the RPC binding handle submitted by the fax client and closed when the copy operation is terminated. The fax server retains a copy handle for the entire duration of a copy operation with a fax client. The fax client uses the copy handle to copy data and to terminate the copy operation. A handle value of 0 or NULL indicates an invalid copy handle. The Copy Handle element does not persist after shutdown or restart of the fax server.

CSID: A null-terminated character string that identifies the fax recipient that receives a fax. The CSID is transmitted to a fax sender by the receiving fax device when an incoming fax is detected. The CSID can be a combination of the fax number and business name. The CSID can be the same as the TSID. The fax server maintains a CSID for each Fax Port. The CSID of a Fax Port persists after shutdown or restart of the fax server.

Current page number: A DWORD ([MS-DTYP] section 2.2.9) that holds the number of the page in the fax transmission that a fax device is currently sending or receiving. The current page number for the first page in the fax transmission is one. If the respective fax device is not currently transmitting a fax, the current page number is zero.

Delivery receipt support: Fax server configuration setting to indicate how the fax sender gets notified when a fax is successfully sent or when the fax transmission fails. Delivery receipt support can be configured in one of the following ways: not to send any delivery receipt, to send the receipt to an email address, to send the receipt to a MAPI profile described in [MSDN-MAPIPRF], or by means of a text message containing a character string sent to the sender's computer as described in the Messenger Service Remote Protocol Specification ([MS-MSRP] section 3.2.4.1). Sending the receipt to a MAPI profile is supported only in FAX_API_VERSION_0 and FAX_API_VERSION_1 protocol versions. This setting persists after shutdown or restart of the fax server.<38>

Device identifier: See line identifier.

Dirty days: Fax server configuration setting that configures the maximum number of days the fax server keeps unsent fax jobs in the outgoing fax queue. This setting persists after shutdown or restart of the fax server.<39>

Document name: A null-terminated character string containing the name of the fax document in a Fax Job. The fax server maintains an optional document name for each Fax Job. The document name is specified by the fax client when the fax client requests the fax server to send a new Fax Job. The document names do not persist after shutdown or restart of the fax server.

Fax access rights: Access rights applicable to the fax user account. The fax access rights are based on and include the standard access rights [MSDN-SAR] and include specific fax access rights for fax-specific purposes such as permission to send a fax. The fax access rights are applied to the fax user account using implementation-specific functionality. The fax access rights applied to a fax user account persist after shutdown or restart of the fax server.

Fax Archive Folder: A file folder (or other type of collection storage) where successfully processed faxes are stored. This item is also known as a fax archive or simply archive. There are two kinds of fax archives, the Outgoing Archive and Incoming Archive; described later in this list. The default location and name of the Fax Archive Folder are specific to each fax server implementation. <40>

Fax Job: Also mentioned as a job. An inbound or outbound fax transmission that is awaiting transmission in the Fax Queue; the Fax Jobs are qualified as inbound or outbound based on this. The Fax Jobs are further qualified as follows: queued qualifies a Fax Job as awaiting transmission, and active qualifies a Fax Job as in process of being sent or received by the fax server.

Fax number: See Telephone number.

Fax Port: A logical representation of the connection, of a fax device, to the fax server.  A Fax Port is uniquely identified on the fax server by a Line Identifier. The fax client uses the Line Identifier of a Fax Port to obtain a Fax Port Handle from the fax server and uses this handle to access the Fax Port. A Fax Port is in an open state if the Fax Port has one or more opened fax port handles. Otherwise, the Fax Port is in a closed state.

For each Fax Port installed on the fax server, the fax server maintains the following settings:

  • The Line Identifier uniquely identifying the Fax Port on the fax server.

  • The name of the fax device connected to the fax server through the Fax Port.

  • The current status of the Fax Port, describing the current fax operation, if any, executed by the fax device connected to the fax server through the Fax Port.

  • The priority of the Fax Port to send faxes compared with the other Fax Ports on the fax server.

  • The TSID of the fax device connected to the fax server through the Fax Port.

  • The CSID of the fax device connected to the fax server through the Fax Port.

  • The number of phone rings that triggers a call to be answered by the fax device connected to the fax server through the Fax Port.

  • The type of the fax device connected to the fax server through the Fax Port, as a combination of any the following attributes: the device can send faxes, the device can receive faxes, or the device is a virtual fax device.

  • The list of Fax Routing Methods currently enabled for the fax device connected to the fax server through the Fax Port.

The Fax Ports persist after shutdown or restart of the fax server.<41>

Fax port handle: A handle created by the fax server to identify an open Fax Port. When a fax client opens a Fax Port on the fax server, the fax server returns the fax port handle to the fax client, and the fax client uses the fax port handle for subsequent calls acting on the respective open Fax Port. The fax port handle is closed by the fax server when the fax client closes the Fax Port or when the connection with the fax client is terminated. The fax port handles do not persist after shutdown or restart of the fax server.

Fax print queue: A print queue that can be shared from the computer that is both a fax server and a print server, and that can be installed on the computer that is both a print client and a fax client, as described by the Print System Remote Protocol [MS-RPRN]. The printer driver installed on the client computer prints each document to a local TIFF file. Then the fax client can use the local TIFF file as the cover page or the fax body of a fax job to be transmitted through the fax server using this protocol. <42>

Fax Queue: A list of fax jobs. There are two kinds of fax queues, the Incoming Queue and the Outgoing Queue, described here.

Incoming Queue: Contains the fax jobs that are in the process of being received or are waiting for routing to their destination by a routing provider. Usually called Incoming in the Fax Console.

Outgoing Queue: Contains the fax jobs that are waiting for transmission or are in the process of being transmitted. Usually called Outbox in the Fax Console.

Fax Routing Extension: A server implementation-specific binary module that exports one or more Fax Routing Methods.

For each Fax Routing Extension, the fax server maintains the following settings:

  • The friendly name of the Fax Routing Extension.

  • The image name of the Fax Routing Extension.

  • The list of Fax Routing Methods contained in the Fax Routing Extension.

The fax server's initial state reflects the preregistration of a default inbound Fax Routing Extension and its default Fax Routing Methods (section 2.2.87). The Fax Routing Extensions persist after shutdown or restart of the fax server. <43>

Fax Routing Method: A function exported by a Fax Routing Extension that implements an operation such as (but not limited to) printing, storing, or emailing a fax. The fax server can be configured to apply a routing method to all faxes received or sent through a fax device or a routing group.

For each Fax Routing Method, the fax server maintains the following settings:

  • The friendly name of the routing method.

  • The name of the function contained by the routing method.

  • The identifier of the routing method.

  • The priority of the routing method.

The Fax Routing Methods persist after shutdown or restart of the fax server. <44>

Fax transmission retries: Fax server configuration setting that configures the maximum number of times the fax server attempts to retransmit a fax job from the outgoing fax queue if the initial transmission of the respective fax jobs fails. After the maximum number of retries the fax job is still not successfully transmitted, the fax server leaves the fax job in the outgoing fax queue pending manual intervention from the server's administrator, or until the queue age limit period, if enabled on the fax server, elapses, and the fax server deletes the fax job. The fax transmission retries setting persists after shutdown or restart of the fax server.<45>

Fax transmission retry delay: Fax server configuration setting that configures the minimum delay time interval, in minutes, between two consecutive fax transmission retries. The fax transmission retry delay setting persists after shutdown or restart of the fax server.<46>

Fax User Account: An entry in a fax server-maintained list of operating-system users authorized to send and receive faxes via the fax server. Each fax user account contains a data structure that holds an implementation-specific identifier for the authenticated user identity. The fax server creates the first fax user account at the time of the fax server's installation. <47> The fax user accounts persist after shutdown or restart of the fax server.

Incoming Archive: Fax archive stored in the Fax Archive Folder containing faxes that have been successfully received by the fax server. Usually this archive is called Inbox in the Fax Console. There is one Incoming Archive on each fax server.

Incoming fax viewing permission: Fax server configuration setting indicating whether the incoming faxes can be viewed by all users or only by users whose accounts have proper access rights to do so. This setting persists after shutdown or restart of the fax server.<48>

Job Identifier: Also mentioned as a Job ID. A DWORD value that uniquely identifies a Fax Job in the fax server's Fax Queue. The Fax Jobs in the fax server's Fax Queue and their job identifiers do not persist after shutdown or restart of the fax server.

Job Status: A DWORD that describes the current status of a Fax Job. This DWORD value contains a bitwise OR combination of one or more of the following permissible flag values.

Value/code

Meaning

JS_PENDING

0x00000001

The Fax Job is in the queue and is pending to be processed by the fax server.

JS_INPROGRESS

0x00000002

The Fax Job is in process of being sent or received.

JS_DELETING

0x00000004

The Fax Job is in process of being deleted.

JS_FAILED

0x00000008

The Fax Job failed.

JS_PAUSED

0x00000010

The Fax Job is paused.

JS_NOLINE

0x00000020

The Fax Job cannot be sent because no line is available.

JS_RETRYING

0x00000040

The Fax Job failed and is in process of being retried.

JS_RETRIES_EXCEEDED

0x00000080

The fax server exceeded the maximum number of fax transmission retries for this Fax Job. The Fax Job will not be sent.

JS_COMPLETED

0x00000100

The Fax Job is complete.

JS_CANCELED

0x00000200

The Fax Job is canceled.

JS_CANCELING

0x00000400

The Fax Job is in process of being canceled.

JS_ROUTING

0x00000800

The Fax Job is in process of being routed.

Job type: A DWORD that describes the type of a Fax Job and specifies whether the job is inbound (to be received, or received), outbound (to be sent, or sent), being routed (inbound or outbound), or unknown. The following are the permissible values for the job type.

Value

Meaning

JT_UNKNOWN

0x00000000

The job type is unknown. This value indicates that the fax server has not yet scheduled the job.

JT_SEND

0x00000001

The job is an outgoing fax transmission.

JT_RECEIVE

0x00000002

The job is an incoming fax transmission.

JT_ROUTING

0x00000003

The fax server tried to route the fax transmission, but routing failed. The fax server will attempt to route the job again.

JT_FAIL_RECEIVE

0x00000004

The fax server failed to receive the job.

JT_BROADCAST

0x00000020

The job is an outgoing broadcast message. This value is not available on servers that implement the FAX_API_VERSION_0 version of the protocol. <49>

Line identifier: A unique identifier of a Fax Port on the fax server. The fax server maintains a line identifier for the duration that the respective Fax Port exists. The line identifiers persist after shutdown or restart of the fax server.

Message identifier: Also mentioned as a message ID. A DWORDLONG that uniquely identifies a fax message on the fax server, in archived message or queued job form. When the fax server sends a fax to multiple recipients, the fax server generates a message identifier representing the fax message to be sent to all recipients, and one or more additional message identifiers, one for each individual fax message copy to be sent to each recipient. The message identifiers do not persist after shutdown or restart of the fax server.

Outgoing Archive: Fax archive stored in the Fax Archive Folder containing faxes that have been successfully sent by the fax server. Usually this archive is called Sent Items in the Fax Console. There is one Outgoing Archive on each fax server.

Personal cover page support: Fax server configuration setting that when enabled, allows fax clients to provide user-designed cover page templates with outgoing faxes. Otherwise, clients can only use one of the common cover page templates stored in the server. The same cover page template can be reused for multiple fax jobs. This setting persists after shutdown or restart of the fax server.<50>

Personal profile: Information describing a user who receives or sends a fax through the fax server. When the fax client requests a new fax to be sent through the fax server, the fax client submits one personal profile describing the sender of the fax, and one or more personal profiles describing the recipients of the fax, including the telephone number to be dialed for each recipient. The fax server stores the personal profiles of the sender and the recipient with each Fax Job in the queue pending to be sent. The personal profiles of the sender and the recipient persist with each fax message archived in the Fax Archive Folder.

For each personal profile, the fax server maintains the following data:

  • The user's name to be printed on the faxes sent from or to this user, if available.

  • The telephone number to dial when sending a fax to this user.

  • The title of the user, if available.

  • The home address of the user, if available, containing a street address, a city name, a ZIP code, and/or a country/region name.

  • The user's home phone number, if available.

  • An email address of the user, if available.

  • The user's company name, if available.

  • The user's department name, if available.

  • The user's office location, if available.

  • The user's office phone number, if available.

  • A billing code, if any.

  • A TSID associated with this profile, if any.

Port access mode: A fax port handle attribute specified by the fax client when opening a Fax Port. This attribute specifies the subsequent operations that the fax server allows the fax client to perform using the fax port handle. The port access mode persists for the duration that the Fax Port is kept open by the fax client. The fax port access modes do not persist after shutdown or restart of the fax server.

Profile name: A fax server configuration setting that identifies one MAPI profile configured on the fax server for the default routing method identified by the REGVAL_RM_INBOX_GUID routing method, described in section 2.2.87. The fax server can contain more than one MAPI profile, out of which only one profile is configured at one time for the profile name setting. The profile name setting persists after shutdown or restart of the fax server.<51> The profile name setting is supported only by FAX_API_VERSION_0 fax servers. For more information about MAPI profiles, see [MSDN-MAPIPRF].

Queue Age Limit: Fax server configuration settings that allow a fax client to configure the fax server to keep faxes in the Fax Queues for a finite time. The fax server initializes the Queue Age Limit to disabled. The Archive Enabled setting takes precedence over the queue age limit setting. The queue age limit setting persists after shutdown or restart of the fax server.<52>

Queue State: A DWORD that stores the current state of the fax incoming and outgoing fax queues. If the Queue State is zero, both the incoming and outgoing fax queues are unblocked. Otherwise, the Queue State is described by a bitwise OR combination of one or more of the following permissible flag values.<53>

Value/code

Meaning

FAX_INCOMING_BLOCKED

0x00000001

The fax service will not receive new incoming faxes. The incoming fax queue is blocked.

FAX_OUTBOX_BLOCKED

0x00000002

The fax service will reject submissions of new outgoing faxes to its outgoing fax queue. The outgoing fax queue is blocked.

FAX_OUTBOX_PAUSED

0x00000004

The fax service will not dequeue and execute outgoing fax jobs from its outgoing fax queue. The outgoing fax queue is paused.

Routing Group: A group of fax devices connected to the fax server and for which the same routing rules are applied. The fax server maintains a list of one or more Routing Group elements. This list is initialized by the fax server to contain at least the special routing group named "<All devices>" representing all fax devices installed on the fax server.

For each routing group, the fax server stores the following settings:

  • The name of the routing group

  • The list of the Line Identifiers representing the fax devices in the group, except for the default special group named "<All devices>"

  • The list of Fax Routing Methods currently enabled for routing groups,

which persist after shutdown or restart of the fax server.<54>

Routing string: A null-terminated character string that contains a Canonical Phone Address described by [MSDN-TAPIADDR], where additional routing information, if present, is contained by the Subaddress field (described by [MSDN-TAPIADDR]). A routing string describes the inbound routing destination, if any, of a fax being received by a fax device.<55>The routing strings do not persist after shutdown or restart of the fax server.

Rules map: The list of all outbound rules added to a fax server and not yet removed. The rules map persists after shutdown or restart of the fax server.

Server queue: See Fax Queue.

Server queue directory: Also mentioned as the fax queue directory. The folder on the fax server where the Fax Queue is stored. The location and name of this folder are specific to each fax server implementation. If not otherwise specified, this folder refers to both the Incoming Queue and the Outgoing Queue.<56>

Size quota high watermark: Fax server configuration setting that configures the high watermark of the archive quota, expressed in megabytes (MB). The fax server uses the size quota high watermark to determine when to issue a size quota warning. This setting persists after shutdown or restart of the fax server.<57>

Size quota low watermark: Fax server configuration setting that configures the low watermark of the archive quota, expressed in megabytes (MB). The fax server uses the size quota low watermark to determine when to issue a size quota warning. This setting persists after shutdown or restart of the fax server.<58>

Size quota warning: Fax server configuration setting that enables the fax server to issue an implementation-specific warning if the archive quota exceeds size quota high watermark or falls below the size quota low watermark. This setting persists after shutdown or restart of the fax server.<59>

Start cheap time: Fax server configuration setting that configures the start time for the fax server's discount period applying to outgoing fax transmissions. The time value is expressed in UTC as a number of hours and a number of minutes. Equal time values (hours and minutes) for the start cheap time and stop cheap time settings mean that the fax server has no discount period for outgoing fax transmissions. The fax server uses the discount period, if any, to schedule the fax's pending transmission in the Outgoing Queue. If there is a discount period, if an outgoing fax is queued during the discount period, the fax is scheduled to be immediately sent; if the fax is queued after the discount period passed, the fax is scheduled for the next day; and if the fax is queued before the discount period, the fax is scheduled for the discount period. A value of stop cheap time before start cheap time indicates that the discount time elapses from one day to another past midnight. This setting persists after shutdown or restart of the fax server.<60>

Subscriber identifier: A TSID or CSID.

Stop cheap time: Fax server configuration setting that configures the stop time for the fax server's discount period applying to outgoing fax transmissions. The time value is expressed in UTC as a number of hours and a number of minutes. Together with the start cheap time, this setting configures the discount period for outgoing fax transmissions. This setting persists after shutdown or restart of the fax server.<61>

Telephone number: A null-terminated character string containing the telephone number dialed by a fax device when sending a fax.

TSID: A null-terminated character string that identifies the fax recipient that sends a fax. The TSID is sent by the transmitting fax device when it sends a fax to a receiving fax device. This string can be a combination of the fax or telephone number and the name of the business. The TSID can be the same as the CSID. The fax server maintains a TSID for each Fax Port. The TSID of a Fax Port persists after shutdown or restart of the fax server.

Use device's TSID: Fax server configuration setting that configures the fax server to use the fax device's TSID instead of the TSID specified by the fax client when submitting a fax job for transmission. This setting persists after shutdown or restart of the fax server.<62>