If a bridged call fails I transfer it to 'to503' extension to overwrite hangup cause. Some carriers reject `bridge` call with hangup code like normal_temporary_failure which i need to override with 503/34. Here is the dialplan and extension to transfer to.
<action application="set" data="continue_on_fail=true"/>
<action application="set" data="hangup_after_bridge=true"/>
<action application="bridge" data=" ...bridge data... "/>
<action application="transfer" data="to503"/>
<extension name="to503">
<condition field="${proto_specific_hangup_cause}" expression="^(.*)$">
<action application="set" data="sip_ignore_remote_cause=true"/>
<action application="respond" data="503"/>
<action application="hangup" data="NORMAL_CIRCUIT_CONGESTION"/>
</condition>
</extension>
It works fine but in saved xml_cdr file that i process later 'sip_network_ip' variable is wrong, its taken from some of the other incoming calls and looks always random. How can i please get right ip from originated call? If i set leg to "transfer" data="-bleg to503" i get NORMAL_CLEARING as hangup code, with -both i get what i need but IP is incorrect.
Maybe there is a way to respond with 503 without transferring the call to extension. If i simply respond with data='503' without transfer i get 503 but 41 instead of 503/34 NORMAL_CIRCUIT_CONGESTION.
Thanks in advance