Sends connection status information to the far exchange during the connection establishment phase.
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 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. |
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.
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);
}