[Freeswitch-trunk] [commit] r6900 - freeswitch/trunk/scripts/contrib/trixter/dialplan

Freeswitch SVN trixter at freeswitch.org
Wed Dec 19 03:04:54 EST 2007


Author: trixter
Date: Wed Dec 19 03:04:54 2007
New Revision: 6900

Added:
   freeswitch/trunk/scripts/contrib/trixter/dialplan/README
Modified:
   freeswitch/trunk/scripts/contrib/trixter/dialplan/dialplan.nanpa.xml
   freeswitch/trunk/scripts/contrib/trixter/dialplan/dialplan.nl.xml
   freeswitch/trunk/scripts/contrib/trixter/dialplan/localized.dialplan.xml

Log:
Fixed and a readme.  DO NOT READ THE README FILE.  It contains secret information and should never be read 
under any circumstances.  Seriously, dont read it.  I am not joking.



Added: freeswitch/trunk/scripts/contrib/trixter/dialplan/README
==============================================================================
--- (empty file)
+++ freeswitch/trunk/scripts/contrib/trixter/dialplan/README	Wed Dec 19 03:04:54 2007
@@ -0,0 +1,189 @@
+This dialplan was originally based on work by intralanman however I refactored
+what he did so that it was more configurable.  Now instead of requiring multiple
+different dialplans you have one and channel variables which lets you set
+a per user dial mapping very easily.
+
+I originally started working on this for http://fswebpanel.sf.net a web based 
+configuration tool I am working on for FreeSWITCH.  Currently fswebpanel supports
+this dialplan, and you can create users that set the variables.  This makes
+it much easier to deal with.
+
+
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+SCOPE AND PURPOSE
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+This directory is designed to provide drop in replacement dialing plans that 
+simulate what the PSTN normally provides.  It is not intended to provide a 
+black list of numbers, what may be high cost, etc.  With that said, if you 
+want to add variables that would define these things I suggest that you add
+them at the end of the file instead of mixed throughout.  This makes it 
+easier if someone wants a clean dialplan vs someone who wants to implement 
+advanced features.
+
+The reason to make a dialplan that matches what the traditional phone company
+does is simply so that users feel more comfortable using the phone system.
+It is bothersome, to me at least, to have to learn a whole new way to place
+calls, especially when it is trivial to map what I dial as a user to what
+some foreign system expects.
+
+
+
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+EXPLANATION OF DIALPLAN
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+There are multiple files and it can become a little confusing, so I will attempt
+to explain how to use this information should you decide to.  My hope is that it
+will eventually be part of the default config, until then you must manually
+configure this.
+
+localized.dialplan.xml is a DIALPLAN file.  You must edit your dialplan,
+typically in INSTALL/conf/dialplan/default.xml where INSTALL is your
+install directory (eg /usr/local/freeswitch on unix like systems).
+
+If you want this to be used *with* your default context you must remove
+the lines
+
+<context name="INT-Numbering-Plan">
+</context>
+
+and place the remainder in the default context tags.  
+
+
+They have their own context tags so that they may be used seperately
+should you opt to do that.  
+
+You should not have to edit anything else to get this to work, unless
+your provider requires you to prefix numbers with something.  This
+is often not the case, so it should work with the majority of providers.
+
+
+
+
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+EXPLANATION OF THE VARIABLE FILES
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+There are several variable files, one for a given region that has been done
+so far.  These variables are used by the dialplan to figure out how to
+deal with a call.  An attempt is made to query enum, if that fails
+then it will use the default gateway that is defined.
+
+You may set these variables globally, or you may set them on a per user 
+basis from the user directory.  The option is yours.
+
+There are two types of variables, static which are simply strings, 
+and regexps.  Due to the way variables are used you should not 
+attempt to use a regexp unless it is indicated that it is a regexp.
+
+
+
+<!--
+TYPE: static
+The name for the gateway to send calls to if ENUM fails
+This name would be defined in your sip profile.
+-->
+<variable name="default_gateway" value="asterlink.com"/>
+
+
+
+<!--
+TYPE: static
+This is the country code, it should be numeric only and static
+-->
+<variable name="default_country_code" value="31"/>
+
+
+
+<!--
+TYPE: static
+This is the international prefix.  This is static data
+-->
+<variable name="default_international_prefix" value="00"/>
+
+<!--T
+TYPE: regexp
+this matches international dialing.  In this example I dial
+00 country code & number for international calls. This matches 
+everything except the 00 so that an ENUM lookup can be performed
+-->
+<variable name="default_international_regexp" value="^00(\d+)$"/>
+
+
+<!--
+TYPE: regexp
+This matches when I dial out of my 'area'.  For example if I am in Cork, 
+Ireland, and I want to call a mobile phone I dial 08...  The leading '0' 
+indicates that I am calling outside my local area (Cork is '20') to '8'.
+We need to strip off the '0' since it is just a dialing prefix and not 
+part of the number itself
+-->
+<variable name="default_domestic_regexp" value="^0([1-9]\d+)$"/>
+
+
+
+<!--
+TYPE: static
+This is the local prefix.  For example, in Ireland
+if I am in Cork my 'city code' is 20.  If I dial
+a local number I do not have to dial the '20'.  This is 
+used for enum to work on a 'local' call.
+-->
+<variable name="default_local_prefix" value="20"/>
+
+
+
+<!--
+TYPE: regexp
+This is what would match if I am in Cork and call someone else
+who is in Cork.  The default_local_prefix variable is used to
+make a full ENUM number.
+-->
+<variable name="default_local_regexp" value="^([1-9]\d+)$"/>
+
+
+
+<!--
+TYPE: regexp
+This is what matches to route a call to emergency services.
+It may optionally be used for more services than that, it is just 
+directly routed without enum.  For Europe generally 112 will work, for
+North America 911 will work.  This can be a regexp which will allow for
+routing of say 611 (repair), 411 (information), 911 (emergency) in
+NANPA.
+-->
+<variable name="default_emergency_number" value="^112$"/>
+
+
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+HOW TO MAKE A DIALPLAN
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+This is quite simple, just copy one of the existing dialplan.XX.xml files
+to dialplan.YY.xml where YY is the 2 letter country code for the area you
+are going to do.  For Europe the NL one will likely be correct for all but
+the country code.
+
+The reason to use the 2 letter ISO country code (IE - Ireland, UK - United Kingdom
+ES - Spain, etc) is so that everything is standardized and generally a fixed length.
+One exception I am aware of is NANPA which is 18 or so countries (all country code '1')
+Since there are multiple countries the numbering authority is used instead.
+
+Please keep all filenames in lowercase.  This helps with sorted lists, since
+an ASCII sort would split entries that have different cases when they should
+otherwise be next to each other.
+
+Now that you have a new file, simply edit the values and you are done.  If you share
+this information then others may more easily have a dialing plan that works the way
+they expect it to.  
+
+DONT FORGET TO ADD YOUR NAME IN COMMENTS AT THE TOP OF THE FILE.  I cannot
+possibly know every dialing plan that exists, and for now since I am maintaining
+this, someone may have a question about something that I wont be able to answer.
+It would be best if they could get hold of you directly to resolve any issues
+that may arise.
+
+Email the file to trixternospam at 0xdecafbad.com and I will add it here.  Eventually
+there will be a place with fswebpanel to provide this information, and its possible
+that this may be merged into FS trunk, when either of those happen I will close this
+area down and request that they be filed directly where they can be used by more
+people more easily.

Modified: freeswitch/trunk/scripts/contrib/trixter/dialplan/dialplan.nanpa.xml
==============================================================================
--- freeswitch/trunk/scripts/contrib/trixter/dialplan/dialplan.nanpa.xml	(original)
+++ freeswitch/trunk/scripts/contrib/trixter/dialplan/dialplan.nanpa.xml	Wed Dec 19 03:04:54 2007
@@ -13,7 +13,7 @@
 <variablename="default_local_prefix" value="800"/>
 
 <!-- What matches international dialing -->
-<variable name="default_international_regexp" value="^${default_international_prefix}(\d+)$"/>
+<variable name="default_international_regexp" value="^011(\d+)$"/>
 
 <!-- What matches a domestic out of area call -->
 <variable name="default_domestic_regexp" value="^1?([2-9]\d{2}[2-9]\d{6})$"/>

Modified: freeswitch/trunk/scripts/contrib/trixter/dialplan/dialplan.nl.xml
==============================================================================
--- freeswitch/trunk/scripts/contrib/trixter/dialplan/dialplan.nl.xml	(original)
+++ freeswitch/trunk/scripts/contrib/trixter/dialplan/dialplan.nl.xml	Wed Dec 19 03:04:54 2007
@@ -13,7 +13,7 @@
 <variable name="default_local_prefix" value="20"/>
 
 <!-- What matches international dialing -->
-<variable name="default_international_regexp" value="^${default_international_prefix}(\d+)$"/>
+<variable name="default_international_regexp" value="^00(\d+)$"/>
 
 <!-- What matches a domestic out of area call -->
 <variable name="default_domestic_regexp" value="^0([1-9]\d+)$"/>

Modified: freeswitch/trunk/scripts/contrib/trixter/dialplan/localized.dialplan.xml
==============================================================================
--- freeswitch/trunk/scripts/contrib/trixter/dialplan/localized.dialplan.xml	(original)
+++ freeswitch/trunk/scripts/contrib/trixter/dialplan/localized.dialplan.xml	Wed Dec 19 03:04:54 2007
@@ -19,7 +19,7 @@
   For international
  -->
  <extension name="INT-International">
-   <condition field="destination_number" expression="^${default_international_regexp}$">
+   <condition field="destination_number" expression="${default_international_regexp}">
      <action application="set" data="continue_on_fail=true"/>
      <action application="set" data="hangup_after_bridge=true"/>
      <action application="enum" data="$1"/>



More information about the Freeswitch-trunk mailing list