NMS ISDN Messaging transfer interface

The NMS ISDN Messaging (ACU) transfer interface creates three messages:

None of these messages have fixed mapping into Q.931 messages. Their exact mapping depends on the protocol variant being used.

Performing a call transfer

The ACU call transfer messages are used in the following sequence during a call transfer:

Step

Action

1

An outbound call is placed and the callid_rq field is accessed through the Acu_conn_rq_callid_rq macro.

Note: See the Dialogic® NaturalAccess™ ISDN Messaging API Developer's Manual for more information on the Acu_conn_rq_callid_rq macro.

 

2

An ACU_CALLID_IN message is received. This message is associated with the outbound call and contains the callid for the second call.

3

An ACU_TRANSFER_RQ message transfers the calls. This message contains the callid for the second call.

The transfer request is made on the first call, not on the outbound call that was placed in step 1.

4

An ACU_TRANSFER_CO message is received, reporting the status of the transfer request.


ACU call transfer messages

All three messages use the same data structure for their parameters. The following section of code shows this data structure:

#define ACU_MAX_CALLID_SIZE 8

#define TRERR_UNKNOWN      0x01
#define TRERR_NOT_ALLOWED  0x02
#define TRERR_BAD_CALLID   0x03
#define TRERR_FAILED       0x04

struct acu_transfer_args 
{
    uchar status;  
    uchar callid_present;
    uchar callid[ACU_MAX_CALLID_SIZE];
    pad6
};

#define Acu_transfer_ ((struct acu_transfer_args FAR *)p_data) ->
#define Acu_transfer_status Acu_transfer_ status
#define Acu_transfer_callid_present Acu_transfer_ callid_present
#define Acu_transfer_a_callid Acu_transfer_ callid

#define Acu_transfer_size     (Rnd_sizeof(struct acu_transfer_args))
 

ACU_TRANSFER_RQ message

The ACU_TRANSFER_RQ message is an application's request for transfer. The following table provides a description of the ACU_TRANSFER_RQ associated fields:

Field

Description

status

This field is ignored for this message.

callid

The identity of the second call involved in the transfer request.

callid_present

A value of 1 indicates that the callid field contains a valid value.


ACU_CALLID_IN message

The ACU_CALLID_IN message returns the callid produced by the stack, or reports a failure. The following table provides a description of the ACU_CALLID_IN associated fields:

Field

Description

status

Contains 0 if delivery succeeds and an error code upon failure.

callid

The identity of the second call involved in the transfer request.

callid_present

A value of 1 indicates that the callid field contains a valid value.


ACU_TRANSFER_CO message

The ACU_TRANSFER_CO message returns the status of the requested transfer. The following table provides a description of the ACU_TRANSFER_CO associated fields:

Field

Description

status

Contains 0 if transfer succeeds and an error code upon failure.

callid

For NI2/TBCT this will contain the call tag for the notification to controller (NTC) feature. For other protocols this field is unused.

Note: The call tag is not the callid.

 

callid_present

A value of 1 indicates that the callid field contains a valid value.


ACU call transfer error codes

If either callid delivery or call transfer fails, the status field of the message contains one of the following error codes:

Status error name

Value

Meaning

TRERR_UNKNOWN

0x01

Reason for failure is unknown.

TRERR_NOT_ALLOWED

0x02

Transfer or callid request is not allowed.

TRERR_BAD_CALLID

0x03

Callid field contains an invalid value.

TRERR_FAILED

0x04

General failure.


The callid_rq field in the acu_conn_rq_args structure enables a request for a callid when a call is placed. If the callid_rq field is set to 0, no request for a callid is made. Otherwise, the request is sent.

The callid_rq field is accessed through the Acu_conn_rq_callid_rq macro, as described in the Dialogic® NaturalAccess™ ISDN Messaging API Developer's Manual.