Here are the routing rules that were generated by the 3CX gateway wizard:
<?xml version="1.0" encoding="utf-8"?>
<routing_rules>
<!-- SIP OUT TO sip:localhost:5060 -->
<rule name="default_sip_out" outbound_interface="sip" qvalue="0.001">
<condition param="transfer" expr="false"/>
<condition param="pstn.in.channelName" expr=".*"/>
<condition param="pstn.in.ani" expr="(.*)"/>
<condition param="pstn.in.dnis" expr="([0-9]*)"/>
<condition param="pstn.in.callerName" expr="([0-9a-zA-Z]+)"/>
<out_leg name="" media_type="sendrecv">
<!-- To modify the target SIP destination, just change the value below -->
<param name="sip.out.requestUri" expr="sip:
[email protected]:5060"/>
<param name="sip.out.from.uri" expr="sip:%0@GW_HOST_IP:GW_SIP_PORT"/>
<param name="sip.out.from.displayName" expr="%2"/>
<param name="sip.out.to.uri" expr="sip:%
[email protected]:5060"/>
<param name="sip.out.to.displayName" expr="%1"/>
<param name="sip.out.transport" expr="udp"/>
</out_leg>
</rule>
<!-- PSTN OUT -->
<rule name="default_pstn_out" outbound_interface="pstn" qvalue="0.001">
<condition param="transfer" expr="false"/>
<condition param="sip.in.requestUri.canonical" expr="sip
[0-9]+)@GW_HOST_IP:GW_SIP_PORT"/>
<condition param="sip.in.from.displayName" expr="([0-9]+)"/>
<out_leg name="" media_type="sendrecv">
<param name="pstn.out.phoneNumber" expr="%0"/>
<param name="pstn.out.deviceGroup" expr="default"/>
<param name="pstn.out.cpa.enable" expr="false"/>
<param name="pstn.out.ani" expr="%1"/>
</out_leg>
</rule>
<rule name="redirect_to_sip" outbound_interface="sip" qvalue="0.1">
<condition param="sip.in.redirect.Contact" expr="(.*)"/>
<out_leg name="" media_type="sendrecv">
<param name="sip.out.redirect.Contact" expr="%0"/>
</out_leg>
</rule>
<rule name="redirect_to_pstn" outbound_interface="pstn" qvalue="0.2">
<condition param="sip.in.redirect.Contact" expr="^Contact:.*sip
[0-9]+)@GW_HOST_IP:GW_SIP_PORT"/>
<out_leg name="" media_type="sendrecv">
<param name="pstn.out.phoneNumber" expr="%0"/>
<param name="pstn.out.deviceGroup" expr="default"/>
</out_leg>
</rule>
<!-- SIP to SIP transfer, results in a SIP bridged transfer on the gateway if
transfer target is the gateway and no other transfer rule matches -->
<rule name="sip_to_sip_transfer" outbound_interface="sip" qvalue="0.001">
<condition param="transfer" expr="true"/>
<condition param="sip.in.referTo" expr="(?U)(.*)(?:;|\?|$)"/>
<condition param="sip.in.from.uri" expr="(.*)"/>
<out_leg name="" media_type="sendrecv">
<param name="sip.out.requestUri" expr="%0"/>
<!-- echoing "from" fields of the REFER request -->
<param name="sip.out.from.uri" expr="%1"/>
</out_leg>
</rule>
<!-- PSTN (CTBus/SCBus/Internal audio switch) bridge -->
<rule name="default_pstn_bridge_transfer" outbound_interface="pstn" qvalue="0.01">
<condition param="transfer" expr="true"/>
<condition param="sip.in.referTo.canonical" expr="sip
[0-9]+)@GW_HOST_IP:GW_SIP_PORT"/>
<out_leg name="" media_type="sendrecv">
<param name="pstn.out.phoneNumber" expr="%0"/>
<param name="pstn.out.deviceGroup" expr="default"/>
<param name="pstn.out.transfer.type" expr="2channel-bridged"/>
<param name="pstn.out.transfer.supervision" expr="connect"/>
<param name="pstn.out.transfer.timeoutMs" expr="30000"/>
<param name="paraxip.gw.ringTimeoutMs" expr="0"/>
<param name="paraxip.gw.connectionTimeoutMs" expr="0"/>
</out_leg>
</rule>
</routing_rules>