- Sending of DPNSS feature messages is performed in two phases:
- The application prepares a DPNSS Supplementary Information String (SIS) to be sent, by calling dpnSetExtendedArgs with a valid DPNSS service SIS identifier passed as an argument. This causes the identifier to be stacked within a DPNSS service buffer, but it is not sent yet.
To send more than one supplementary feature message at a time, the application calls dpnSetExtendedArgs multiple times, each with a different SIS identifier. The identifiers are stacked within the buffer.
- The application calls a call control function: dpnAcceptCall, dpnAnswerCall, dpnRejectCall, dpnPlaceCall, or dpnReleaseCall. At this point, the SISs in the buffer are inserted in the DPNSS message to be sent, and the complete DPNSS message is sent.
If the application does not wish to perform a call control operation while sending a supplementary feature message, it can instead call dpnSendFeatureMessage. This function causes the supplementary feature messages in the buffer to be sent without performing any other operation.
- Each time one of the functions is called, the SISs are cleared from the buffer.
- The following code sample shows how an application can implement DPNSS features in conjunction with call control:
.
.
// Prepare DPNSS SIS we want to send
retStatus = dpnSetExtendedArgs (myCtaHandle, DPNSIS_CLI,calledNumber);
retStatus = dpnSetExtendedArgs (myCtaHandle, DPNSIS_CLC_ORD, NULL);
// Perform Call control sending prepared SISs
retStatus = dpnPlaceCall(myCtaHandle, calledNumber, NULL);
// SISs are now cleared
.
.
Note: Not all SISs can be sent with each call control function. SIS identifiers allowed with each call control function are listed with the function in Chapter 5.
- The application must avoid sending competing or contradictory SIS identifiers in the same message. For instance, the application must not send DPNSIS_DIVERTING_RNR and DPNSIS_DIVERTING_BSY at the same time because they are contradictory. In such a case, the resulting behavior on the call state is unpredictable. We strongly encourage you to check that your application conforms to the scenario diagrams provided in the sections of BTNR 188 related to each DPNSS feature group.