On Mon, Jan 11, 2010 at 4:18 AM, Ahmed Naji <a.alalousi@gmail.com> wrote:
Dear All,

I posted a thread re the subject but didn't get any joy, so perhaps second time lucky.

I need to rewrite a couple of hangup causes to mean NORMAL_CONGESTION and no matter which variables I set, this isn't happening. The idea is to control what codes are returned to an end point after a successful bridge, as well as deal with what codes are returned if the bridge is unsuccessful (e.g. user_busy, originator_cancel ...etc).

I've had limited success by setting hangup_after_bridge=false then bridging to error/<required_code>. This, however only works when the B-leg terminates the call after a successful answer. Any other codes are not rewritten.

I've also tried playing with the bridge_hangup_code and hangup_code variables prior and after bridging, still no joy. I have also set sip_ignore_remote_cause=true prior to entering the bridge, as well explicitly in vars.xml.

By the way, I'm running in proxy-media mode, but I did try it with bypass-media as well. Same symptoms, same behaviour.

Any help with this would be highly appreciated.

Well, I do know that when you do a hangup in the dialplan you can pass an optional cause as well:
<action application="hangup" data="USER_BUSY"/>
If you are doing the hanging up then you have a fair amount of control...
-MC