3.1.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

Current State: An enumeration value that represents the current state of the CBCP state machine for the caller as specified in section 3.1.1.1. This variable will be initialized to CBCP_STATE_WAIT_FOR_REQUEST. The following are the acceptable values for this variable:

  • CBCP_STATE_WAIT_FOR_REQUEST

  • CBCP_STATE_WAIT_FOR_ACK

Expected Identifier: An integer variable of size 1 byte. This represents the request identifier that will be expected from the answerer. It will be initially set to 0 and updated subsequently with the identifier received in each Callback Request message received from the answerer. The Callback Response message will be sent with this identifier value. This value also denotes the identifier that will be expected in the Callback Acknowledgment message. For a successful CBCP negotiation message exchange, the identifier in the Callback Request message, Callback Response message, and Callback Acknowledgment message MUST be the same.

Caller-specified Phone Number: A null-terminated ASCII representation of the phone number that the caller specifies is the number on which the answerer can callback if "Callback to a user-specifiable number" is negotiated to be the callback option. This will be initialized to the caller's phone number, which will be sent as a part of the Callback Addresses field in the Callback Configuration Option of type "Callback to a user-specifiable number".

Caller-specified Callback Delay: An unsigned integer value of 1-byte length with valid values of 0 to 255. This value specifies the time, in seconds, the answerer has to wait after the PPP session is disconnected before the answerer (NAS) can callback the caller (NAC). The caller will send this value to the answerer as a part of the callback configuration option in the Callback Response message. This is a user-configurable value that is sent over the protocol for the answerer to use.

Retry Count: An integer value that represents the number of times the caller SHOULD attempt to retransmit the Callback Response message if it has not received a successful Callback Acknowledgment message. This is a user-configurable value <3>.

Result Callback Type: A 1-byte integer value that represents the callback type chosen by the caller through a Callback Response message and acknowledged by the answerer. This value will be valid at the end of a successful CBCP completion (which is after the event CBCP Done (section 3.1.7.3) is signaled to PPP with Success status). The PPP will use this value at the end of the CBCP protocol negotiation to decide whether to proceed with Network Layer Protocol Phase or to terminate the PPP session and await the callback. This variable can have values 1, 2, or 3 -- the descriptions for each are given as follows.

Callback type

Description

1

No Callback.

2

Callback to a user-specifiable number.

3

Callback to a pre-specified or administrator-specified number.