|
@@ -0,0 +1,83 @@
|
|
|
|
+###########
|
|
|
|
+Toll Allow
|
|
|
|
+###########
|
|
|
|
+
|
|
|
|
+Toll Allow is a variable that can be set per extension. It allows you to
|
|
|
|
+limit who can make what type of calls. Note that although the variable
|
|
|
|
+is provided in the extension configuration, the default dialplan DOES
|
|
|
|
+NOT make use of it. Therefore if you want to use it you need to add
|
|
|
|
+statements to the dialplan to enable it.
|
|
|
|
+
|
|
|
|
+The following are notes on Toll Allow that were captured from IRC
|
|
|
|
+discussions on the topic. This needs to be updated by someone who
|
|
|
|
+understands it or has used it:
|
|
|
|
+
|
|
|
|
+| ``An example for the contents of the toll_allow variable would be:``
|
|
|
|
+|
|
|
|
|
+
|
|
|
|
+| ``You can then add information to your dialplan to process this variable. In the example XML below, if the valid allow value isn't present then``
|
|
|
|
+| ``an extension shouldn't be able to dial out. However extension -> extension should still work.``
|
|
|
|
+
|
|
|
|
+| ``The following code are example XML for standard outbound routes (Dialplan->OutboundRoutes). Effectively you are applying an additional ``
|
|
|
|
+| ``condition to EACH outbound route that you want to limit. So in the FusionPBX GUI select an outbound route and add a condition, type ``
|
|
|
|
+| ``"${toll_allow}", data "local". Order is important, this should be the FIRST condition of your outbound route.``
|
|
|
|
+| ``You'll need to do that for all of your outbound routes, tag them local, domestic, or international depending on what they are.``
|
|
|
|
+| ``On some installations this example file will be present in /usr/local/freeswitch/conf/dialplan/default/01_example.com.xml: ``
|
|
|
|
+
|
|
|
|
+|
|
|
|
|
+
|
|
|
|
+::
|
|
|
|
+
|
|
|
|
+ <include>
|
|
|
|
+ <extension name="local.example.com">
|
|
|
|
+ <condition field="${toll_allow}" expression="local"/>
|
|
|
|
+ <condition field="destination_number" expression="^(\d{7})$">
|
|
|
|
+ <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
|
|
|
|
+ <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
|
|
|
|
+ <action application="bridge" data="sofia/gateway/${default_gateway}/1${default_areacode}$1"/>
|
|
|
|
+ </condition>
|
|
|
|
+ </extension>
|
|
|
|
+
|
|
|
|
+ <extension name="domestic.example.com">
|
|
|
|
+ <condition field="${toll_allow}" expression="domestic"/>
|
|
|
|
+ <condition field="destination_number" expression="^(\d{11})$">
|
|
|
|
+ <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
|
|
|
|
+ <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
|
|
|
|
+ <action application="bridge" data="sofia/gateway/${default_gateway}/$1"/>
|
|
|
|
+ </condition>
|
|
|
|
+ </extension>
|
|
|
|
+
|
|
|
|
+ <extension name="international.example.com">
|
|
|
|
+ <condition field="${toll_allow}" expression="international"/>
|
|
|
|
+ <condition field="destination_number" expression="^(011\d+)$">
|
|
|
|
+ <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
|
|
|
|
+ <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
|
|
|
|
+ <action application="bridge" data="sofia/gateway/${default_gateway}/$1"/>
|
|
|
|
+ </condition>
|
|
|
|
+ </extension>
|
|
|
|
+ </include>
|
|
|
|
+
|
|
|
|
+|
|
|
|
|
+
|
|
|
|
+The above example is how to PERMIT calls. The example below takes the
|
|
|
|
+opposite approach and is how to PREVENT calls. Effectively, the above
|
|
|
|
+example assumes all calls are bad (except internal) unless they are
|
|
|
|
+flagged as good by the value of the toll\_allow variable. The below
|
|
|
|
+example takes the opposite approach - it assumes that all calls are good
|
|
|
|
+unless they are flagged as bad.
|
|
|
|
+
|
|
|
|
+| ``Put this in your advanced dialplan. In the toll allow of whatever extension you wanted to restrict put the value 'local'. This example ``
|
|
|
|
+| ``restricts from calling 10 or 11 digit numbers.``
|
|
|
|
+
|
|
|
|
+|
|
|
|
|
+
|
|
|
|
+::
|
|
|
|
+
|
|
|
|
+ <extension name="localcalls" >
|
|
|
|
+ <condition field="${toll_allow}" expression="local"/>
|
|
|
|
+ <condition field="destination_number" expression="(^\d{10}$|^\d{11}$)">
|
|
|
|
+ <action application="hangup"/>
|
|
|
|
+ </condition>
|
|
|
|
+ </extension>
|
|
|
|
+
|
|
|
|
+|
|