Call Deflection services allow calls presented to the served user to be rerouted to a different address. Call deflection is a service that is only applicable to user/network type interfaces such as ETS 300, and not to peer-to-peer interfaces such as Q.SIG.
An ETS 300 served user application can use the Call Deflection service in either of two ways:
It can activate the Call Deflection service. When activated, call deflection takes place in the stack. From then until the service is deactivated, all calls on a specific NAI destined for the served user are rerouted to another user.
It can invoke the Call Deflection service on a call-by-call basis.
Regardless of which service is used, the diverted-to user is always notified of a forwarded call, using a Notify Diversion operation. This topic describes:
Activation of the call deflection service has only local significance (for example, no signaling information is exchanged with the remote peer). It applies only to activation/deactivation on an NAI basis, for all served users.
To activate call deflection for an NAI, the application sends an ACU request message to the stack to the ACU_MGMT_SAPI, containing an acu_ss_activate_deflect_invoke extended data structure. The service header to this structure must contain:
Operation ID ACU_OP_ID_ACTIVATE_DEFLECTION
OpType ACU_OP_TYPE_INVOKE
The following is a listing of the acu_ss_activate_deflect_invoke extended data structure:
struct acu_ss_activate_deflect_invoke
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
struct acu_address deflect_to; /* Address to deflect all calls to */
};
The deflect_to field is mandatory. It contains the address to which the number is deflected.
If call deflection is successfully activated, the stack returns an ACU indication message to the application, containing an acu_ss_activate_deflect_ret_result extended data structure. The service header to this structure contains:
Operation ID ACU_OP_ID_ACTIVATE_DEFLECTION
OpType ACU_OP_TYPE_RETRES
The following is a listing of the acu_ss_activate_deflect_ret_result extended data structure:
struct acu_ss_activate_deflect_ret_result
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
};
No additional data is sent in this structure.
Activation of call deflection
If Call Deflection is not successfully activated, the stack returns an ACU indication message to the application, containing an acu_ss_reject extended data structure. The service header to this structure contains:
Operation ID ACU_OP_ID_ACTIVATE_DEFLECTION
OpType ACU_OP_TYPE_REJECT
For more information about the acu_ss_reject structure, see The acu_ss_reject extended data structure.
If Call Deflection is activated for all calls on an NAI, the application receives a notification when a call has been deflected, via the ACU_MGMT_SAPI. The stack returns an ACU indication message to the application, containing an acu_ss_deflect_ret_result extended data structure. The service header to this structure contains:
Operation ID ACU_OP_ID_DEFLECTION
OpType ACU_OP_TYPE_RETRES
The following is a listing of the acu_ss_deflect_ret_result extended data structure:
struct acu_ss_deflect_ret_result
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
};
No additional data is sent in this structure.
The following illustration shows the exchange of messages that takes place when Call Deflection is activated for an NAI. In this scenario, user A is calling user B, and user B (for example, PBX) deflects the call to user C.
Deflect all calls at served user
To deactivate call deflection for an NAI, the application sends an ACU request message to the stack to the ACU_MGMT_SAPI, containing an acu_ss_deactivate_deflect_invoke extended data structure. The service header to this structure must contain:
Operation ID ACU_OP_ID_DEACTIVATE_DEFLECTION
OpType ACU_OP_TYPE_INVOKE
The following listing shows the acu_ss_deactivate_deflect_invoke extended data structure:
struct acu_ss_deactivate_deflect_invoke
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
};
No additional data is sent in this structure.
If call deflection is successfully deactivated, the stack returns an ACU indication message to the application, containing an acu_ss_deactivate_deflect_ret_result extended data structure. The service header to this structure contains:
Operation ID ACU_OP_ID_DEACTIVATE_DEFLECTION
OpType ACU_OP_TYPE_RETRES
The following listing shows the acu_ss_activate_deflect_ret_result extended data structure:
struct acu_ss_deactivate_deflect_ret_result
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
};
No additional data is sent in this structure.
If call deflection is not successfully deactivated, the stack returns an ACU indication message to the application, containing an acu_ss_reject extended data structure. The service header to this structure contains:
Operation ID ACU_OP_ID_DEACTIVATE_DEFLECTION
OpType ACU_OP_TYPE_REJECT
For more information about the acu_ss_reject structure, see The acu_ss_reject extended data structure.
The Call Deflection service can be invoked by the served user on an incoming call if the call state is WAIT_INCOMING.
The stack must not be configured to automatically send the ALERT on incoming calls. Otherwise, the deflection will fail due to invalid states at the network side.
Note: The ALERT is sent by default on the user side when no structure is passed to isdnStartProtocol. To change this behavior, change the settings of the CC_VOICE_ALERT_RQ and CC_DATA_ALERT_RQ bits in the in_calls_behavior substructure (described in the NMS ISDN Messaging API Developer's Reference Manual). You can cause the stack to send a PROC RQ instead by setting the CC_SEND_CALL_PROC_RQ bit.
To invoke call deflection for a call, the application sends an ACU request message to the stack, containing an acu_ss_deflect_invoke extended data structure. The service header to this structure must contain:
Operation ID ACU_OP_ID_DEFLECTION
OpType ACU_OP_TYPE_INVOKE (See the Activation of call deflection illustration)
The following listing shows the acu_ss_deflect_invoke extended data structure:
struct acu_ss_deflect_invoke
{
struct acu_ext_hdr ext_hdr; /*Extension header */
struct acu_ss_hdr ss_hdr; /*Supp. services header */
struct acu_address deflect_to; /*Number to direct call to*/
struct acu_ss_association charge_association;/*Optional, used when AOC-E*/
}; /*service has been invoked*/
The following table lists the fields in this structure (other than the header fields), and when they are used.
|
Field |
Description |
Must be filled in this request? |
|---|---|---|
|
deflect_to |
Full address and subaddress of deflected-to party |
Yes |
|
charge_association |
Optional charge identifier, used when AOC-E service has been invoked. (See AOC and Explicit Call Transfer (ECT) services.) |
Optional |
If call deflection is successfully invoked for the call, the stack returns an ACU indication message to the stack, containing an acu_ss_deflect_ret_result extended data structure. The service header to this structure contains:
Operation ID ACU_OP_ID_DEFLECTION
OpType ACU_OP_TYPE_RETRES (See the Activation of call deflection illustration)
The following listing shows the acu_ss_deflect_ret_result extended data structure:
struct acu_ss_deflect_ret_result
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
};
No additional data is sent in this structure.
If call deflection is not successfully invoked for the call, the stack returns an ACU indication message to the application, containing an acu_ss_deflect_ret_error extended data structure. The service header to this structure contains:
Operation ID ACU_OP_ID_DEFLECTION
OpType ACU_OP_TYPE_RETRES (See the Activation of call deflection illustration)
The following listing shows the acu_ss_deflect_ret_error extended data structure:
struct acu_ss_deflect_ret_error
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
ushort err_id; /* From DEFLECT_RETERR_... constants */
pad6
};
The err_id field contains the reason for the error, from DEFLECT_RETERR constants.
The following illustration shows the exchange of messages that takes place when Call Deflection is invoked for a call. In this scenario, user A is calling user B, and user B (for example, PBX) deflects the call to user C.
Note: The following illustrations are representative of exchanges, and are not intended to be complete. Many factors impact the message flow, including the subscription option configurations at the network side of the interface.
Deflect single call at served user
When the deflected-to user receives a connection indication, the user is notified that the call is forwarded. An ACU indication message is sent, containing an acu_ss_notify_diversion extended data structure. The service header to this structure contains:
Operation ID ACU_OP_ID_NOTIFY_DIVERSION
OpType ACU_OP_TYPE_INVOKE (See the Connection request at deflected-to user diagram)
The following listing shows the acu_ss_notify_diversion_invoke extended data structure:
struct acu_ss_notify_diversion_invoke
{
struct acu_ext_hdr ext_hdr; /* Extension header */
struct acu_ss_hdr ss_hdr; /* Supp. services header */
struct op_byte_field reason; /* Reason for diversion, from */
/* ACU_SS_DIVERSION_ constants */
struct op_byte_field basic_service; /* From ACU_SS_BASIC_SERVICE_ */
/* constants */
struct acu_conn_id related_conn_id;/* Identifies related connection */
struct op_byte_field subscription; /* Subscription option for */
/* presentation */
struct acu_party_num redir_nb; /* At directed-to user, number */
/* doing redirection */
struct acu_party_num orig_redir_nb; /* At directed-to user, first */
/* number doing redirection */
struct acu_party_num nominated_nb; /* Indicates new destination */
/* number to calling user */
struct acu_party_name redir_name; /* Name of user invoking the */
/* diversion */
struct acu_party_name orig_redir_name;/* At diverted-to user, first */
/* name doing redirection */
uchar completed; /* ON = diversion completed, */
/* OFF = diversion in progress */
uchar diversion_count;/* Passed up to application in */
pad6 /* acu_ss_divert_invoke */
};
The following table lists the fields in the acu_ss_notify_diversion_invoke structure and when they are used. Header fields are not listed here.
|
Field |
Description |
Must be filled in message sent from originating node? |
Will be filled in message received by diverted-to user node? |
|---|---|---|---|
|
reason |
Reason for diversion, if available. From SS_DIVERSION constants. |
Yes |
Yes |
|
basic_service |
Voice, data, etc. From SS_BASIC_SERVICE constants. |
Not included |
Not included |
|
related_conn_id |
Related connection ID. |
Yes |
Yes |
|
subscription |
Subscription option for presentation. |
Not included |
Not included |
|
redir_nb |
Number of user redirecting call. |
Optional |
Optional |
|
orig_redir_nb |
Number of first user redirecting call. |
Optional |
Optional |
|
nominated_nb |
ETS 300 only. Indicates new destination number to calling user. |
Not included |
Not included |
|
redir_name |
Q.SIG only. Name of user invoking the diversion. |
Optional |
Optional |
|
orig_redir_name |
Q.SIG only. Name of original redirecting user. |
Optional |
Optional |
|
completed |
ON/OFF. ON indicates diversion is completed. OFF indicates diversion is in progress. |
Not included |
Yes |
|
diversion_count |
Passed up to application in acu_ss_divert_invoke structure. Meaningless in request messages. |
Yes |
Yes |

Connection request at deflected-to user
The originating user is notified that a call is forwarded. An ACU indication or confirmation message is sent (such as ACU_CONN_CO, ACU_ALERT_IN, a PROGRESS message or a FACILITY message), containing an acu_ss_notify_diversion extended data structure. The service header to the acu_ss_notify_diversion_invoke structure contains:
Operation ID ACU_OP_ID_NOTIFY_DIVERSION
OpType ACU_OP_TYPE_INVOKE
See Deflection notification (at deflected-to user) for a listing of the acu_ss_notify_diversion_invoke structure.
The following table lists the fields in this structure (other than the header fields), and when they are used:
|
Field |
Description |
Will be filled in message received by originating node? |
|---|---|---|
|
reason |
Reason for diversion, if available. From SS_DIVERSION constants. |
Optional |
|
basic_service |
Voice, data, etc. From SS_BASIC_SERVICE constants. |
Not included |
|
related_conn_id |
Related connection ID. |
Yes |
|
subscription |
Subscription option for presentation. |
Optional |
|
redir_nb |
Number of user redirecting call. |
Not included |
|
orig_redir_nb |
Number of first user redirecting call. |
Not included |
|
nominated_nb |
ETS 300 only. Indicates new destination number to calling user. |
Yes |
|
redir_name |
Q.SIG only. Name of user invoking the diversion. |
Optional |
|
orig_redir_name |
Q.SIG only. Name of original redirecting user. |
Not included |
|
completed |
ON/OFF. ON indicates diversion is completed. OFF indicates diversion is in progress. |
Yes |
|
diversion_count |
Passed up to application in acu_ss_divert_invoke structure. Meaningless in request messages. |
Not included |
Connection request at originating user