3.1.5.3 Receiving a Callback Request Message

If the Current State is CBCP_STATE_WAIT_FOR_REQUEST, the following message processing

is done:

  1. The Callback Request message MUST be in the specified format (section 2.2.4.1) with the Callback Configuration options as specified (section 2.2.3). Otherwise, the message MUST be dropped silently without a change in the Current State.

  2. The Identifier received is stored in the Expected Identifier variable.

  3. The caller MUST select one Callback Configuration option <5> out of the options received and respond with a Callback Response message (section 2.2.4.2), specifying the callback option selected (section 2.2.3). The Callback Response message MUST be constructed as follows:

    1. If the Callback Type selected is 1, the Callback Address MUST NOT be set for the Callback Configuration option. If the Callback Type selected is 2, the Callback Address MUST be specified in the Callback Configuration option with the value of Caller-specified Phone Number. Similarly, the Callback delay field in the Callback Configuration option MUST be set with the value of Caller-specified Callback Delay. If the Callback Type selected is 3, the Callback Configuration option MUST specify the Callback Delay using the value of Caller-specified Callback Delay, and the Callback Address MUST NOT be specified.

    2. The Identifier field of the Callback Response message MUST be set with the value of Expected Identifier.

    3. The Length field MUST be computed as specified in section 2.2.4.

    4. The caller MUST update the Result Callback Type with the chosen Callback Type.

  4. The CBCP Packet Send Event (section 3.1.7.2) MUST be used for transmission of the Callback Response message. After successful transmission of the message, the caller MUST change state to CBCP_STATE_WAIT_FOR_ACK and decrement the Retry Count.

  5. The caller MUST start a retransmission timer (section 3.1.2).

Otherwise, if the Current State is CBCP_STATE_WAIT_FOR_ACK, the following message processing is done:

  1. The Callback Request message MAY be received in this state if the answerer did not receive a Callback Response message, or received an invalid Callback Response message.

  2. The Callback Request message MUST be in the specified format (section 2.2.4.1) with the Callback Configuration options as specified (section 2.2.3). Also, the Callback Configuration options received as a part of the Callback Request message MUST be the same as the options received when the Current State was CBCP_WAIT_FOR_REQUEST. Otherwise, the message MUST be dropped silently without a change in the Current State.

  3. The Identifier received must be stored in the Expected Identifier variable.

  4. The Callback Response message that was sent when the Current State was CBCP_STATE_WAIT_FOR_REQUEST MUST be sent back again but with the updated Expected Identifier.

  5. The CBCP Packet Send Event MUST be used for transmission of the Callback Response message. After successful transmission of the message, the caller MUST remain in the Current State.

  6. The caller MUST restart a retransmission timer (section 3.2.2) and decrement the Retry Count.