Whenever a SBC Edge (SBC) receives an ISDN Progress/Alert/Connect or a SIP 183/180/200 message, it is translated to the outgoing leg of the call. Although it may appear that incoming messages are simply copied from incomging to outgoing leg, in fact, they are run through an internal translation table to determine precisely what to send (on the outgoing leg).
The internal translation table is designed to work in the vast majority of circumstances; however, circumstance may dictate the need for a translation that differs from the pre-programmed translations. The Message Translation table provides the ability for the user to override the internal translations on a per Call Route basis.
This article outlines the various configuration parameters of the Message Translation functionality, how the parameters are used, and how to configure them to override the pre-programmed translations.
Basic Message Translation
Below is a description of a basic message translation:
- SIP INVITE to the SBC.
- Which results in the SBC generating an ISDN Setup.
- As the ISDN network routes the call, it returns a PROGRESS to the SBC.
- In turn, the SBC sends a 183 to the SIP endpoint.
Whether it sends the 183 with or without SDP, or whether it even sends a 183, is controlled by the SBC's internal, pre-programmed translation table. The internal translation table controls the translation for ISDN Progress/Alert/Connect messages, as well as SIP 18x/200 messages for calls ISDN to SIP, SIP to ISDN, and SIP to SIP.
How Does the Message Translation Table work?
Although the internal translation table works for the majority of installations, it may be necessary to customize a translation. This is accomplished by creating an entry in the Message Translation table that
- Identifies specific incoming messages.
- Converts them to the desired output.
Incoming Message Matching
The first phase of the the Message Translation table works on the incoming message. When a message arrives, it is checked against all of the translations entries in the table, specifically the Incoming Message configuration.
For a Progress with no Progress Indicator (PI=0), it requres a matching Incoming Message configuration. Similarly, a Progress with PI=1 (Not end to end ISDN) requires matching Incoming Message configuration. Both Progress messages match the incoming (translation) message. Since they match, the outgoing message will be eventually translation via the Outgoing Translation configuration.
Special Considerations for Incoming Matching
What is _SDP Media Negotiation_?
SIP uses SDP to negotiate media connections. To establish a common media framework (codec, endpoint addresses, etc), an endpoint will send an SDP Offer - a list of the media that the endpoint can support. The recipient will Answer the SDP Offer with a list of media attributes that its endpoint will support for this particular session.
For example, an INVITE with SDP is sent to the SBC. This SDP is an Offer - a list of the media that the endpoint is offering to support. Later, the SBC replies with a 183 with SDP, essentially Answering the Offer with a media list that is acceptable for communication.
Once an SDP Offer has been Answered, the media is said to be Negotiated. Both sides are now able to send media based upon the negotiated SDP parameters.
The Media Input Matching Type
Some applications cannot accept additional SDPs once the media has been negotiated, so the SBC includes an additional Incoming Message criteria that permits a translation to be matched based on whether media negotiation has been completed.
Early Media Status set to Not Negotiated. For example, the Early Media Status is set to Not Negotiated. As the SIP SDP Offer has not yet been answered, the media is indeed not yet negotiated and, therefore, the match passes. If the remaining Incoming Message matches as well, the translation entry will be used to translate the message to the SIP side.
Early Media Status is set to Negotiated. For example, the Early Media Status is set to Negotiated. Since the media has yet to be negotiated (no SDP Answer has been sent), the match fails. That particular translation entry fails. The next translation entry, if there is one, will be checked.
The same Early Media Status configuration works for SIP to SIP calls.
Early 183 and Negotiated Media
If Early 183 is Enabled in the SIP Signaling Group, the SBC will immediately reply to the INVITE with a 183 w/SDP. The SDP Answer fulfills the negotiated media requirements.
Setting the Early Media Status to ANY causes the translation to ignore the media state.
Because ISDN does not have a concept of negotiated media, set the Early Media Status to ANY for a translation that will be used by a call that originates from ISDN.
Outgoing Message Translation
When a incoming message matches in the Incoming Message configuration, the second phase of the process is to send an outgoing message that conforms to the corresponding Outgoing configuration.
For example, see the call setup below:
- The first 183 matches the Incoming Message configuration and the corresponding Progress is sent based upon the Outgoing configuration.
- The second 183 also matches, but a Progress is not sent as the Outgoing translation configuration is set for No on Subsequent.
- The next SIP packet, 180 Ringing w/SDP, matches the Incoming Message and is translated accordingly. The SDP indicates early media is available, so the SBC begins to receive/send media.
- The subsequent 180 Ringing w/ SDP also matches in the Incoming configuration; however, it is not translated as the Outgoing is configured to No on Cut Through.
The translation table contains just two entries. Each time a packet arrives, each entry is tried sequentially in top-to-bottom order.
The Incoming Message format remains the same, even when the incoming message is SIP. The Message and IE Types do not change to SIP references because any given translation maybe used for either SIP or ISDN. A ISDN to SIP conversion table (below) will assist in selecting the appropriate desired parameters.
183 Session Progress
Most ISDN endpoints do not tolerate receiving more than one Progress or Alert, so the Outgoing translation configuration includes No on Subsquent and No on Cut Through to ensure that only one Progress or Alert is sent regardless of the number of incoming SIP 18X messages. These configuration settings are generally only used for ISDN to SIP calls.
Media Cut Through
The Media Cut Through parameter controls how the SBC handles early media for calls that have:
- Inband ringing
- Network error messages (like busy and reorder)
- IVR messages that play before CONNECT/200 OK is received
Because the Media Cut Through is part of Message Translation (which is applied at the call route), it is possible to override the Signal Group-level Play Ringback setting. In the table below, note how the Media Cut Through configuration interacts with SBC's Ringback setting.
Ringback Configuration/ Media Cut Through
Yes on Early Media
Local Ringback until 1st Inband Media
For SIP-originated calls, Media Cut Through should always be configured to Yes so that network signals like Busy can always be heard by the caller.
For ISDN-originated calls, configure the Media Cut Through to Yes on Early Media if you want the caller to hear inband ringing associated with 183w/SDP.
Mismatching Input Translation Criteria
ISDN messages and Incoming Message configurations are matched or not matched.
- The incoming Progress may not match the Input Message Parameters, which will then proceed to the next entry in the message translation table. Outgoing messages will be translated per the Outgoing configuring table.
If no match is found, or no table is assigned to the call route, the message is translated using the internal translation table.
Invoking a Translation Table
Translation Tables are invoked at the Call Route level. For example, the call route is configured to use the Message Translation Table (i.e., msg xlation). The msg xlation table contains two translation entries (detail for the second entry is displayed).
When a route containing a message translation table is used to route a call, each reply message is checked again the entries in the selected table.
For details on Call Routing, refer to Creating and Modifying Entries to Call Routing Tables.
For details on Message Translation, refer to Creating and Modifying Entries to Message Translation Tables.
Message Translation Reference
For a listing of the pre-programmed Message Translations on the SBC, see Message Translation Reference.