This chapter describes the Call Hold and Call Retrieve supplementary services.
The Call Hold and Call Retrieve supplementary services are available to the ETS 300 variant only. They are not available under Q.SIG. However, Notify Hold and Notify Retrieve operations exist under both variants which allow affected parties to be notified.
Note: Placing a call on hold or retrieving it does not affect the underlying call state. Only the auxiliary state is changed, from idle to held or back again.
The Call Hold service allows a user to temporarily hold a call in a state where the information channel is not connected to the served user. This allows the served user to be able to answer another incoming call or initiate another call.
When a call (identified by its connection id) is placed on hold, the bearer channel (B channel) resource for the call is deallocated without losing the context of the call. The network side of the S/T reference point then reserves the B channel for allocation in a subsequent call offered by the user side.
When a call is placed on hold, the network notifies the remote interface. This information is provided to the remote application using a Notify Hold operation. For more information about this service, see Section 5.4.
To invoke this service, the application performs an Invoke Call Hold operation. To do so, it sends an ACU request message to the stack, containing an acu_ss_hold_invoke extended data structure. The service header to this structure must contain:
The following is a listing of the acu_ss_hold_invoke extended data structure:
struct acu_ss_hold_invoke
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
struct op_byte_field due_to_alternating; /* ON if alternating between */
}; /* connections */
The due_to_alternating field is optional. It can be set to ON or OFF. Set to ON if alternating between connections.
Successful Call Hold Request
If the Invoke Call Hold operation is successful, an acu_ss_hold_ret_result extended data structure is returned in an ACU confirmation or indication message, indicating that the network has accepted the service request, and the call is on hold. The service header to this structure contains:
No additional data is sent.
The following is a listing of the acu_ss_hold_ret_result extended data structure:
struct acu_ss_hold_ret_result
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
};
Unsuccessful Call Hold Request
If the Invoke Call Hold operation is unsuccessful, an acu_ss_reject extended data structure is returned in an ACU confirmation or indication message, indicating that the invocation request has been rejected, and the call is not on hold. The service header to this structure contains:
For more information about the acu_ss_reject structure, see Section 3.9.

Figure 11: Hold Call at Served User
The Call Retrieve service allows an application to retrieve a call that was temporarily held using the Call Hold service.
Note that the call must be in the Held state for the network to accept the request.
When a call is retrieved, the network notifies the remote interface. This information is provided to the remote application using a Notify Retrieve operation. For more information about this service, see Section 5.4.
To invoke this service, the application performs an Invoke Call Retrieve operation. To do so, it sends an ACU request message to the stack containing an acu_ss_retrieve_invoke extended data structure. The service header to this structure must contain:
The following is a listing of the acu_ss_retrieve_invoke extended data structure:
struct acu_ss_retrieve_invoke
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
struct op_byte_field due_to_alternating; /* ON if alternating between */
}; /* connections */
The due_to_alternating field is optional. It can be set to ON or OFF. Set to ON if alternating between connections.
Successful Call Retrieve Request
If the Invoke Call Retrieve operation is successful, an acu_ss_retrieve_ret_result extended data structure is returned in an ACU confirmation or indication message. This indicates that the network has accepted the service request, and the call is retrieved. The service header to this structure contains:
No additional fields are sent.
The following is a listing of the acu_ss_retrieve_ret_result extended data structure:
struct acu_ss_retrieve_ret_result
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
};
Unsuccessful Call Retrieve Request
If the Invoke Call Retrieve operation is unsuccessful, an acu_ss_reject extended data structure is returned in an ACU confirmation or indication message, indicating that the invocation request has been rejected, and the call is still on hold. The service header to this structure contains:
For more information about the acu_ss_reject structure, see Section 3.9.
The Notify Hold operation notifies a remote user of a call hold operation involving the user.
In an ETS 300 configuration, the stack performs this operation to notify the application when the remote equipment has changed the auxiliary state of a local subscriber to "on hold." An acu_ss_notify_hold_invoke extended data structure is sent to the application in an ACU indication message. The service header to this structure contains:
The following is a listing of the acu_ss_notify_hold_invoke extended data structure:
struct acu_ss_notify_hold_invoke
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
struct op_byte_field due_to_alternating; /* Reserved */
};
The due_to_alternating field is optional. It can be set to ON or OFF. Set to ON if alternating between connections.
In a Q.SIG configuration, the application at one node performs this operation to notify the application on a remote node when a call from the remote node is "on hold." To do so, it sends an acu_ss_notify_hold_invoke extended data structure to the location in an ACU request message. The service header to this structure contains:
The following is a listing of the acu_ss_notify_hold_invoke extended data structure:
struct acu_ss_notify_hold_invoke
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
struct op_byte_field due_to_alternating; /* ON if alternating between */
}; /* connections */
The due_to_alternating field is optional. It can be set to ON or OFF. It is set to ON if alternating between connections.
The following diagrams illustrate the message types interchanged between the stack and a Q.SIG application when Notify Hold is invoked, from the perspectives of the local node and the remote node.

Figure 12: Local Notify Hold

Figure 13: Remote Notify Hold
The Notify Retrieve operation notifies a remote user of a call retrieve operation involving the user.
In an ETS 300 configuration, the stack performs this operation to notify the application when the remote equipment has changed the auxiliary state of a local subscriber to "retrieved." An acu_ss_notify_retrieve_invoke extended data structure is sent to the application in an ACU indication message. The service header to this structure contains:
The following is a listing of the acu_ss_notify_retrieve_invoke extended data structure:
struct acu_ss_notify_retrieve_invoke
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
struct op_byte_field due_to_alternating; /* ON if alternating between */
}; /* connections */
The due_to_alternating field is optional. It can be set to ON or OFF. Set to ON if alternating between connections.
In a Q.SIG configuration, the application at one node performs this operation to notify the application on a remote node when a call previously "on hold" has been retrieved. To do so, it sends an acu_ss_notify_retrieve_invoke extended data structure to the application in an ACU request message. The service header to this structure contains:
The following is a listing of the acu_ss_notify_retrieve_invoke extended data structure:
struct acu_ss_notify_retrieve_invoke
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
struct op_byte_field due_to_alternating; /* ON if alternating between */
}; /* connections */
The due_to_alternating field is optional. It can be set to ON or OFF. It is set to ON if alternating between connections.
The following diagrams illustrate the message types interchanged between the stack and a Q.SIG application when the Notify Retrieve service is invoked, from the perspectives of the local node and the remote node.

Figure 14: Local Notify Retrieve

Figure 15: Remote Notify Retrieve
Natural MicroSystems, Inc.
100 Crossing Boulevard
Framingham, MA 01702