Re-Invite To Native Bridge

Home » Asterisk Users » Re-Invite To Native Bridge
Asterisk Users No Comments

Hello all,

My Asterisk is between my ITSP and a SIP phone. I cannot do direct media between the provider and the SIP phone, but I would like Asterisk to locally RTP bridge the two channels using native_rtp.

Example:

My SIP phone supports G722 and PCMA, as does the ITSP provider. But depending on the other party in a call, the ITSP may only offer PCMA.

So with my current setting (allow=!all,g722,alaw) I run into this situation when the ITSP doesn’t offer G722:

ITSP <- PCMA -> Asterisk <- G722 -> SIP phone

Obviously that’s not optimal. Transcoding needs to take place.

I’m looking for a way to get Asterisk to re-INVITE/UPDATE the SIP phone, to renegotiate the codec, to avoid transcoding.

I searched the web and found that there are pre-bridge handlers. But they are executed on the called party channel. So that wouldn’t help when doing an outbound call, plus I’m not sure how I could extract enough information from the other channel to know if a reinvite is needed (e.g. the codec the other channel is using).

I also found the Media Format Rewrite article on the wiki:
https://wiki.asterisk.org/wiki/display/AST/Media+Format+Rewrite

In the General Rules paragraph point 3 states (quote):

Prior to entering a bridge, a dialplan function can be used to set whether or not that channel will attempt to make itself compatible with whatever is in the bridge with it. If a channel enters a bridge that has another channel in it with a format it supports, it will attempt to switch the channel to the bridged channel’s format to facilitate native bridging. Note that this has no bearing in multi-party bridges, where everyone is transcoded.

There’s another paragraph called “Re-Invite to Native Bridge” with an example where Alice and Bob have a differently ordered set of codecs and Alice’s channel is set to re-INVITE back to native bridging if possible. After the re-INVITE Asterisk switches to a native bridge.

Well, that is exactly what I want 🙂

I installed Asterisk 13.6.0 hoping that I could get it to do this. But until now I haven’t found out how.

Does anybody know if this feature from the Media Format Rewrite article is already available?

Kind regards, Sebastian