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.

On this page:

Basic Message Translation

Looking at the diagram below:

  • 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.

SIP INVITE to Sonus SBC 1000/2000

 

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

  1. Identifies specific incoming messages and
  2. 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.

Below a Progress with no Progress Indicator (PI=0) is shown with it's matching Incoming Message configuration. Similarly, a Progress with PI=1 (Not end to end ISDN) is shown with it's matching Incoming Message configuration.

Incoming Message Matching

 

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 it endpoint will support for this particular session.

In the diagram below, 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.

INVITE With SDP Sent to Sonus SBC 1000/2000

 

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.

  • Configuring the Early Media Status to Negotiated means that the incoming message will only be translated if the media is already negotiated
  • Configuring the Early Media Status to Not Negotiated means that an incoming message will only be translated if the media has not yet been negotiated.

In the example below, 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 Set to Not Negotiated

 

In the example below, 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.

Early Media Status set to Negotiated

 

In the example below, the media has been negotiated therefore Early Media Status will be matched. If the rest of the Incoming Message translation is matched, that translation will be used.

Early Media Status Matched

Media Not Negotiated

 

Media Negotiated

Not Match Early Media Status of Not Negotiated

 

Early 183 and Negotiated Media

Early 183 Enabled

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.
In 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.

Call Setup

The translation table above contains just two entries. Each time a packet arrives, each entry is tried sequentially in top-to-bottom order.

You might notice that 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.

Message Type

SIP Message

Progress

183 Session Progress

Alert

180 Ringing

Connect

200 OK

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

Yes

No

Auto

Local Ringback until 1st Inband Media

Inband Media

Local Ringback

Always

Local Ringback

Local Ringback

Local Ringback

Never

Inband media

Inband Media

Always silent

(warning) Remember that the Play Ringback function is only activated when the SBC receives either ALERT or 180.

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

Below are some additional examples of ISDN messages and which Incoming Message configurations are matched and not matched.

Incoming Message Configurations Matched

Incoming Message Configurations Not Matched

If no match is found, or no table is assigned to the call route, the message is translated using the internal translation table.

Examples of Full Translations

Full Translation Example 1

Full Translation Example 2

Full Translation Example 3

Full Translation Example 4

Full Translation Example 5

The above translation is a commonly used to generate ringback when the inbound leg does not provide ALERT or 180.

Invoking a Translation Table

Translation Tables are invoked at the Call Route level. The call route (below) is configured to use the Message Translation Table called msg xlation.

 

Call Route

 

The msg xlation table contains two translation entries (detail for the second entry is displayed).

msg xlation Table

 

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.

Message Translation Reference

For a listing of the pre-programmed Message Translations on the SBC, see Message Translation Reference.