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@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"/>