ISUPConnectStatusReq

Sends connection status information to the far exchange during the connection establishment phase.

Prototype

DWORD ISUPConnectStatusReq ( CTAHD ctahd, SuId suId, SiInstId suInstId, SiInstId spInstId, CirId circuit, SiConStEvnt *conStEvnt, U8 eventType)

Argument

Description

ctahd

Natural Access handle returned by ctaCreateContext.

suId

ISUP service access point.

suInstId

Service user instance ID.

spInstId

Service provider instance ID.

circuit

Circuit with which this message is associated.

conStEvnt

Pointer to the caller's connect status event structure containing all parameters (IEs) included in the message to the far exchange.

eventType

Identifies the type of message sent to the far exchange:

ADDRCMPLT = Address complete

MODIFY = Call modification request

MODCMPLT = Call modification complete

MODREJ = Call modification rejected

PROGRESS = Call progress information

FRWDTRSFR = Forward transfer

IDENTREQ = Identification request

IDENTRSP = Identification response

INFORMATION = Information (response to INFORMATREQ)

INFORMATREQ = Information request

SUBSADDR = Subsequent address message

NETRESMGR = Network resource manager


Return values

Return value

Description

ISUP_SUCCESS

 

CTAERR_BAD_ARGUMENT

One or more arguments are invalid.

CTAERR_DRIVER_SEND_FAILED

Error occurred accessing the TX driver.

CTAERR_INVALID_CTAHD

Natural Access handle is invalid.


Details

The connection status information can be address complete, progress, information request. For more information, refer to Establishing connections.

The following NTT-specific value can be passed as the evntType argument to ISUPConnectStatusReq:

CHARGE Charge Message

The value specified in the suInstId field is passed to all subsequent events associated with this connection.

The value for spInstId must be the spInstId value that was received from the ISUP layer in the connect indication event.

Example

In this example, the incoming call is accepted by sending an ACM with ISUPConnectStatusReq:

DWORD status;
SiAllSdus       rcvEvent;
IsupRcvInfoBlk  rcvInfo;
S16 switchType = ST_ITUWHITE;

status = ISUPRetrieveMessage(ctahd, &rcvEvent, &rcvInfo, 1);
if (status == ISUP_NOMSG)
    {
         fprintf(stderr, "ISUPRetrieveMessage() did not get a message, probably a congestion
         event \n");
         return(ISUP_SUCCESS);
    }
if (status != ISUP_SUCCESS)
    {
         fprintf(stderr, "ISUPRetrieveMessage() failed, returned %d\n", status);
         return(status);
    }
/* determine indication/confirmation type received */
switch(rcvInfo.indType)
{
    ...
    ...
    case EVTSITCONIND: /* connect indication (incoming call) */
        printf("term: Connect Indication received for circuit %ld, ", rcvInfo.circuit);
        /* send address complete message (ACM) */
        ISUPInitACM(switchType, &rcvEvent.m.siCnStEvnt);
        status = ISUPConnectStatusReq(ctahd, rcvInfo.suId, rcvInfo.suInstId, 
            rcvInfo.spInstId, rcvInfo.circuit, &rcvEvent.m.siCnStEvnt, ADDRCMPLT);
         if (status != ISUP_SUCCESS)
             printf("term: ISUPReleaseResp() failed status = %d\n", status);
         else
             printf("term: Address Complete sent for circuit %ld\n", rcvInfo.circuit);
}