Acme Packet SBC and Configuring “Selective” Early Media Suppression

The Acme Packet SBC includes support for Early Media Suppression. This allows you to decide what Realms can and cannot support Early Media and in what direction Early Media is allowed.

Taking it one step further, the Acme Packet SBC also supports Selective Early Media Suppression. This means that even if a realm is configured to receive Early Media for all calls, the SBC can still be configured to deny Early Media from certain realms (even if those realms can send early media to other destinations) through the use of Realm Groups.

Early Media is defined by an endpoint sending RTP/RTCP packets before a SIP session is established by a 200 OK. Otherwise, the expected behavior is media does not begin flowing between endpoints until 200 OK is received. Instances where early media may occur is when a user calls the PSTN and an announcement is immediately played or a custom ringtone (ie. music) is heard when calling a mobile phone.

There may be a variety of reasons why one does not want to allow Early Media under specific conditions. For example (real world) a Service Provider supporting Hosted IP PBX subscribers and SIP Trunking customers sends PSTN traffic from their network to multiple PSTN Media Gateways. One gateway supports outbound Local and Domestic Long Distance calls and the other media gateway supports outbound International calls. The Service Provider doesn’t want to allow Early Media from the International gateway to flow inbound to their Hosted IP PBX customer base, but they will allow Early Media to flow from the International media gateway to their SIP Trunking customer base. The Local and Domestic Long Distance media gateway is allowed to send Early Media to either customer base.

First, it’s important to cover the basics of implementing Early Media Suppression. This may be configured within a Realm or a Session Agent using the early-media-allow parameter. When a call egresses the SBC to a specific realm, the matching realm’s early-media-allow setting will be applied to either allow-all, block-all, or block one-way early media until a 200 OK is received. Media must be anchored to the SBC in order for Early Media settings to have any effect. In this example, calls are originated from the Access (Hosted IP PBX) realm to the PSTN (Access realm’s next-hop is the Core realm).

APKT-6300(realm-config)# show

    identifier                  Core
    description                 PSTN Media Gateway
    network-interface           s0p0:0
    mm-in-realm                 enabled
    symetric-latching           disabled
    early-media-allow           none

APKT-6300(realm-config)# early-media-allow ?

<enumeration> how to handle early media
    <none, reverse, both>
    none: no early media allowed
    reverse: allow early media in the direction of calling endpoint
    both: allow early media in both directions

This example has early-media-allow set to none in the realm configuration. Early Media is not allowed in either direction. Therefore, if an Access subscriber calls the PSTN, no Early Media is permitted back to the Access realm, and vice-versa.


This example has early-media-allow set to reverse which in this case allows a Hosted IP PBX subscriber to place a call to BroadWorks or the PSTN and hear early media. However, the subscribers are not permitted to send Early Media in the other direction since early-media-allow is set to reverse and not both.


So far we have statically defined to always always allow Early Media from one direction. Now for a scenario that is a little more tricky. Lets say calls originating from the Access realm which route to the ITSP-1 realm/media gateway are not allowed to hear Early Media. However, calls originating from the Access realm which route to the ITSP-2 realm/media gateway are allowed to hear Early Media. However, ITSP-1 is allowed to send Early Media to other realms (ie. Acces-2, Acces-3, etc.). Only the “Access” realm cannot receive Early Media from ITSP-1.

The trick in this topology is all media gateways are allowed to send Early Media to any realm, and Access is allowed to receive Early Media from any realm. We want to selectively suppress only when the Early Media RTP traverses specifically from ITSP-1 to Access.

By using Realm Groups, we can essentially build a logical binding of source and destination realms together and customize Early Media settings just for calls flowing across those two realms.

APKT-6300# config t
APKT-6300(configure)# media-manager
APKT-6300(media-manager)# realm-group
APKT-6300(realm-group)# source-realm "Access, ITSP-1"
APKT-6300(realm-group)# destination-realm "Access"
APKT-6300(realm-group)# early-media-allow-direction none

Now only calls that are originated from the Access realm to ITSP-1 realm will be prohibited from receiving early media from the ITSP-1 Media Gateway. If the same call routes to ITSP-2, Early Media is allowed.