3.2.5.3 Receiving a Callback Response Message

If the Current State is CBCP_STATE_WAIT_FOR_RESPONSE, the message processing is done as follows:

  1. The Callback Response message MUST be in the specified format (section 2.2.4.2) with the Callback Configuration options as specified (section 2.2.3). Otherwise the Callback Request message MUST be retransmitted (section 3.2.5.3.1). There MUST be no change in the Current State.

  2. The Identifier received in the Callback Response message MUST match the identifier value stored in the Next Identifier field. Otherwise the message MUST be dropped silently, and there MUST be no change in the Current State.

  3. The Callback Configuration option received in the Callback Response message MUST match a Callback Type in the Acceptable Callback Type array. If the match fails, the Callback Request message MUST be retransmitted (section 3.2.5.3.1). There MUST be no change in the Current State.

  4. If the match is successful, the Callback Type received is stored is Result Callback Type, the Callback delay is stored in Result Callback Delay; if the Callback Type is 0x02 then store the callback address received in Result Phone Number. The answerer MUST send a Callback Acknowledgment message with the following fields:

    1. The Identifier, Callback delay, and Callback address fields MUST be set to the same values received in the Callback Response message.

    2. The Length field MUST be calculated as specified in section 2.2.3.

  5. The CBCP Packet Send Event MUST be used for transmission of the Callback Acknowledgment message. After successful transmission of the Callback Acknowledgment message, the answerer MUST change the Current State to CBCP_STATE_DONE. The CBCP Done (section 3.2.7.3) event will be used to inform the PPP about the successful completion of the CBCP phase.

If the Current State is CBCP_STATE_DONE, the message processing is done as follows:

  1. The Callback Response message MUST be in the specified format (section 2.2.4.2) with the Callback Configuration options as specified (section 2.2.3). Otherwise the Callback Request message MUST be retransmitted (section 3.2.5.3.1), and the Current State MUST be changed to CBCP_STATE_WAIT_FOR_RESPONSE.

  2. The Identifier received in the Callback Response message MUST match the identifier value stored in the Next Identifier variable. Otherwise, the message MUST be dropped silently without a change in the Current State.

  3. The Callback Configuration option received in the Callback Response message MUST match a callback type in the Acceptable Callback Type array. If the match fails, the Callback Request message MUST be retransmitted (section 3.2.5.3.1), and the Current State MUST be changed to CBCP_STATE_WAIT_FOR_RESPONSE.

  4. If the match is successful, the Callback Acknowledgment message that was sent when the Current State was CBCP_STATE_WAIT_FOR_RESPONSE MUST be sent again.

  5. The CBCP Packet Send Event MUST be used for transmission of the Callback Acknowledgment message. After successful transmission of the Callback Acknowledgment message there MUST be no change in the Current State.