• Careers
  • News and Events
  • About Us

Implementing the ISDN Call Control “Overlap Sending Mode”

<< Intervoice Certifies NMS Communications’ Open Access IP Media Processing Products With its EVIP Product Line |  Main |  New White Paper Available >>

Some signaling protocols, such as ISDN, support "overlap sending mode," i.e., the sending of address information in multiple bursts rather than all at once. The application supplies the first digit or digits when originally placing the call and then repeatedly sends additional segments of the digit string, in order. The application also indicates whether a segment of the digit string is the final segment or if more digits are to follow.

Overlapped sending/receiving of digits in the NMS ISDN stack are supported, either at the channelized layer (NCC mode layer 4), or at the ACU messaging layer (ACU layer 3).

This support tip explains how to implement the overlap sending mode at the ACU messaging layer for both the sending and receiving side.

Enabling Overlap Sending

To enable overlap sending, configure the behavior bits as follows:

The application must set CC_USER_SENDING_COMPLETE (0x0002) behavior bit in the out_calls_behavior field in the ISDN_PROTOCOL_PARMS_Q931CC structure upon starting the ISDN stack.

Setting this behavior bit prevents the stack from automatically adding "sending_complete IE" to the outgoing SETUP message and it is up to the application to either add, or not add, the sending_complete IE to the outgoing SETUP.

An incoming SETUP message that is missing a sending_complete IE indicates to the receiving side that more information will follow after the SETUP.

Enabling Overlap Receiving

The application must set CC_TRANSPARENT_OVERLAP_RCV (0x080) behavior bit in the in_calls_behavior field in the stack parms structure (ISDN_PROTOCOL_PARMS_Q931CC).

Setting this behavior bit instructs the stack to send an ACU_CONN_IN to the application even if not all digits have arrived (i.e., sending_complete IE is not present in the incoming SETUP message).

Using Overlap Sending

After setting the appropriate behavior bits and starting the stack, the application needs to do the following:

  1. Application builds an ACU_CONN_RQ and fills in all the information including the called party digits (if any) and it sets Acu_conn_rq_sending_complete to 0 (OFF). This ensures that the stack will NOT generate a sending_complete in the outgoing SETUP message.
  2. Application receives an ACU_SETUP_ACK_IN, indicating that the stack has received a SETUP_ACK from the called party.
  3. Application starts sending the remaining called party digits in one or more calls to ACU_DIGIT_RQ by using Acu_digit_rq_digit_size and Acu_digit_rq_a_digit macros. Also, the application needs to set Acu_digit_rq_sending_complete to:

    0 (OFF) if more digits will follow (in a subsequent calls to ACU_DIGIT_RQ), or
    1 (ON) if this is the end of called party digits.... no more digits to follow
  4. The stack, upon receiving the ACU_DIGIT_RQ, builds an INFORMATION message with the appropriate IEs (i.e., called party IE and, if set, sending_complete IE).
  5. Once all digits are sent and accepted by the remote side, the application would receive ACU_CALL_PROC_IN which indicates that the stack has received a CALL_PROCEEDING message from remote side.
  6. After that, the normal call control would continue (i.e. call connected, called rejected, etc.).

Using Overlap Receiving

  1. Application receives an ACU_CONN_IN to indicates that a SETUP message has been received. Acu_conn_in_called_nb_size and Acu_conn_in_called_nb macros would indicate the number of called party digits received, as well as the digits string (if any). If Acu_conn_in_sending_complete is:

    0 ---> more digits to follow
    1 ---> no more digits
  2. If more digits are expected (i.e., no sending_complete in the incoming SETUP), the application would receive an ACU_DIGIT_IN (which indicates that the stack has received an INFORMATION message) that contains the size and the digit string (Acu_digit_in_digit_size and Acu_digit_in_a_digit). Acu_digit_in_sending_complete would indicate whether more digit are to follow or if that’s the end of the digit string. If more digits are to come, then the application would expect additional ACU_DIGIT_IN that would carry the remaining digits until it gets an ACU_DIGIT_IN with Acu_digit_in_sending_complete set to 1.
  3. Once the application receives all the digits, it can proceed with the normal call control procedure (i.e., answer the call, or reject the call, etc.).

For additional support tips, visit the Technical Notes section of the NMS web site.

Mobile Video