- <!--
- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
- This is the FreeSWITCH default config. Everything you see before you now traverses
- down into all the directories including files which include more files. The default
- config comes out of the box already working in most situations as a PBX. This will
- allow you to get started testing and playing with various things in FreeSWITCH.
- Before you start to modify this default please visit this wiki page:
- http://wiki.freeswitch.org/wiki/Getting_Started_Guide#Some_stuff_to_try_out.21
- If all else fails you can read our FAQ located at:
- http://wiki.freeswitch.org/wiki/FreeSwitch_FAQ
- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
- -->
- <document type="freeswitch/xml">
- <!-- Preprocessor Variables
- These are introduced when configuration strings must be consistent across modules.
- WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
- YOU SHOULD CHANGE THIS default_password value if you don't want to be subject to any
- toll fraud in the future. It's your responsibility to secure your own system.
- This default config is used to demonstrate the feature set of FreeSWITCH.
- WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
- -->
- <!-- Did you change it yet? -->
- <!--
- The following variables are set dynamically - calculated if possible by freeswitch - and
- are available to the config as . You can see their calculated value via fs_cli
- by entering eval
- hostname
- local_ip_v4
- local_mask_v4
- local_ip_v6
- switch_serial
- base_dir
- recordings_dir
- sound_prefix
- sounds_dir
- conf_dir
- log_dir
- run_dir
- db_dir
- mod_dir
- htdocs_dir
- script_dir
- temp_dir
- grammar_dir
- certs_dir
- storage_dir
- cache_dir
- core_uuid
- zrtp_enabled
- nat_public_addr
- nat_private_addr
- nat_type
- -->
- <!--
- This setting is what sets the default domain FreeSWITCH will use if all else fails.
- FreeSWICH will default to 192.168.0.103 unless changed. Changing this setting does
- affect the sip authentication. Please review conf/directory/default.xml for more
- information on this topic.
- -->
- <!--
- Enable ZRTP globally you can override this on a per channel basis
- http://wiki.freeswitch.org/wiki/ZRTP (on how to enable zrtp)
- -->
- <!--
- NOTICE: When using SRTP it's critical that you do not offer or accept
- variable bit rate codecs, doing so would leak information and possibly
- compromise your SRTP stream. (FS-6404)
- Supported SRTP Crypto Suites:
- AEAD_AES_256_GCM_8
- ____________________________________________________________________________
- This algorithm is identical to AEAD_AES_256_GCM (see Section 5.2 of
- [RFC5116]), except that the tag length, t, is 8, and an
- authentication tag with a length of 8 octets (64 bits) is used.
- An AEAD_AES_256_GCM_8 ciphertext is exactly 8 octets longer than its
- corresponding plaintext.
- AEAD_AES_128_GCM_8
- ____________________________________________________________________________
- This algorithm is identical to AEAD_AES_128_GCM (see Section 5.1 of
- [RFC5116]), except that the tag length, t, is 8, and an
- authentication tag with a length of 8 octets (64 bits) is used.
- An AEAD_AES_128_GCM_8 ciphertext is exactly 8 octets longer than its
- corresponding plaintext.
- AES_CM_256_HMAC_SHA1_80 | AES_CM_192_HMAC_SHA1_80 | AES_CM_128_HMAC_SHA1_80
- ____________________________________________________________________________
- AES_CM_128_HMAC_SHA1_80 is the SRTP default AES Counter Mode cipher
- and HMAC-SHA1 message authentication with an 80-bit authentication
- tag. The master-key length is 128 bits and has a default lifetime of
- a maximum of 2^48 SRTP packets or 2^31 SRTCP packets, whichever comes
- first.
- AES_CM_256_HMAC_SHA1_32 | AES_CM_192_HMAC_SHA1_32 | AES_CM_128_HMAC_SHA1_32
- ____________________________________________________________________________
- This crypto-suite is identical to AES_CM_128_HMAC_SHA1_80 except that
- the authentication tag is 32 bits. The length of the base64-decoded key and
- salt value for this crypto-suite MUST be 30 octets i.e., 240 bits; otherwise,
- the crypto attribute is considered invalid.
- AES_CM_128_NULL_AUTH
- ____________________________________________________________________________
- The SRTP default cipher (AES-128 Counter Mode), but to use no authentication
- method. This policy is NOT RECOMMENDED unless it is unavoidable; see
- Section 7.5 of [RFC3711].
- SRTP variables that modify behaviors based on direction/leg:
- rtp_secure_media
- ____________________________________________________________________________
- possible values:
- mandatory - Accept/Offer SAVP negotiation ONLY
- optional - Accept/Offer SAVP/AVP with SAVP preferred
- forbidden - More useful for inbound to deny SAVP negotiation
- false - implies forbidden
- true - implies mandatory
- default if not set is accept SAVP inbound if offered.
- rtp_secure_media_inbound | rtp_secure_media_outbound
- ____________________________________________________________________________
- This is the same as rtp_secure_media, but would apply to either inbound
- or outbound offers specifically.
- How to specify crypto suites:
- ____________________________________________________________________________
- By default without specifying any crypto suites FreeSWITCH will offer
- crypto suites from strongest to weakest accepting the strongest each
- endpoint has in common. If you wish to force specific crypto suites you
- can do so by appending the suites in a comma separated list in the order
- that you wish to offer them in.
- Examples:
- rtp_secure_media=mandatory:AES_CM_256_HMAC_SHA1_80,AES_CM_256_HMAC_SHA1_32
- rtp_secure_media=true:AES_CM_256_HMAC_SHA1_80,AES_CM_256_HMAC_SHA1_32
- rtp_secure_media=optional:AES_CM_256_HMAC_SHA1_80
- rtp_secure_media=true:AES_CM_256_HMAC_SHA1_80
- Additionally you can narrow this down on either inbound or outbound by
- specifying as so:
- rtp_secure_media_inbound=true:AEAD_AES_256_GCM_8
- rtp_secure_media_inbound=mandatory:AEAD_AES_256_GCM_8
- rtp_secure_media_outbound=true:AEAD_AES_128_GCM_8
- rtp_secure_media_outbound=optional:AEAD_AES_128_GCM_8
- rtp_secure_media_suites
- ____________________________________________________________________________
- Optionaly you can use rtp_secure_media_suites to dictate the suite list
- and only use rtp_secure_media=[optional|mandatory|false|true] without having
- to dictate the suite list with the rtp_secure_media* variables.
- -->
- <!--
- Examples of codec options: (module must be compiled and loaded)
- codecname[@8000h|16000h|32000h[@XXi]]
- XX is the frame size must be multples allowed for the codec
- FreeSWITCH can support 10-120ms on some codecs.
- We do not support exceeding the MTU of the RTP packet.
- iLBC@30i - iLBC using mode=30 which will win in all cases.
- DVI4@8000h@20i - IMA ADPCM 8kHz using 20ms ptime. (multiples of 10)
- DVI4@16000h@40i - IMA ADPCM 16kHz using 40ms ptime. (multiples of 10)
- speex@8000h@20i - Speex 8kHz using 20ms ptime.
- speex@16000h@20i - Speex 16kHz using 20ms ptime.
- speex@32000h@20i - Speex 32kHz using 20ms ptime.
- BV16 - BroadVoice 16kb/s narrowband, 8kHz
- BV32 - BroadVoice 32kb/s wideband, 16kHz
- G7221@16000h - G722.1 16kHz (aka Siren 7)
- G7221@32000h - G722.1C 32kHz (aka Siren 14)
- CELT@32000h - CELT 32kHz, only 10ms supported
- CELT@48000h - CELT 48kHz, only 10ms supported
- GSM@40i - GSM 8kHz using 40ms ptime. (GSM is done in multiples of 20, Default is 20ms)
- G722 - G722 16kHz using default 20ms ptime. (multiples of 10)
- PCMU - G711 8kHz ulaw using default 20ms ptime. (multiples of 10)
- PCMA - G711 8kHz alaw using default 20ms ptime. (multiples of 10)
- G726-16 - G726 16kbit adpcm using default 20ms ptime. (multiples of 10)
- G726-24 - G726 24kbit adpcm using default 20ms ptime. (multiples of 10)
- G726-32 - G726 32kbit adpcm using default 20ms ptime. (multiples of 10)
- G726-40 - G726 40kbit adpcm using default 20ms ptime. (multiples of 10)
- AAL2-G726-16 - Same as G726-16 but using AAL2 packing. (multiples of 10)
- AAL2-G726-24 - Same as G726-24 but using AAL2 packing. (multiples of 10)
- AAL2-G726-32 - Same as G726-32 but using AAL2 packing. (multiples of 10)
- AAL2-G726-40 - Same as G726-40 but using AAL2 packing. (multiples of 10)
- LPC - LPC10 using 90ms ptime (only supports 90ms at this time in FreeSWITCH)
- L16 - L16 isn't recommended for VoIP but you can do it. L16 can exceed the MTU rather quickly.
- These are the passthru audio codecs:
- G729 - G729 in passthru mode. (mod_g729)
- G723 - G723.1 in passthru mode. (mod_g723_1)
- AMR - AMR in passthru mode. (mod_amr)
- These are the passthru video codecs: (mod_h26x)
- H261 - H.261 Video
- H263 - H.263 Video
- H263-1998 - H.263-1998 Video
- H263-2000 - H.263-2000 Video
- H264 - H.264 Video
- RTP Dynamic Payload Numbers currently used in FreeSWITCH and what for.
- 96 - AMR
- 97 - iLBC (30)
- 98 - iLBC (20)
- 99 - Speex 8kHz, 16kHz, 32kHz
- 100 -
- 101 - telephone-event
- 102 -
- 103 -
- 104 -
- 105 -
- 106 - BV16
- 107 - G722.1 (16kHz)
- 108 -
- 109 -
- 110 -
- 111 -
- 112 -
- 113 -
- 114 - CELT 32kHz, 48kHz
- 115 - G722.1C (32kHz)
- 116 -
- 117 - SILK 8kHz
- 118 - SILK 12kHz
- 119 - SILK 16kHz
- 120 - SILK 24kHz
- 121 - AAL2-G726-40 && G726-40
- 122 - AAL2-G726-32 && G726-32
- 123 - AAL2-G726-24 && G726-24
- 124 - AAL2-G726-16 && G726-16
- 125 -
- 126 -
- 127 - BV32
- -->
- <!--
- xmpp_client_profile and xmpp_server_profile
- xmpp_client_profile can be any string.
- xmpp_server_profile is appended to "dingaling_" to form the database name
- containing the "subscriptions" table.
- used by: dingaling.conf.xml enum.conf.xml
- -->
- <!--
- THIS IS ONLY USED FOR DINGALING
- bind_server_ip
- Can be an ip address, a dns name, or "auto".
- This determines an ip address available on this host to bind.
- If you are separating RTP and SIP traffic, you will want to have
- use different addresses where this variable appears.
- Used by: dingaling.conf.xml
- -->
- <!-- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
- If you're going to load test FreeSWITCH please input real IP addresses
- for external_rtp_ip and external_sip_ip
- -->
- <!-- external_rtp_ip
- Can be an one of:
- ip address: "12.34.56.78"
- a stun server lookup: "stun:stun.server.com"
- a DNS name: "host:host.server.com"
- where fs.mydomain.com is a DNS A record-useful when fs is on
- a dynamic IP address, and uses a dynamic DNS updater.
- If unspecified, the bind_server_ip value is used.
- Used by: sofia.conf.xml dingaling.conf.xml
- -->
- <!-- external_sip_ip
- Used as the public IP address for SDP.
- Can be an one of:
- ip address: "12.34.56.78"
- a stun server lookup: "stun:stun.server.com"
- a DNS name: "host:host.server.com"
- where fs.mydomain.com is a DNS A record-useful when fs is on
- a dynamic IP address, and uses a dynamic DNS updater.
- If unspecified, the bind_server_ip value is used.
- Used by: sofia.conf.xml dingaling.conf.xml
- -->
- <!-- unroll-loops
- Used to turn on sip loopback unrolling.
- -->
- <!-- outbound_caller_id and outbound_caller_name
- The caller ID telephone number we should use when calling out.
- Used by: conference.conf.xml and user directory for default
- outbound callerid name and number.
- -->
- <!-- various debug and defaults -->
- <!-- if false or undefined, the destination number is included in presence NOTIFY dm:note.
- if true, the destination number is not included -->
- <!--
- Digits Dialed filter: (FS-6940)
- The digits stream may contain valid credit card numbers or social security numbers, These digit
- filters will allow you to make a valant effort to stamp out sensitive information for
- PCI/HIPPA compliance. (see xml_cdr dialed_digits)
- df_us_ssn = US Social Security Number pattern
- df_us_luhn = Visa, MasterCard, American Express, Diners Club, Discover and JCB
- -->
- <!-- change XX to X below to enable -->
- <!--
- Setting up your default sip provider is easy.
- Below are some values that should work in most cases.
- These are for conf/directory/default/example.com.xml
- -->
- <!-- true or false -->
- <!--
- SIP and TLS settings. http://wiki.freeswitch.org/wiki/Tls
- valid options: sslv2,sslv3,sslv23,tlsv1,tlsv1.1,tlsv1.2
- default: tlsv1,tlsv1.1,tlsv1.2
- -->
- <!--
- TLS cipher suite: default ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
- The actual ciphers supported will change per platform.
- openssl ciphers -v 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'
- Will show you what is available in your verion of openssl.
- Freeswitch does not support non-Elliptic Curve Diffie Hellman key
- exchange.
- -->
- <!-- Internal SIP Profile -->
- <!-- External SIP Profile -->
- <section name="configuration" description="Various Configuration">
- <configuration name="abstraction.conf" description="Abstraction">
- <apis>
- <api name="user_name" description="Return Name for extension" syntax="<exten>" parse="(.*)" destination="user_data" argument="$1@default var effective_caller_id_name"/>
- </apis>
- </configuration>
- <configuration name="acl.conf" description="Network Lists">
- <network-lists>
- <!--
- These ACL's are automatically created on startup.
- rfc1918.auto - RFC1918 Space
- nat.auto - RFC1918 Excluding your local lan.
- localnet.auto - ACL for your local lan.
- loopback.auto - ACL for your local lan.
- -->
- <list name="lan" default="allow">
- <node type="deny" cidr="192.168.42.0/24"/>
- <node type="allow" cidr="192.168.42.42/32"/>
- </list>
- <!--
- This will traverse the directory adding all users
- with the cidr= tag to this ACL, when this ACL matches
- the users variables and params apply as if they
- digest authenticated.
- -->
- <list name="domains" default="deny">
- <!-- domain= is special it scans the domain from the directory to build the ACL -->
- <node type="allow" domain="192.168.0.103"/>
- <!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
- <!-- <node type="allow" cidr="192.168.0.0/24"/> -->
- </list>
- </network-lists>
- </configuration>
- <configuration name="alsa.conf" description="Soundcard Endpoint">
- <settings>
- <!--Default dialplan and caller-id info -->
- <param name="dialplan" value="XML"/>
- <param name="cid-name" value="N800 Alsa"/>
- <param name="cid-num" value="5555551212"/>
- <!--audio sample rate and interval -->
- <param name="sample-rate" value="8000"/>
- <param name="codec-ms" value="20"/>
- </settings>
- </configuration>
- <configuration name="mod_blacklist.conf" description="Blacklist module">
- <lists>
- <!--
- Example blacklist, the referenced file contains blacklisted items, one entry per line
- NOTE: make sure the file exists and is readable by FreeSWITCH.
- <list name="example" filename="C:/Program Files/FreeSWITCH/conf/blacklists/example.list"/>
- -->
- </lists>
- </configuration>
- <configuration name="callcenter.conf" description="CallCenter">
- <settings>
- <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
- <!--<param name="dbname" value="/dev/shm/callcenter.db"/>-->
- </settings>
- <queues>
- <queue name="support@default">
- <param name="strategy" value="longest-idle-agent"/>
- <param name="moh-sound" value="local_stream://moh"/>
- <!--<param name="record-template" value="C:/Program Files/FreeSWITCH/recordings/${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>-->
- <param name="time-base-score" value="system"/>
- <param name="max-wait-time" value="0"/>
- <param name="max-wait-time-with-no-agent" value="0"/>
- <param name="max-wait-time-with-no-agent-time-reached" value="5"/>
- <param name="tier-rules-apply" value="false"/>
- <param name="tier-rule-wait-second" value="300"/>
- <param name="tier-rule-wait-multiply-level" value="true"/>
- <param name="tier-rule-no-agent-no-wait" value="false"/>
- <param name="discard-abandoned-after" value="60"/>
- <param name="abandoned-resume-allowed" value="false"/>
- </queue>
- </queues>
- <!-- WARNING: Configuration of XML Agents will be updated into the DB upon restart. -->
- <!-- WARNING: Configuration of XML Tiers will reset the level and position if those were supplied. -->
- <!-- WARNING: Agents and Tiers XML config shouldn't be used in a multi FS shared DB setup (Not currently supported anyway) -->
- <agents>
- <!--<agent name="1000@default" type="callback" contact="[call_timeout=10]user/1000@default" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />-->
- </agents>
- <tiers>
- <!-- If no level or position is provided, they will default to 1. You should do this to keep db value on restart. -->
- <!-- <tier agent="1000@default" queue="support@default" level="1" position="1"/> -->
- </tiers>
- </configuration>
- <configuration name="cdr_csv.conf" description="CDR CSV Format">
- <settings>
- <!-- 'cdr-csv' will always be appended to log-base -->
- <!--<param name="log-base" value="/var/log"/>-->
- <param name="default-template" value="example"/>
- <!-- This is like the info app but after the call is hung up -->
- <!--<param name="debug" value="true"/>-->
- <param name="rotate-on-hup" value="true"/>
- <!-- may be a b or ab -->
- <param name="legs" value="a"/>
- <!-- Only log in Master.csv -->
- <!-- <param name="master-file-only" value="true"/> -->
- </settings>
- <templates>
- <template name="sql">INSERT INTO cdr VALUES ("${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}");</template>
- <template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}"</template>
- <template name="snom">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${call_clientcode}","${sip_rtp_rxstat}","${sip_rtp_txstat}","${sofia_record_file}"</template>
- <template name="linksys">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${sip_p_rtp_stat}"</template>
- <template name="asterisk">"${accountcode}","${caller_id_number}","${destination_number}","${context}","${caller_id}","${channel_name}","${bridge_channel}","${last_app}","${last_arg}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${amaflags}","${uuid}","${userfield}"</template>
- <template name="opencdrrate">"${uuid}","${signal_bond}","${direction}","${ani}","${destination_number}","${answer_stamp}","${end_stamp}","${billsec}","${accountcode}","${userfield}","${network_addr}","${regex('${original_caller_id_name}'|^.)}","${sip_gateway_name}"</template>
- </templates>
- </configuration>
- <configuration name="cdr_mongodb.conf" description="MongoDB CDR logger">
- <settings>
- <!-- Hostnames and IPv6 addrs not supported (yet) -->
- <param name="host" value="127.0.0.1"/>
- <param name="port" value="27017"/>
- <!-- Namespace format is database.collection -->
- <param name="namespace" value="test.cdr"/>
- <!-- If true, create CDR for B-leg of call (default: true) -->
- <param name="log-b-leg" value="false"/>
- </settings>
- </configuration>
- <configuration name="cdr_pg_csv.conf" description="CDR PG CSV Format">
- <settings>
- <!-- See parameters for PQconnectdb() at http://www.postgresql.org/docs/8.4/static/libpq-connect.html -->
- <param name="db-info" value="host=localhost dbname=cdr connect_timeout=10" />
- <!-- CDR table name -->
- <!--<param name="db-table" value="cdr"/>-->
- <!-- Log a-leg (a), b-leg (b) or both (ab) -->
- <param name="legs" value="a"/>
- <!-- Directory in which to spool failed SQL inserts -->
- <!-- <param name="spool-dir" value="C:/Program Files/FreeSWITCH/log/cdr-pg-csv"/> -->
- <!-- Disk spool format if DB connection/insert fails - csv (default) or sql -->
- <param name="spool-format" value="csv"/>
- <param name="rotate-on-hup" value="true"/>
- <!-- This is like the info app but after the call is hung up -->
- <!--<param name="debug" value="true"/>-->
- </settings>
- <schema>
- <field var="local_ip_v4"/>
- <field var="caller_id_name"/>
- <field var="caller_id_number"/>
- <field var="destination_number"/>
- <field var="context"/>
- <field var="start_stamp"/>
- <field var="answer_stamp"/>
- <field var="end_stamp"/>
- <field var="duration" quote="false"/>
- <field var="billsec" quote="false"/>
- <field var="hangup_cause"/>
- <field var="uuid"/>
- <field var="bleg_uuid"/>
- <field var="accountcode"/>
- <field var="read_codec"/>
- <field var="write_codec"/>
- <!-- <field var="sip_hangup_disposition"/> -->
- <!-- <field var="ani"/> -->
- </schema>
- </configuration>
- <configuration name="cdr_sqlite.conf" description="SQLite CDR">
- <settings>
- <!-- SQLite database name (.db suffix will be automatically appended) -->
- <!-- <param name="db-name" value="cdr"/> -->
- <!-- CDR table name -->
- <!-- <param name="db-table" value="cdr"/> -->
- <!-- Log a-leg (a), b-leg (b) or both (ab) -->
- <param name="legs" value="a"/>
- <!-- Default template to use when inserting records -->
- <param name="default-template" value="example"/>
- <!-- This is like the info app but after the call is hung up -->
- <!--<param name="debug" value="true"/>-->
- </settings>
- <templates>
- <!-- Note that field order must match SQL table schema, otherwise insert will fail -->
- <template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}",${duration},${billsec},"${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}"</template>
- </templates>
- </configuration>
- <configuration name="cepstral.conf" description="Cepstral TTS configuration">
- <settings>
- <!--
- Possible encodings:
- * utf-8
- * us-ascii
- * iso8859-1 (default)
- * iso8859-15
- -->
- <param name="encoding" value="utf-8"/>
- </settings>
- </configuration><configuration name="cidlookup.conf" description="cidlookup Configuration">
- <settings>
- <!-- comment out url to not setup a url based lookup -->
- <param name="url" value="http://query.voipcnam.com/query.php?api_key=MYAPIKEY&number=${caller_id_number}"/>
- <!-- comment out whitepages-apikey to not use whitepages.com, you must
- get an API key from http://developer.whitepages.com/ -->
- <param name="whitepages-apikey" value="MYAPIKEY"/>
- <!-- set to false to not cache (in memcache) results from the url query -->
- <param name="cache" value="true"/>
- <!-- expire is in seconds -->
- <param name="cache-expire" value="86400"/>
- <param name="odbc-dsn" value="phone:phone:phone"/>
- <!-- comment out sql to not setup a database (directory) lookup -->
- <param name="sql" value="
- SELECT name||' ('||type||')' AS name
- FROM phonebook p JOIN numbers n ON p.id = n.phonebook_id
- WHERE n.number='${caller_id_number}'
- LIMIT 1
- "/>
- <!-- comment out citystate-sql to not setup a database (city/state)
- lookup -->
- <param name="citystate-sql" value="
- SELECT ratecenter||' '||state as name
- FROM npa_nxx_company_ocn
- WHERE npa = ${caller_id_number:1:3} AND nxx = ${caller_id_number:4:3}
- LIMIT 1
- "/>
- </settings>
- </configuration>
- <!-- http://wiki.freeswitch.org/wiki/Mod_conference -->
- <!-- None of these paths are real if you want any of these options you need to really set them up -->
- <configuration name="conference.conf" description="Audio Conference">
- <!-- Advertise certain presence on startup . -->
- <advertise>
- <room name="3001@192.168.0.103" status="FreeSWITCH"/>
- </advertise>
- <!-- These are the default keys that map when you do not specify a caller control group -->
- <!-- Note: none and default are reserved names for group names. Disabled if dist-dtmf member flag is set. -->
- <caller-controls>
- <group name="default">
- <control action="mute" digits="0"/>
- <control action="deaf mute" digits="*"/>
- <control action="energy up" digits="9"/>
- <control action="energy equ" digits="8"/>
- <control action="energy dn" digits="7"/>
- <control action="vol talk up" digits="3"/>
- <control action="vol talk zero" digits="2"/>
- <control action="vol talk dn" digits="1"/>
- <control action="vol listen up" digits="6"/>
- <control action="vol listen zero" digits="5"/>
- <control action="vol listen dn" digits="4"/>
- <control action="hangup" digits="#"/>
- </group>
- </caller-controls>
- <!-- Profiles are collections of settings you can reference by name. -->
- <profiles>
- <!--If no profile is specified it will default to "default"-->
- <profile name="default">
- <!-- Directory to drop CDR's
- 'auto' means $PREFIX/logs/conference_cdr/<confernece_uuid>.cdr.xml
- a non-absolute path means $PREFIX/logs/<value>/<confernece_uuid>.cdr.xml
- absolute path means <value>/<confernece_uuid>.cdr.xml
- -->
- <!-- <param name="cdr-log-dir" value="auto"/> -->
- <!-- Domain (for presence) -->
- <param name="domain" value="192.168.0.103"/>
- <!-- Sample Rate-->
- <param name="rate" value="8000"/>
- <!-- Number of milliseconds per frame -->
- <param name="interval" value="20"/>
- <!-- Energy level required for audio to be sent to the other users -->
- <param name="energy-level" value="300"/>
- <!--Can be | delim of waste|mute|deaf|dist-dtmf waste will always transmit data to each channel
- even during silence. dist-dtmf propagates dtmfs to all other members, but channel controls
- via dtmf will be disabled. -->
- <!--<param name="member-flags" value="waste"/>-->
- <!-- Name of the caller control group to use for this profile -->
- <!-- <param name="caller-controls" value="some name"/> -->
- <!-- Name of the caller control group to use for the moderator in this profile -->
- <!-- <param name="moderator-controls" value="some name"/> -->
- <!-- TTS Engine to use -->
- <!--<param name="tts-engine" value="cepstral"/>-->
- <!-- TTS Voice to use -->
- <!--<param name="tts-voice" value="david"/>-->
- <!-- If TTS is enabled all audio-file params beginning with -->
- <!-- 'say:' will be considered text to say with TTS -->
- <!-- Override the default path here, after which you use relative paths in the other sound params -->
- <!-- Note: The default path is the conference's first caller's sound_prefix -->
- <!--<param name="sound-prefix" value="C:/Program Files/FreeSWITCH/sounds/en/us/callie"/>-->
- <!-- File to play to acknowledge succees -->
- <!--<param name="ack-sound" value="beep.wav"/>-->
- <!-- File to play to acknowledge failure -->
- <!--<param name="nack-sound" value="beeperr.wav"/>-->
- <!-- File to play to acknowledge muted -->
- <param name="muted-sound" value="conference/conf-muted.wav"/>
- <!-- File to play to acknowledge unmuted -->
- <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
- <!-- File to play if you are alone in the conference -->
- <param name="alone-sound" value="conference/conf-alone.wav"/>
- <!-- File to play endlessly (nobody will ever be able to talk) -->
- <!--<param name="perpetual-sound" value="perpetual.wav"/>-->
- <!-- File to play when you're alone (music on hold)-->
- <param name="moh-sound" value="local_stream://moh"/>
- <!-- File to play when you join the conference -->
- <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
- <!-- File to play when you leave the conference -->
- <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
- <!-- File to play when you are ejected from the conference -->
- <param name="kicked-sound" value="conference/conf-kicked.wav"/>
- <!-- File to play when the conference is locked -->
- <param name="locked-sound" value="conference/conf-locked.wav"/>
- <!-- File to play when the conference is locked during the call-->
- <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
- <!-- File to play when the conference is unlocked during the call-->
- <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
- <!-- File to play to prompt for a pin -->
- <param name="pin-sound" value="conference/conf-pin.wav"/>
- <!-- File to play to when the pin is invalid -->
- <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
- <!-- Conference pin -->
- <!--<param name="pin" value="12345"/>-->
- <!--<param name="moderator-pin" value="54321"/>-->
- <!-- Max number of times the user can be prompted for PIN -->
- <!--<param name="pin-retries" value="3"/>-->
- <!-- Default Caller ID Name for outbound calls -->
- <param name="caller-id-name" value="FreeSWITCH"/>
- <!-- Default Caller ID Number for outbound calls -->
- <param name="caller-id-number" value="0000000000"/>
- <!-- Suppress start and stop talking events -->
- <!-- <param name="suppress-events" value="start-talking,stop-talking"/> -->
- <!-- enable comfort noise generation -->
- <param name="comfort-noise" value="true"/>
- <!-- Uncomment auto-record to toggle recording every conference call. -->
- <!-- Another valid value is shout://user:pass@server.com/live.mp3 -->
- <!--
- <param name="auto-record" value="C:/Program Files/FreeSWITCH/recordings/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
- -->
- <!-- IVR digit machine timeouts -->
- <!-- How much to wait between DTMF digits to match caller-controls -->
- <!-- <param name="ivr-dtmf-timeout" value="500"/> -->
- <!-- How much to wait for the first DTMF, 0 forever -->
- <!-- <param name="ivr-input-timeout" value="0" /> -->
- <!-- Delay before a conference is asked to be terminated -->
- <!-- <param name="endconf-grace-time" value="120" /> -->
- <!-- Can be | delim of wait-mod|audio-always|video-bridge|video-floor-only
- wait_mod will wait until the moderator in,
- audio-always will always mix audio from all members regardless they are talking or not -->
- <!-- <param name="conference-flags" value="audio-always"/> -->
- <!-- Allow live array sync for Verto -->
- <!-- <param name="conference-flags" value="livearray-sync"/> -->
- </profile>
- <profile name="wideband">
- <param name="domain" value="192.168.0.103"/>
- <param name="rate" value="16000"/>
- <param name="interval" value="20"/>
- <param name="energy-level" value="300"/>
- <!--<param name="sound-prefix" value="C:/Program Files/FreeSWITCH/sounds/en/us/callie"/>-->
- <param name="muted-sound" value="conference/conf-muted.wav"/>
- <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
- <param name="alone-sound" value="conference/conf-alone.wav"/>
- <param name="moh-sound" value="local_stream://moh"/>
- <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
- <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
- <param name="kicked-sound" value="conference/conf-kicked.wav"/>
- <param name="locked-sound" value="conference/conf-locked.wav"/>
- <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
- <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
- <param name="pin-sound" value="conference/conf-pin.wav"/>
- <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
- <param name="caller-id-name" value="FreeSWITCH"/>
- <param name="caller-id-number" value="0000000000"/>
- <param name="comfort-noise" value="true"/>
- <!--<param name="tts-engine" value="flite"/>-->
- <!--<param name="tts-voice" value="kal16"/>-->
- </profile>
- <profile name="ultrawideband">
- <param name="domain" value="192.168.0.103"/>
- <param name="rate" value="32000"/>
- <param name="interval" value="20"/>
- <param name="energy-level" value="300"/>
- <!--<param name="sound-prefix" value="C:/Program Files/FreeSWITCH/sounds/en/us/callie"/>-->
- <param name="muted-sound" value="conference/conf-muted.wav"/>
- <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
- <param name="alone-sound" value="conference/conf-alone.wav"/>
- <param name="moh-sound" value="local_stream://moh"/>
- <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
- <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
- <param name="kicked-sound" value="conference/conf-kicked.wav"/>
- <param name="locked-sound" value="conference/conf-locked.wav"/>
- <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
- <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
- <param name="pin-sound" value="conference/conf-pin.wav"/>
- <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
- <param name="caller-id-name" value="FreeSWITCH"/>
- <param name="caller-id-number" value="0000000000"/>
- <param name="comfort-noise" value="true"/>
- <!--<param name="tts-engine" value="flite"/>-->
- <!--<param name="tts-voice" value="kal16"/>-->
- </profile>
- <profile name="cdquality">
- <param name="domain" value="192.168.0.103"/>
- <param name="rate" value="48000"/>
- <param name="interval" value="20"/>
- <param name="energy-level" value="300"/>
- <!--<param name="sound-prefix" value="C:/Program Files/FreeSWITCH/sounds/en/us/callie"/>-->
- <param name="muted-sound" value="conference/conf-muted.wav"/>
- <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
- <param name="alone-sound" value="conference/conf-alone.wav"/>
- <param name="moh-sound" value="local_stream://moh"/>
- <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
- <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
- <param name="kicked-sound" value="conference/conf-kicked.wav"/>
- <param name="locked-sound" value="conference/conf-locked.wav"/>
- <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
- <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
- <param name="pin-sound" value="conference/conf-pin.wav"/>
- <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
- <param name="caller-id-name" value="FreeSWITCH"/>
- <param name="caller-id-number" value="0000000000"/>
- <param name="comfort-noise" value="true"/>
- </profile>
- <profile name="sla">
- <param name="domain" value="192.168.0.103"/>
- <param name="rate" value="16000"/>
- <param name="interval" value="20"/>
- <param name="caller-controls" value="none"/>
- <param name="energy-level" value="200"/>
- <param name="moh-sound" value="silence"/>
- <param name="comfort-noise" value="true"/>
- </profile>
- </profiles>
- </configuration>
- <configuration name="console.conf" description="Console Logger">
- <!-- pick a file name, a function name or 'all' -->
- <!-- map as many as you need for specific debugging -->
- <mappings>
- <!--
- name can be a file name, function name or 'all'
- value is one or more of debug,info,notice,warning,err,crit,alert,all
- See examples below
- The following map is the default, which is all debug levels enabled:
- <map name="all" value="debug,info,notice,warning,err,crit,alert"/>
- Example: the following turns on debugging for error and critical levels only
- <map name="all" value="err,crit"/>
- NOTE: using map name="all" will override any other settings! If you
- want a more specific set of console messages then you will need
- to specify which files and/or functions you want to have debug
- messages. One option is to turn on just the more critical
- messages with map name="all", then specify the other types of
- console messages you want to see for various files and functions.
- Example: turn on ERROR, CRIT, ALERT for all modules, then specify other
- levels for various modules and functions
- <map name="all" value="err,crit,alert"/>
- <map name="switch_loadable_module_process" value="all"/>
- <map name="mod_local_stream.c" value="warning,debug"/>
- <map name="mod_sndfile.c" value="warning,info,debug"/>
- -->
- <map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
- <!--
- You can use or modify this sample set of mappings. It turns on higher
- level messages for all modules and then specifies extra lower level
- messages for freetdm, Sofia, and switch core messages.
- <map name="all" value="warning,err,crit,alert"/>
- <map name="zap_analog.c" value="all"/>
- <map name="zap_io.c" value="all"/>
- <map name="zap_isdn.c" value="all"/>
- <map name="zap_zt.c" value="all"/>
- <map name="mod_freetdm" value="all"/>
- <map name="sofia.c" value="notice"/>
- <map name="switch_core_state_machine.c" value="all"/>
- -->
- </mappings>
- <settings>
- <!-- comment or set to false for no color logging -->
- <param name="colorize" value="true"/>
- <param name="loglevel" value="info"/>
- </settings>
- </configuration>
- <configuration name="db.conf" description="LIMIT DB Configuration">
- <settings>
- <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
- </settings>
- </configuration>
- <configuration name="dialplan_directory.conf" description="Dialplan Directory">
- <settings>
- <param name="directory-name" value="ldap"/>
- <param name="host" value="ldap.freeswitch.org"/>
- <param name="dn" value="cn=Manager,dc=freeswitch,dc=org"/>
- <param name="pass" value="test"/>
- <param name="base" value="dc=freeswitch,dc=org"/>
- </settings>
- </configuration>
- <configuration name="dingaling.conf" description="XMPP Jingle Endpoint">
- <settings>
- <param name="debug" value="0"/>
- <param name="codec-prefs" value="H264,PCMU"/>
- </settings>
- <!-- Client Profile (Original mode) -->
- <!-- to use this profile take the x- away from the open and close tags so its <profile> and </profile> -->
- <x-profile type="client">
- <param name="name" value="xmppc"/>
- <param name="login" value="myjid@myserver.com/talk"/>
- <param name="password" value="mypass"/>
- <param name="dialplan" value="XML"/>
- <param name="context" value="public"/>
- <param name="message" value="Jingle all the way"/>
- <param name="rtp-ip" value="auto"/>
- <!-- <param name="ext-rtp-ip" value="auto-nat"/> -->
- <param name="auto-login" value="true"/>
- <!-- SASL "plain" or "md5" -->
- <param name="sasl" value="plain"/>
- <!-- if the server where the jabber is hosted is not the same as the one in the jid -->
- <!--<param name="server" value="alternate.server.com"/>-->
- <!-- Enable TLS or not -->
- <param name="tls" value="true"/>
- <!-- disable to trade async for more calls -->
- <param name="use-rtp-timer" value="true"/>
- <!-- default extension (if one cannot be determined) -->
- <param name="exten" value="888"/>
- <!-- VAD choose one -->
- <!-- <param name="vad" value="in"/> -->
- <!-- <param name="vad" value="out"/> -->
- <!--<param name="vad" value="both"/>-->
- <!--<param name="avatar" value="/path/to/tiny.jpg"/>-->
- <!--<param name="candidate-acl" value="wan.auto"/>-->
- <param name="local-network-acl" value="localnet.auto"/>
- <!-- google voice does not work on this yet ....ikr... -->
- <!--<param name="use-jingle" value="true"/>-->
- </x-profile>
- <!-- Component (Server to Server Login) -->
- <!-- to use this profile take the x- away from the open and close tags so its <profile> and </profile> -->
- <x-profile type="component">
- <param name="name" value="xmpps"/>
- <param name="password" value="secret"/>
- <param name="dialplan" value="XML"/>
- <param name="context" value="public"/>
- <param name="rtp-ip" value="auto"/>
- <param name="server" value="jabber.server.org:5347"/>
- <!-- disable to trade async for more calls -->
- <param name="use-rtp-timer" value="true"/>
- <!-- "_auto_" means the extension will be automaticly set to the called jid -->
- <param name="exten" value="_auto_"/>
- <!--<param name="vad" value="both"/>-->
- <!--<param name="avatar" value="/path/to/tiny.jpg"/>-->
- <!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
- <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
- <!--<param name="candidate-acl" value="wan.auto"/>-->
- </x-profile>
- </configuration>
- <configuration name="directory.conf" description="Directory">
- <settings>
- <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
- <!--<param name="dbname" value="directory"/>-->
- </settings>
- <profiles>
- <profile name="default">
- <param name="max-menu-attempts" value="3"/>
- <param name="min-search-digits" value="3"/>
- <param name="terminator-key" value="#"/>
- <param name="digit-timeout" value="3000"/>
- <param name="max-result" value="5"/>
- <param name="next-key" value="6"/>
- <param name="prev-key" value="4"/>
- <param name="switch-order-key" value="*"/>
- <param name="select-name-key" value="1"/>
- <param name="new-search-key" value="3"/>
- <param name="search-order" value="last_name"/>
- </profile>
- </profiles>
- </configuration>
- <configuration name="distributor.conf" description="Distributor Configuration">
- <lists>
- <!-- every 10 calls to test you will get foo1 once and foo2 9 times...yes NINE TIMES! -->
- <!-- this is not the same as 100 with 10 and 90 that would do foo1 10 times in a row then foo2 90 times in a row -->
- <list name="test">
- <node name="foo1" weight="1"/>
- <node name="foo2" weight="9"/>
- </list>
- </lists>
- </configuration>
- <configuration name="easyroute.conf" description="EasyRoute Module">
- <settings>
- <!-- These are kind Obvious -->
- <param name="db-username" value="root"/>
- <param name="db-password" value="password"/>
- <param name="db-dsn" value="easyroute"/>
- <!-- Default Technology and profile -->
- <param name="default-techprofile" value="sofia/default"/>
- <!-- IP or Hostname of Default Route -->
- <param name="default-gateway" value="192.168.66.6"/>
- <!-- Number of times to retry ODBC connection on connection problems, default is 120 -->
- <param name="odbc-retries" value="120"/>
- <!-- Customer Query. Use this with Care!!! We are not responsible if you mess
- This up!!! Query *MUST* return columns in the following order!
- gateway varchar(128) - contains destination gateway host:port pair (ex: 192.168.1.1:5060 )
- group varchar(128) - contains optional group name
- call_limit varchar(16) - contains optional call limit
- tech_prefix varchar(128) - tech prefix used to build dial string (ex: sofia/default )
- acctcode varchar(128) - used to set channel variable acctcode for logging into the CDRs
- destination_number varchar(16) - Number returning for the query for building the dial string. (ex: 18005551212)
- See Documentation on the Wiki for further information -->
- <!-- <param name="custom-query" value="call FS_GET_SIP_LOCATION(%s);"/> -->
- </settings>
- </configuration>
- <configuration name="enum.conf" description="ENUM Module">
- <settings>
- <param name="default-root" value="e164.org"/>
- <param name="default-isn-root" value="freenum.org"/>
- <param name="auto-reload" value="true"/>
- <param name="query-timeout-ms" value="200"/>
- <param name="query-timeout-retry" value="2"/>
- <param name="random-nameserver" value="false"/>
- <!-- If you have specific (non-recursive) servers for your enum queries, specify them here ( up to 10 ) -->
- <!-- <param name="nameserver" value="x.x.x.x"/> -->
- <!-- <param name="nameserver" value="y.y.y.y"/> -->
- </settings>
- <routes>
- <route service="E2U+SIP" regex="sip:(.*)" replace="sofia/${use_profile}-ipv6/$1;transport=udp|sofia/${use_profile}/$1;transport=udp"/>
- <route service="E2T+SIP" regex="sip:(.*)" replace="sofia/${use_profile}-ipv6/$1;transport=tcp|sofia/${use_profile}/$1;transport=tcp"/>
- <route service="E2T+SIPS" regex="sip:(.*)" replace="sofia/${use_profile}-ipv6/$1;transport=tls|sofia/${use_profile}/$1;transport=tls"/>
- </routes>
- </configuration>
- <configuration name="erlang_event.conf" description="Erlang Socket Client">
- <settings>
- <param name="listen-ip" value="0.0.0.0"/>
- <param name="listen-port" value="8031"/>
- <!-- Specify the first part of the node name
- (the host part after the @ will be autodetected)
- OR pass a complete nodename to avoid autodetection
- eg. freeswitch@example or freeswitch@example.com.
- If you pass a complete node name, the 'shortname' parameter has no effect. -->
- <param name="nodename" value="freeswitch"/>
- <!-- Specify this OR 'cookie-file' or $HOME/.erlang.cookie will be read -->
- <param name="cookie" value="ClueCon"/>
- <!-- Read a cookie from an arbitary erlang cookie file instead -->
- <!--<param name="cookie-file" value="/C:/Users/Madhuri/AppData/Local/Temp/erlang.cookie"/>-->
- <param name="shortname" value="true"/>
- <!-- in additon to cookie, optionally restrict by ACL -->
- <!--<param name="apply-inbound-acl" value="lan"/>-->
- <!-- alternative is "binary" -->
- <!--<param name="encoding" value="string"/>-->
- <!-- provide compatability with previous OTP release (use with care) -->
- <!--<param name="compat-rel" value="12"/> -->
- </settings>
- </configuration>
- <configuration name="event_multicast.conf" description="Multicast Event">
- <settings>
- <param name="address" value="225.1.1.1"/>
- <param name="port" value="4242"/>
- <param name="bindings" value="all"/>
- <param name="ttl" value="1"/>
- <!-- <param name="loopback" value="no"/>-->
- <!-- Uncomment this to enable pre-shared key encryption on the packets. -->
- <!-- For this option to work, you'll need to have the openssl development -->
- <!-- headers installed when you ran ./configure -->
- <!-- <param name="psk" value="ClueCon"/> -->
- </settings>
- </configuration>
- <configuration name="event_socket.conf" description="Socket Client">
- <settings>
- <param name="nat-map" value="false"/>
- <param name="listen-ip" value="127.0.0.1"/>
- <param name="listen-port" value="8021"/>
- <param name="password" value="ClueCon"/>
- <!--<param name="apply-inbound-acl" value="lan"/>-->
- <!--<param name="stop-on-bind-error" value="true"/>-->
- </settings>
- </configuration>
- <configuration name="fax.conf" description="FAX application configuration">
- <settings>
- <param name="use-ecm" value="true"/>
- <param name="verbose" value="false"/>
- <param name="disable-v17" value="false"/>
- <param name="ident" value="SpanDSP Fax Ident"/>
- <param name="header" value="SpanDSP Fax Header"/>
- <param name="spool-dir" value="C:/Users/Madhuri/AppData/Local/Temp"/>
- <param name="file-prefix" value="faxrx"/>
- </settings>
- </configuration>
- <configuration name="fifo.conf" description="FIFO Configuration">
- <settings>
- <param name="delete-all-outbound-member-on-startup" value="false"/>
- </settings>
- <fifos>
- <fifo name="cool_fifo@192.168.0.103" importance="0">
- <!--<member timeout="60" simo="1" lag="20">{member_wait=nowait}user/1005@192.168.0.103</member>-->
- </fifo>
- </fifos>
- </configuration>
- <configuration name="format_cdr.conf" description="Multi Format CDR CURL logger">
- <!-- You can have multiple profiles, to allow logging to both json and cdr simultaneously, or to
- different paths or servers with different settings, just be sure to use different name for
- each profile. -->
- <profiles>
- <profile name="default">
- <settings>
- <!-- the format of data to send, defaults to xml -->
- <!-- <param name="format" value="json|xml"/> -->
- <param name="format" value="xml"/>
- <!-- the url to post to if blank web posting is disabled -->
- <!-- <param name="url" value="http://localhost/cdr_curl/post.php"/> -->
- <!-- optional: credentials to send to web server -->
- <!-- <param name="cred" value="user:pass"/> -->
- <!-- the total number of retries (not counting the first 'try') to post to webserver incase of failure -->
- <!-- <param name="retries" value="2"/> -->
- <!-- delay between retries in seconds, default is 5 seconds -->
- <!-- <param name="delay" value="1"/> -->
- <!-- Log via http and on disk, default is false -->
- <!-- <param name="log-http-and-disk" value="true"/> -->
- <!-- optional: if not present we do not log every record to disk -->
- <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank value will default to ${prefix}/logs/format_cdr -->
- <param name="log-dir" value=""/>
- <!-- optional: if not present we do log the b leg -->
- <!-- true or false if we should create a cdr for the b leg of a call-->
- <param name="log-b-leg" value="false"/>
- <!-- optional: if not present, all filenames are the uuid of the call -->
- <!-- true or false if a leg files are prefixed "a_" -->
- <param name="prefix-a-leg" value="true"/>
- <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding, 'base64' for base64 encoding or 'textxml' for text/xml -->
- <param name="encode" value="true"/>
- <!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting -->
- <!--<param name="disable-100-continue" value="true"/>-->
- <!-- optional: full path to the error log dir for failed web posts if not specified its the same as log-dir -->
- <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank or omitted value will default to ${prefix}/logs/format_cdr -->
- <!-- <param name="err-log-dir" value="C:/Users/Madhuri/AppData/Local/Temp"/> -->
- <!-- which auhtentification scheme to use. Supported values are: basic, digest, NTLM, GSS-NEGOTIATE or "any" for automatic detection -->
- <!--<param name="auth-scheme" value="basic"/>-->
- <!-- optional: this will enable the CA root certificate check by libcurl to
- verify that the certificate was issued by a major Certificate Authority.
- note: default value is disabled. only enable if you want this! -->
- <!--<param name="enable-cacert-check" value="true"/>-->
- <!-- optional: verify that the server is actually the one listed in the cert -->
- <!-- <param name="enable-ssl-verifyhost" value="true"/> -->
- <!-- optional: these options can be used to specify custom SSL certificates
- to use for HTTPS communications. Either use both options or neither.
- Specify your public key with 'ssl-cert-path' and the private key with
- 'ssl-key-path'. If your private key has a password, specify it with
- 'ssl-key-password'. -->
- <!-- <param name="ssl-cert-path" value="C:/Program Files/FreeSWITCH/cert/public_key.pem"/> -->
- <!-- <param name="ssl-key-path" value="C:/Program Files/FreeSWITCH/cert/private_key.pem"/> -->
- <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
- <!-- optional: use a custom CA certificate in PEM format to verify the peer
- with. This is useful if you are acting as your own certificate authority.
- note: only makes sense if used in combination with "enable-cacert-check." -->
- <!-- <param name="ssl-cacert-file" value="C:/Program Files/FreeSWITCH/cert/cacert.pem"/> -->
- <!-- optional: specify the SSL version to force HTTPS to use. Valid options are
- "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
- <!-- <param name="ssl-version" value="TLSv1"/> -->
- <!-- optional: enables cookies and stores them in the specified file. -->
- <!-- <param name="cookie-file" value="/C:/Users/Madhuri/AppData/Local/Temp/cookie-mod_format_cdr_curl.txt"/> -->
- <!-- Whether to URL encode the individual JSON values. Defaults to true, set to false for standard JSON. -->
- <param name="encode-values" value="true"/>
- </settings>
- </profile>
- </profiles>
- </configuration>
- <configuration name="graylog2.conf" description="Graylog2 Logger">
- <!-- emerg - system is unusable -->
- <!-- alert - action must be taken immediately -->
- <!-- crit - critical conditions -->
- <!-- err - error conditions -->
- <!-- warning - warning conditions -->
- <!-- notice - normal, but significant, condition -->
- <!-- info - informational message -->
- <!-- debug - debug-level message -->
- <settings>
- <param name="server-host" value="192.168.0.69"/>
- <param name="server-port" value="12201"/>
- <param name="loglevel" value="warning"/>
- <!-- Uncomment if using logstash w/ gelf.rb -->
- <!--param name="send-uncompressed-header" value="true"/-->
- <!-- fields to add to every log associated w/ a session -->
- <fields>
- <!-- for example: channel variable "customer_account_number" will be the data source for the customer field in graylog2 -->
- <!--field name="customer" variable="customer_account_number"/-->
- </fields>
- </settings>
- </configuration>
- <configuration name="hash.conf" description="Hash Configuration">
- <remotes>
- <!-- List of hosts from where to pull usage data -->
- <!-- <remote name="Test1" host="10.0.0.10" port="8021" password="ClueCon" interval="1000" /> -->
- </remotes>
- </configuration>
- <configuration name="httapi.conf" description="HT-TAPI Hypertext Telephony API">
- <settings>
- <!-- print xml on the consol -->
- <param name="debug" value="true"/>
- <!-- time to keep audio files when discoverd they were deleted from the http server -->
- <param name="file-not-found-expires" value="300"/>
- <!-- how often to re-check the server to make sure the remote file has not changed -->
- <param name="file-cache-ttl" value="300"/>
- </settings>
- <profiles>
- <profile name="default">
- <!-- default params for conference action tags -->
- <conference>
- <param name="default-profile" value="default"/>
- </conference>
- <!-- default params for dial action tags -->
- <dial>
- <param name="context" value="default"/>
- <param name="dialplan" value="XML"/>
- </dial>
- <!-- permissions -->
- <permissions>
- <!-- <permission name="all" value="true"/> -->
- <!--<permission name="none" value="true"/> -->
- <permission name="set-params" value="true"/>
- <permission name="set-vars" value="false">
- <!-- default to "deny" or "allow" -->
- <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
- <!--
- <variable-list default="deny">
- <variable name="caller_id_name"/>
- <variable name="hangup"/>
- </variable-list>
- -->
- </permission>
- <permission name="get-vars" value="false">
- <!-- default to "deny" or "allow" -->
- <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
- <!--
- <variable-list default="deny">
- <variable name="caller_id_name"/>
- <variable name="hangup"/>
- </variable-list>
- -->
- </permission>
- <permission name="extended-data" value="false"/>
- <permission name="execute-apps" value="true">
- <!-- default to "deny" or "allow" -->
- <application-list default="deny">
- <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
- <application name="info"/>
- <application name="hangup"/>
- </application-list>
- </permission>
- <permission name="expand-vars-in-tag-body" value="false">
- <!-- default to "deny" or "allow" -->
- <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
- <!--
- <variable-list default="deny">
- <variable name="caller_id_name"/>
- <variable name="hangup"/>
- </variable-list>
- <api-list default="deny">
- <api name="expr"/>
- <api name="lua"/>
- </api-list>
- -->
- </permission>
- <permission name="dial" value="true"/>
- <permission name="dial-set-context" value="false"/>
- <permission name="dial-set-dialplan" value="false"/>
- <permission name="dial-set-cid-name" value="false"/>
- <permission name="dial-set-cid-number" value="false"/>
- <permission name="dial-full-originate" value="false"/>
- <permission name="conference" value="true"/>
- <permission name="conference-set-profile" value="false"/>
- </permissions>
- <params>
- <!-- default url can be overridden by app data -->
- <param name="gateway-url" value="http://www.freeswitch.org/api/index.cgi" />
- <!-- set this to provide authentication credentials to the server -->
- <!--<param name="gateway-credentials" value="muser:mypass"/>-->
- <!--<param name="auth-scheme" value="basic"/>-->
- <!-- optional: this will enable the CA root certificate check by libcurl to
- verify that the certificate was issued by a major Certificate Authority.
- note: default value is disabled. only enable if you want this! -->
- <!--<param name="enable-cacert-check" value="true"/>-->
- <!-- optional: verify that the server is actually the one listed in the cert -->
- <!-- <param name="enable-ssl-verifyhost" value="true"/> -->
- <!-- optional: these options can be used to specify custom SSL certificates
- to use for HTTPS communications. Either use both options or neither.
- Specify your public key with 'ssl-cert-path' and the private key with
- 'ssl-key-path'. If your private key has a password, specify it with
- 'ssl-key-password'. -->
- <!-- <param name="ssl-cert-path" value="C:/Program Files/FreeSWITCH/cert/public_key.pem"/> -->
- <!-- <param name="ssl-key-path" value="C:/Program Files/FreeSWITCH/cert/private_key.pem"/> -->
- <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
- <!-- optional timeout -->
- <!-- <param name="timeout" value="10"/> -->
- <!-- optional: use a custom CA certificate in PEM format to verify the peer
- with. This is useful if you are acting as your own certificate authority.
- note: only makes sense if used in combination with "enable-cacert-check." -->
- <!-- <param name="ssl-cacert-file" value="C:/Program Files/FreeSWITCH/cert/cacert.pem"/> -->
- <!-- optional: specify the SSL version to force HTTPS to use. Valid options are
- "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
- <!-- <param name="ssl-version" value="TLSv1"/> -->
- <!-- optional: enables cookies and stores them in the specified file. -->
- <!-- <param name="cookie-file" value="C:/Users/Madhuri/AppData/Local/Temp/cookie-mod_xml_curl.txt"/> -->
- <!-- one or more of these imply you want to pick the exact variables that are transmitted -->
- <!--<param name="enable-post-var" value="Caller-Unique-ID"/>-->
- </params>
- </profile>
- </profiles>
- </configuration>
- <configuration name="http_cache.conf" description="HTTP GET cache">
- <settings>
- <!-- set to true if you want to enable http:// and https:// formats. Do not use if mod_httapi is also loaded -->
- <param name="enable-file-formats" value="false"/>
- <param name="max-urls" value="10000"/>
- <param name="location" value="C:/Program Files/FreeSWITCH/cache"/>
- <param name="default-max-age" value="86400"/>
- <param name="prefetch-thread-count" value="8"/>
- <param name="prefetch-queue-size" value="100"/>
- <!-- absolute path to CA bundle file -->
- <param name="ssl-cacert" value="C:/Program Files/FreeSWITCH/cert/cacert.pem"/>
- <!-- verify certificates -->
- <param name="ssl-verifypeer" value="true"/>
- <!-- verify host name matches certificate -->
- <param name="ssl-verifyhost" value="true"/>
- </settings>
- </configuration>
- <configuration name="ivr.conf" description="IVR menus">
- <menus>
- <!-- demo IVR setup -->
- <!-- demo IVR, Main Menu -->
- <menu name="demo_ivr"
- greet-long="phrase:demo_ivr_main_menu"
- greet-short="phrase:demo_ivr_main_menu_short"
- invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
- exit-sound="voicemail/vm-goodbye.wav"
- confirm-macro=""
- confirm-key=""
- tts-engine="flite"
- tts-voice="rms"
- confirm-attempts="3"
- timeout="10000"
- inter-digit-timeout="2000"
- max-failures="3"
- max-timeouts="3"
- digit-len="4">
- <!-- The following are the definitions for the digits the user dials -->
- <!-- Digit 1 transfer caller to the public FreeSWITCH conference -->
- <entry action="menu-exec-app" digits="1" param="bridge sofia/192.168.0.103/888@conference.freeswitch.org"/>
- <entry action="menu-exec-app" digits="2" param="transfer 9196 XML default"/> <!-- FS echo -->
- <entry action="menu-exec-app" digits="3" param="transfer 9664 XML default"/> <!-- MOH -->
- <entry action="menu-exec-app" digits="4" param="transfer 9191 XML default"/> <!-- ClueCon -->
- <entry action="menu-exec-app" digits="5" param="transfer 1234*256 enum"/> <!-- Screaming monkeys -->
- <entry action="menu-sub" digits="6" param="demo_ivr_submenu"/> <!-- demo sub menu -->
- <!-- Using a regex in the digits tag lets you define a dial pattern for the caller
- You may define multiple regexes if you need a different pattern for some reason -->
- <entry action="menu-exec-app" digits="/^(10[01][0-9])$/" param="transfer $1 XML features"/>
- <entry action="menu-top" digits="9"/> <!-- Repeat this menu -->
- </menu>
- <!-- Demo IVR, Sub Menu -->
- <menu name="demo_ivr_submenu"
- greet-long="phrase:demo_ivr_sub_menu"
- greet-short="phrase:demo_ivr_sub_menu_short"
- invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
- exit-sound="voicemail/vm-goodbye.wav"
- timeout="15000"
- max-failures="3"
- max-timeouts="3">
- <!-- The demo IVR sub menu prompt basically just says, "press star to return to previous menu..." -->
- <entry action="menu-top" digits="*"/>
- </menu>
- <!-- TTS sample; non-functional but it demonstrates say: and TTS -->
- <!--
- <menu name="demo3"
- greet-long="say:Press 1 to join the conference, Press 2 to join the other conference"
- greet-short="say:Press 1 to join the conference, Press 2 to join the other conference"
- invalid-sound="say:invalid extension"
- exit-sound="say:exit sound"
- timeout ="15000"
- max-failures="3">
- <entry action="menu-exit" digits="*"/>
- <entry action="menu-play-sound" digits="1" param="say:You pressed 1"/>
- <entry action="menu-exec-app" digits="2" param="transfert 1000 XML default"/>
- <entry action="menu-exec-app" digits="3" param="transfert 1001 XML default"/>
- </menu>
- -->
- <!-- new demo IVR, Main Menu -->
- <menu name="new_demo_ivr"
- greet-long="phrase:new_demo_ivr_main_menu"
- greet-short="phrase:new_demo_ivr_main_menu_short"
- invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
- exit-sound="voicemail/vm-goodbye.wav"
- confirm-macro=""
- confirm-key=""
- tts-engine="flite"
- tts-voice="rms"
- confirm-attempts="3"
- timeout="10000"
- inter-digit-timeout="2000"
- max-failures="3"
- max-timeouts="3"
- digit-len="4">
- <entry action="menu-sub" digits="1" param="freeswitch_ivr_submenu"/> <!-- FreeSWITCH sub menu -->
- <entry action="menu-sub" digits="2" param="freeswitch_solutions_ivr_submenu"/> <!-- FreeSWITCH Solutions sub menu -->
- <entry action="menu-sub" digits="3" param="cluecon_ivr_submenu"/> <!-- ClueCon sub menu -->
- <entry action="menu-exec-app" digits="4" param="5000 XML default"/> <!-- original demo IVR -->
- <entry action="menu-top" digits="9"/> <!-- Repeat this menu -->
- </menu>
- <!-- FreeSWITCH IVR Sub Menu -->
- <menu name="freeswitch_ivr_submenu"
- greet-long="phrase:learn_about_freeswitch_sub_menu"
- greet-short="phrase:learn_about_freeswitch_sub_menu"
- invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
- exit-sound="voicemail/vm-goodbye.wav"
- timeout="15000"
- max-failures="3"
- max-timeouts="3">
- <entry action="menu-sub" digits="9" param="freeswitch_ivr_submenu"/>
- <entry action="menu-top" digits="*"/>
- </menu>
- <!-- FreeSWITCH Solutions IVR Sub Menu -->
- <menu name="freeswitch_solutions_ivr_submenu"
- greet-long="phrase:learn_about_freeswitch_solutions_sub_menu"
- greet-short="phrase:learn_about_freeswitch_solutions_sub_menu"
- invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
- exit-sound="voicemail/vm-goodbye.wav"
- timeout="15000"
- max-failures="3"
- max-timeouts="3">
- <entry action="menu-sub" digits="9" param="freeswitch_solutions_ivr_submenu"/>
- <entry action="menu-top" digits="*"/>
- </menu>
- <!-- ClueCon IVR Sub Menu -->
- <menu name="cluecon_ivr_submenu"
- greet-long="phrase:learn_about_cluecon_sub_menu"
- greet-short="phrase:learn_about_cluecon_sub_menu"
- invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
- exit-sound="voicemail/vm-goodbye.wav"
- timeout="15000"
- max-failures="3"
- max-timeouts="3">
- <entry action="menu-sub" digits="9" param="cluecon_ivr_submenu"/>
- <entry action="menu-top" digits="*"/>
- </menu>
- </menus>
- </configuration>
- <configuration name="java.conf" description="Java Plug-Ins">
- <javavm path="/opt/jdk1.6.0_04/jre/lib/amd64/server/libjvm.so"/>
- <options>
- <option value="-Djava.class.path=C:/Program Files/FreeSWITCH/scripts/freeswitch.jar:C:/Program Files/FreeSWITCH/scripts/example.jar"/>
- <option value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8000"/>
- </options>
- <startup class="org/freeswitch/example/ApplicationLauncher" method="startup"/>
- </configuration>
- <configuration name="lcr.conf" description="LCR Configuration">
- <settings>
- <param name="odbc-dsn" value="freeswitch-mysql:freeswitch:Fr33Sw1tch"/>
- <!-- <param name="odbc-dsn" value="freeswitch-pgsql:freeswitch:Fr33Sw1tch"/> -->
- </settings>
- <profiles>
- <profile name="default">
- <param name="id" value="0"/>
- <param name="order_by" value="rate,quality,reliability"/>
- </profile>
- <profile name="qual_rel">
- <param name="id" value="1"/>
- <param name="order_by" value="quality,reliability"/>
- </profile>
- <profile name="rel_qual">
- <param name="id" value="2"/>
- <param name="order_by" value="reliability,quality"/>
- </profile>
- <!--
- Some samples of how to do custom SQL:
- =============================================================
- PostgreSQL with contrib prefix module which supports fast
- prefix queries. Ideal option.
- =============================================================
- <profile name="pg_prefix">
- <param name="custom_sql" value="
- SELECT l.digits AS lcr_digits,
- c.carrier_name AS lcr_carrier_name,
- l.${lcr_rate_field} as lcr_rate_field,
- cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
- l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
- l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
- FROM lcr l
- JOIN carriers c ON l.carrier_id=c.id
- JOIN carrier_gateway cg ON c.id=cg.carrier_id
- WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
- AND digits_prefix @> %q
- AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
- ORDER BY digits DESC, ${lcr_rate_field}, random();
- "/>
- </profile>
- =============================================================
- PostgreSQL with contrib prefix module which supports fast
- prefix queries. Ideal option. Alternate syntax which requies
- a session but allows variable substitution.
- =============================================================
- <profile name="pg_prefix2">
- <param name="custom_sql" value="
- SELECT l.digits AS lcr_digits,
- c.carrier_name AS lcr_carrier_name,
- l.${lcr_rate_field} as lcr_rate_field,
- cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
- l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
- l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
- FROM lcr l
- JOIN carriers c ON l.carrier_id=c.id
- JOIN carrier_gateway cg ON c.id=cg.carrier_id
- WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
- AND digits_prefix @> '${lcr_query_digits}'
- AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
- ORDER BY digits DESC, ${lcr_rate_field}, random();
- "/>
- </profile>
- =============================================================
- Demonstrates use of computed inlist.
- =============================================================
- <profile name="inlist">
- <param name="custom_sql" value="
- SELECT l.digits AS lcr_digits,
- c.carrier_name AS lcr_carrier_name,
- l.${lcr_rate_field} as lcr_rate_field,
- cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
- l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
- l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
- FROM lcr l
- JOIN carriers c ON l.carrier_id=c.id
- JOIN carrier_gateway cg ON c.id=cg.carrier_id
- WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
- AND digits IN (${lcr_query_expanded_digits})
- AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
- ORDER BY digits DESC, ${lcr_rate_field}, random();
- "/>
- </profile>
- -->
- </profiles>
- </configuration>
- <configuration name="local_stream.conf" description="stream files from local dir">
- <!-- fallback to default if requested moh class isn't found -->
- <directory name="default" path="C:/Program Files/FreeSWITCH/sounds/music/8000">
- <param name="rate" value="8000"/>
- <param name="shuffle" value="true"/>
- <param name="channels" value="1"/>
- <param name="interval" value="20"/>
- <param name="timer-name" value="soft"/>
- <!-- list of short files to break in with every so often -->
- <!--<param name="chime-list" value="file1.wav,file2.wav"/>-->
- <!-- frequency of break-in (seconds)-->
- <!--<param name="chime-freq" value="30"/>-->
- <!-- limit to how many seconds the file will play -->
- <!--<param name="chime-max" value="500"/>-->
- </directory>
- <directory name="moh/8000" path="C:/Program Files/FreeSWITCH/sounds/music/8000">
- <param name="rate" value="8000"/>
- <param name="shuffle" value="true"/>
- <param name="channels" value="1"/>
- <param name="interval" value="20"/>
- <param name="timer-name" value="soft"/>
- </directory>
- <directory name="moh/16000" path="C:/Program Files/FreeSWITCH/sounds/music/16000">
- <param name="rate" value="16000"/>
- <param name="shuffle" value="true"/>
- <param name="channels" value="1"/>
- <param name="interval" value="20"/>
- <param name="timer-name" value="soft"/>
- </directory>
- <directory name="moh/32000" path="C:/Program Files/FreeSWITCH/sounds/music/32000">
- <param name="rate" value="32000"/>
- <param name="shuffle" value="true"/>
- <param name="channels" value="1"/>
- <param name="interval" value="20"/>
- <param name="timer-name" value="soft"/>
- </directory>
- <directory name="moh/48000" path="C:/Program Files/FreeSWITCH/sounds/music/48000">
- <param name="rate" value="48000"/>
- <param name="shuffle" value="true"/>
- <param name="channels" value="1"/>
- <param name="interval" value="10"/>
- <param name="timer-name" value="soft"/>
- </directory>
- </configuration>
- <configuration name="logfile.conf" description="File Logging">
- <settings>
- <!-- true to auto rotate on HUP, false to open/close -->
- <param name="rotate-on-hup" value="true"/>
- </settings>
- <profiles>
- <profile name="default">
- <settings>
- <!-- File to log to -->
- <!--<param name="logfile" value="/var/log/freeswitch.log"/>-->
- <!-- At this length in bytes rotate the log file (0 for never) -->
- <param name="rollover" value="10485760"/>
- <!-- Maximum number of log files to keep before wrapping -->
- <!-- If this parameter is enabled, the log filenames will not include a date stamp -->
- <!-- <param name="maximum-rotate" value="32"/> -->
- <!-- Prefix all log lines by the session's uuid -->
- <param name="uuid" value="true" />
- </settings>
- <mappings>
- <!--
- name can be a file name, function name or 'all'
- value is one or more of debug,info,notice,warning,err,crit,alert,all
- Please see comments in console.conf.xml for more information
- -->
- <map name="all" value="debug,info,notice,warning,err,crit,alert"/>
- </mappings>
- </profile>
- </profiles>
- </configuration>
- <configuration name="lua.conf" description="LUA Configuration">
- <settings>
- <!--
- Specify local directories that will be searched for LUA modules
- These entries will be pre-pended to the LUA_CPATH environment variable
- -->
- <!-- <param name="module-directory" value="/usr/lib/lua/5.1/?.so"/> -->
- <!-- <param name="module-directory" value="/usr/local/lib/lua/5.1/?.so"/> -->
- <!--
- Specify local directories that will be searched for LUA scripts
- These entries will be pre-pended to the LUA_PATH environment variable
- -->
- <!-- <param name="script-directory" value="/usr/local/lua/?.lua"/> -->
- <!-- <param name="script-directory" value="C:/Program Files/FreeSWITCH/scripts/?.lua"/> -->
- <!--<param name="xml-handler-script" value="/dp.lua"/>-->
- <!--<param name="xml-handler-bindings" value="dialplan"/>-->
- <!--
- The following options identifies a lua script that is launched
- at startup and may live forever in the background.
- You can define multiple lines, one for each script you
- need to run.
- -->
- <!--<param name="startup-script" value="startup_script_1.lua"/>-->
- <!--<param name="startup-script" value="startup_script_2.lua"/>-->
- <!--<hook event="CUSTOM" subclass="conference::maintenance" script="catch-event.lua"/>-->
- </settings>
- </configuration>
- <configuration name="memcache.conf" description="memcache Configuration">
- <settings>
- <!-- comma sep list of servers: eg: localhost,otherhost:port,anotherone -->
- <param name="memcache-servers" value="localhost"/>
- </settings>
- </configuration>
- <configuration name="modules.conf" description="Modules">
- <modules>
- <!-- Loggers (I'd load these first) -->
- <load module="mod_console"/>
- <!-- <load module="mod_graylog2"/> -->
- <load module="mod_logfile"/>
- <!-- <load module="mod_syslog"/> -->
- <!--<load module="mod_yaml"/>-->
- <!-- Multi-Faceted -->
- <!-- mod_enum is a dialplan interface, an application interface and an api command interface -->
- <load module="mod_enum"/>
- <!-- XML Interfaces -->
- <!-- <load module="mod_xml_rpc"/> -->
- <!-- <load module="mod_xml_curl"/> -->
- <!-- <load module="mod_xml_cdr"/> -->
- <!-- <load module="mod_xml_scgi"/> -->
- <!-- Event Handlers -->
- <load module="mod_cdr_csv"/>
- <!-- <load module="mod_cdr_sqlite"/> -->
- <!-- <load module="mod_event_multicast"/> -->
- <load module="mod_event_socket"/>
- <!-- <load module="mod_event_zmq"/> -->
- <!-- <load module="mod_zeroconf"/> -->
- <!-- <load module="mod_erlang_event"/> -->
- <!-- <load module="mod_snmp"/> -->
- <!-- Directory Interfaces -->
- <!-- <load module="mod_ldap"/> -->
- <!-- Endpoints -->
- <!-- <load module="mod_dingaling"/> -->
- <!-- <load module="mod_portaudio"/> -->
- <!-- <load module="mod_alsa"/> -->
- <load module="mod_sofia"/>
- <load module="mod_loopback"/>
- <!-- <load module="mod_woomera"/> -->
- <!-- <load module="mod_freetdm"/> -->
- <!-- <load module="mod_unicall"/> -->
- <!-- <load module="mod_skinny"/> -->
- <!-- <load module="mod_khomp"/> -->
- <!-- <load module="mod_rtmp"/> -->
- <!-- Applications -->
- <load module="mod_commands"/>
- <load module="mod_conference"/>
- <!-- <load module="mod_curl"/> -->
- <load module="mod_db"/>
- <load module="mod_dptools"/>
- <load module="mod_expr"/>
- <load module="mod_fifo"/>
- <load module="mod_hash"/>
- <!--<load module="mod_mongo"/> -->
- <load module="mod_voicemail"/>
- <!--<load module="mod_directory"/>-->
- <!--<load module="mod_distributor"/>-->
- <!--<load module="mod_lcr"/>-->
- <!--<load module="mod_easyroute"/>-->
- <load module="mod_esf"/>
- <load module="mod_fsv"/>
- <!--<load module="mod_cluechoo"/>-->
- <load module="mod_valet_parking"/>
- <!--<load module="mod_fsk"/>-->
- <!--<load module="mod_spy"/>-->
- <!--<load module="mod_random"/>-->
- <load module="mod_httapi"/>
- <!--<load module="mod_translate"/>-->
- <!-- SNOM Module -->
- <!--<load module="mod_snom"/>-->
- <!-- This one only works on Linux for now -->
- <!--<load module="mod_ladspa"/>-->
- <!-- Dialplan Interfaces -->
- <!-- <load module="mod_dialplan_directory"/> -->
- <load module="mod_dialplan_xml"/>
- <load module="mod_dialplan_asterisk"/>
- <!-- Codec Interfaces -->
- <load module="mod_spandsp"/>
- <load module="mod_g723_1"/>
- <load module="mod_g729"/>
- <load module="mod_amr"/>
- <!--<load module="mod_ilbc"/>-->
- <load module="mod_h26x"/>
- <load module="mod_vp8"/>
- <load module="mod_b64"/>
- <!--<load module="mod_siren"/>-->
- <!--<load module="mod_isac"/>-->
- <!--<load module="mod_celt"/>-->
- <load module="mod_opus"/>
- <!-- File Format Interfaces -->
- <load module="mod_sndfile"/>
- <load module="mod_native_file"/>
- <!-- <load module="mod_shell_stream"/> -->
- <!--For icecast/mp3 streams/files-->
- <!--<load module="mod_shout"/>-->
- <!--For local streams (play all the files in a directory)-->
- <load module="mod_local_stream"/>
- <load module="mod_tone_stream"/>
- <!-- Timers -->
- <!-- <load module="mod_timerfd"/> -->
- <!-- <load module="mod_posix_timer"/> -->
- <!-- Languages -->
- <load module="mod_v8"/>
- <!-- <load module="mod_perl"/> -->
- <!-- <load module="mod_python"/> -->
- <!-- <load module="mod_java"/> -->
- <load module="mod_lua"/>
- <!-- ASR /TTS -->
- <!-- <load module="mod_flite"/> -->
- <!-- <load module="mod_pocketsphinx"/> -->
- <!-- <load module="mod_cepstral"/> -->
- <!-- <load module="mod_tts_commandline"/> -->
- <!-- <load module="mod_rss"/> -->
- <!-- Say -->
- <load module="mod_say_en"/>
- <!-- <load module="mod_say_ru"/> -->
- <!-- <load module="mod_say_zh"/> -->
- <!-- <load module="mod_say_sv"/> -->
- <!-- Third party modules -->
- <!--<load module="mod_nibblebill"/>-->
- <!--<load module="mod_callcenter"/>-->
- </modules>
- </configuration>
- <configuration name="mongo.conf">
- <settings>
- <!--
- connection-string handles different ways to connect to mongo
- samples:
- server:port
- foo/server:port,server:port SET
- -->
- <param name="connection-string" value="127.0.0.1:27017"/>
- <param name="max-connections" value="100"/>
- <!-- Timeout in seconds. 0 means no timeout -->
- <param name="socket-timeout" value="0"/>
- <!--
- <param name="map" value="function() { emit(this.a, 1); }"/>
- <param name="reduce" value="function(key, values) { return Array.sum(values); }"/>
- <param name="finalize" value="function(key, value) { return value;}"/>
- -->
- </settings>
- </configuration>
- <configuration name="nibblebill.conf" description="Nibble Billing">
- <settings>
- <!-- See http://wiki.freeswitch.org/wiki/Mod_nibblebill for help with these options -->
- <!-- Information for connecting to your database -->
- <param name="odbc-dsn" value="bandwidth.com"/>
- <!-- The database table where your CASH column is located -->
- <param name="db_table" value="accounts"/>
- <!-- The column name where we store the value of the account -->
- <param name="db_column_cash" value="cash"/>
- <!-- The column name for the unique ID identifying the account -->
- <param name="db_column_account" value="id"/>
- <!-- Custom SQL for loading current balance - overrides column names
- channel vars are interpreted.
- field nibble_balance is used for balance info
- <param name="custom_sql_lookup" value="SELECT cash AS nibble_balance FROM accounts WHERE account_code='${nibble_account}'"/>
- -->
- <!-- Custom SQL for loading current balance - overrides column names
- channel vars are interpreted.
- nibble_increment is the amount to update
- <param name="custom_sql_save" value="UPDATE accounts SET cash=cash-${nibble_increment} WHERE account_code='${nibble_account}'"/>
- -->
- <!-- Default heartbeat interval. Set to 'off' for no heartbeat (i.e. bill only at end of call) -->
- <param name="global_heartbeat" value="60"/>
- <!-- By default, warn a caller when their balance is at $5.00. You can set this to a negative number. -->
- <param name="lowbal_amt" value="5"/>
- <param name="lowbal_action" value="play ding"/>
- <!-- By default, terminate a caller when their balance hits $0.00. You can set this to a negative number. -->
- <param name="nobal_amt" value="0"/>
- <param name="nobal_action" value="hangup"/>
- <!-- If a call goes beyond a certain dollar amount, flag or terminate it -->
- <param name="percall_max_amt" value="100"/>
- <param name="percall_action" value="hangup"/>
- </settings>
- </configuration>
- <configuration name="opal.conf" description="Opal Endpoints">
- <settings>
- <param name="trace-level" value="3"/>
- <param name="context" value="default"/>
- <param name="dialplan" value="XML"/>
- <param name="dtmf-type" value="signal"/> <!-- string, signal, rfc2833, in-band -->
- <param name="jitter-size" value="40,100"/> <!-- Jitter buffer min/max size, milliseconds -->
- <!-- <param name="codec-prefs" value="PCMU,PCMA"/> --> <!-- list, and preferecnce order, of codecs -->
- <!-- <param name="disable-transcoding" value="true"/> --> <!-- do not transcode, use source channel codec only -->
- <param name="gk-address" value=""/> <!-- empty to disable, "*" to search LAN -->
- <param name="gk-identifer" value=""/> <!-- optional name of gk -->
- <param name="gk-interface" value="192.168.0.103"/> <!-- optional listener interface name -->
- </settings>
- <listeners>
- <listener name="default">
- <param name="h323-ip" value="192.168.0.103"/>
- <param name="h323-port" value="1720"/>
- </listener>
- </listeners>
- </configuration>
- <configuration name="opus.conf">
- <settings>
- <param name="use-vbr" value="1"/>
- <param name="complexity" value="10"/>
- <!--
- maxaveragebitrate: the maximum average codec bitrate (values: 6000 to 510000 in bps) 0 is not considered
- maxplaybackrate: the maximum codec internal frequency (values: 8000, 12000, 16000, 24000, 48000 in Hz) 0 is not considered
- This will set the local encoder and instruct the remote encoder trough specific "fmtp" attibute in the SDP.
- Example: if you receive "maxaveragebitrate=20000" from SDP and you have set "maxaveragebitrate=24000" in this configuration
- the lowest will prevail in this case "20000" is set on the encoder and the corresponding fmtp attribute will be set
- to instruct the remote encoder to do the same.
- -->
- <param name="maxaveragebitrate" value="0"/>
- <param name="maxplaybackrate" value="0"/>
- </settings>
- </configuration>
- <!--
- To use this application simply install the open source Oreka recorder server (Orkaudio) and point
- the sip-server-addr and sip-server-port to the oreka server
- -->
- <configuration name="oreka.conf" description="Oreka Recorder configuration">
- <settings>
- <!-- Oreka/Orkaudio recording server address -->
- <!-- <param name="sip-server-addr" value="192.168.1.200"/> -->
- <!-- Which port to send signaling to in the recording server -->
- <!-- <param name="sip-server-port" value="6000"/> -->
- </settings>
- </configuration>
- <configuration name="osp.conf" description="OSP Module Configuration">
- <settings>
- <!-- Debug info flag -->
- <param name="debug-info" value="disabled"/>
- <!-- Log level for debug info -->
- <param name="log-level" value="info"/>
- <!-- Crypto hareware accelerate is disabled by default -->
- <param name="crypto-hardware" value="disabled"/>
- <!-- SIP settings -->
- <param name="sip" module="sofia" profile="external"/>
- <!-- H.323 settings -->
- <!-- <param name="h323" module="h323" profile="external"/> -->
- <!-- IAX settings -->
- <!-- <param name="iax" module="iax" profile="external"/> -->
- <!-- Skype settings -->
- <!-- <param name="skype" module="skypopen" profile="external"/> -->
- <!-- Default destination protocol -->
- <param name="default-protocol" value="sip"/>
- </settings>
- <profiles>
- <!-- Default OSP profile -->
- <profile name="default">
- <!-- Service point URLs, up to 8 allowed -->
- <!-- <param name="service-point-url" value="http://osptestserver.transnexus.com:5045/osp"/> -->
- <!-- <param name="service-point-url" value="https://127.0.0.1:1443/osp"/> -->
- <param name="service-point-url" value="http://127.0.0.1:5045/osp"/>
- <!-- FreeSWITCH IP address for OSP -->
- <param name="device-ip" value="127.0.0.1:5080"/>
- <!-- SSL lifetime in seconds -->
- <param name="ssl-lifetime" value="300"/>
- <!-- HTTP max connections, 1~1000 -->
- <param name="http-max-connections" value="20"/>
- <!-- HTTP persistence in seconds -->
- <param name="http-persistence" value="60"/>
- <!-- HTTP retry delay in seconds, 0~10 -->
- <param name="http-retry-delay" value="0"/>
- <!-- HTTP retry limit, 0~100 -->
- <param name="http-retry-limit" value="2"/>
- <!-- HTTP timeout in milliseconds, 200~60000 -->
- <param name="http-timeout" value="10000"/>
- <!-- OSP work mode, direct or indirect -->
- <param name="work-mode" value="direct"/>
- <!-- OSP service type, voice or npquery -->
- <param name="service-type" value="voice"/>
- <!-- Max number of destinations -->
- <param name="max-destinations" value="12"/>
- </profile>
- </profiles>
- </configuration>
- <configuration name="perl.conf" description="PERL Configuration">
- <settings>
- <!--<param name="xml-handler-script" value="C:/Users/Madhuri/AppData/Local/Temp/xml.pl"/>-->
- <!--<param name="xml-handler-bindings" value="dialplan"/>-->
- <!--
- The following options identifies a perl script that is launched
- at startup and may live forever in the background.
- You can define multiple lines, one for each script you
- need to run.
- -->
- <!--param name="startup-script" value="startup_script_1.pl"/-->
- <!--param name="startup-script" value="startup_script_2.pl"/-->
- </settings>
- </configuration>
- <configuration name="pocketsphinx.conf" description="PocketSphinx ASR Configuration">
- <settings>
- <param name="threshold" value="400"/>
- <param name="silence-hits" value="25"/>
- <param name="listen-hits" value="1"/>
- <param name="auto-reload" value="true"/>
- <!--<param name="language-weight" value="1"/>-->
- <!--<param name="narrowband-model" value="communicator"/>-->
- <!--<param name="wideband-model" value="wsj1"/>-->
- <!--<param name="dictionary" value="default.dic"/>-->
- </settings>
- </configuration>
- <configuration name="portaudio.conf" description="Soundcard Endpoint">
- <settings>
- <!-- indev, outdev, ringdev:
- partial case sensitive string match on something in the name
- or the device number prefixed with # eg "#1" (or blank for default) -->
- <!-- device to use for input -->
- <param name="indev" value=""/>
- <!-- device to use for output -->
- <param name="outdev" value=""/>
- <!--device to use for inbound ring -->
- <!--<param name="ringdev" value=""/>-->
- <!--File to play as the ring sound -->
- <!--<param name="ring-file" value="/sounds/ring.wav"/>-->
- <!--Number of seconds to pause between rings -->
- <!--<param name="ring-interval" value="5"/>-->
- <!--Enable or Disable dual_streams-->
- <!--<param name="dual-streams" value="true"/>-->
- <!--file to play when calls are on hold-->
- <param name="hold-file" value="local_stream://moh"/>
- <!--Timer to use for hold music (i'd leave this one commented)-->
- <!--<param name="timer-name" value="soft"/>-->
- <!--Default dialplan and caller-id info -->
- <param name="dialplan" value="XML"/>
- <param name="cid-name" value="FreeSWITCH"/>
- <param name="cid-num" value="0000000000"/>
- <!--audio sample rate and interval -->
- <param name="sample-rate" value="48000"/>
- <param name="codec-ms" value="20"/>
- <!--uncomment the following line to make mod_portaudio fail to load if it fails to find a device-->
- <!-- <param name="unload-on-device-fail" value="true"/> -->
- </settings>
- <!--
- mod_portaudio "streams"
- The portaudio streams were introduced to support multiple devices and multiple channels in mod_portaudio.
- For example, if you have a sound card that supports multiple channels or have multiple sound cards and you
- want to use them at the same time, you can do it configuring streams and endpoints here.
- A "stream" is just a logical container for some settings required by portaudio in order to stream audio and
- define a friendly name for that configuration. Streams in itself do not do anything else than contain configs.
- Once you have your streams defined you can proceed to define "endpoints". Go to the "<endpoints>" section
- for more information on endpoints.
- You can use the command "pa shstreams" (portaudio shared streams) to show the configured streams.
- -->
- <streams>
- <!--
- In this example we define 2 streams, one for a usb audio device and another for the usual Mac defaults
- The name="" attribute in the <stream> tag must uniquely identify the stream configuration and can be
- later used when creating endpoints in the "instream" and "outstream" parameters of the endpoint.
- -->
- <!-- This sample "usb1" configuration was tested with a USB Griffin iMic device -->
- <stream name="usb1">
- <!--
- Which device to use for input in this stream
- The value for this parameter must be either in the form '#devno',
- for example '#2' for device number 2, or 'device-name', like 'iMic USB audio system'
- The output of command "pa devlist" will show you device names and numbers as enumerated
- by portaudio.
- -->
- <param name="indev" value="#2" />
- <!--
- Same as the indev but for output. In this case the device is capable of input and output
- Some devices are capable of input only or output only (see the default example)
- -->
- <param name="outdev" value="#2" />
- <!-- The sample rate to use for this stream -->
- <param name="sample-rate" value="48000" />
- <!--
- Size of the packets in milliseconds. The smaller the number the less latency you'll have
- The minimum value is 10ms
- -->
- <param name="codec-ms" value="10" />
- <!--
- How many channels to open for this stream.
- If you're device is stereo, you can choose 2 here. However, bear in mind that then
- your left and right channels will be separated and when creating endpoints you will have
- to either choose the left or right channel. This may or may not be what you want. This separation
- means that you can have 2 separate FreeSWITCH calls, listening to one of them in your left channel
- and the other in the right chanel.
- -->
- <param name="channels" value="2" />
- </stream>
- <!-- This default stream was tested using the default Macbook Pro input/output devices -->
- <stream name="default">
- <!-- The default system input device -->
- <param name="indev" value="#0" />
- <!-- The default system output device -->
- <param name="outdev" value="#1" />
- <!-- CD quality sampling rate ftw -->
- <param name="sample-rate" value="48000" />
- <!-- Low latency -->
- <param name="codec-ms" value="10" />
- <!-- Choosing 1 channel allows to hear in both left-right channel when using a headset -->
- <param name="channels" value="1" />
- </stream>
- </streams>
- <!--
- mod_portaudio "endpoints"
- Endpoints is a way to define the input and output that a given portaudio channel will use.
- There is a lot of flexibility. You can create endpoints which are "send-only", which means
- audio will be read from FreeSWITCH and sent down to the provided stream, but no audio will
- be read from that stream and only silence provided back to FreeSWITCH.
- send-only endpoint:
- (FS CORE) ->-> audio ->-> sound-card-x
- You can also create a read-only endpoint.
- read-only-endpoint:
- (FS CORE) <-<- audio <-<- sound-card-x
- And of course you can create a bidirectional endpoint:
- bidirectional-endpoint:
- (FS CORE) <-> audio <-> sound-card-x
- You can also define a stream which uses only the left or only the right channel of a given device stream.
- This means you can have 2 SIP calls connected to the same device haring one call in your left ear and
- the other call to your right ear :-)
- The name="parameter" of the endpoint allows you to use it in the FreeSWITCH dial plan to dial, ie:
- <action application="bridge" data="portaudio/endpoint/usb1out-left" />
- You can use the command "pa endpoints" to show the configured endpoints.
- -->
- <endpoints>
- <!--
- An endpoint is a handle name to refer to a configuration that determines where to read media from
- and write media to. The endpoint can use any input/output stream combination for that purpose as
- long as the streams match the sampling rate and codec-ms (see <streams> XML tag).
- You can also omit the instream or the outstream parameter (but obviously not both).
- -->
- <!--
- Configuration for a "default" bidirectional endpoint that uses the default stream defined previously in
- the <streams> section.
- -->
- <endpoint name="default">
- <!--
- The instream, outstream is the name of the stream and channel to use. The stream
- name is the same you configured in the <streams> section. This parameters follow
- the syntax <stream-name>:<channel index>. You can omit either the outstream
- or the instream, but not both! The channel index is zero-based and must be consistent
- with the number of channels available for that stream (as configured in the <stream> section).
- You cannot use index 1 if you chose channels=1 in the stream configuration.
- -->
- <param name="instream" value="default:0" />
- <param name="outstream" value="default:0" />
- </endpoint>
- <!--
- This endpoint uses the USB stream defined previously in the <streams> section and
- is 'send-only' or 'output-only' and uses the channel index 0 (left channel in a stereo device)
- -->
- <endpoint name="usb1out-left">
- <param name="outstream" value="usb1:0" />
- </endpoint>
- <!--
- This endpoint uses the USB stream defined previously in the <streams> section and
- is 'send-only' or 'output-only' and uses the channel index 1 (right channel in a stereo device)
- -->
- <endpoint name="usb1out-right">
- <param name="outstream" value="usb1:1" />
- </endpoint>
- <!--
- This endpoint uses the USB stream defined previously in the <streams> section and
- is 'receive-only' or 'input-only' and uses the channel index 0 (left channel in a stereo device)
- -->
- <endpoint name="usb1in-left">
- <param name="instream" value="usb1:0" />
- </endpoint>
- <!--
- This endpoint uses the USB stream defined previously in the <streams> section and
- is 'receive-only' or 'input-only' and uses the channel index 1 (right channel in a stereo device)
- -->
- <endpoint name="usb1in-right">
- <param name="instream" value="usb1:1" />
- </endpoint>
- <!--
- This endpoint uses the USB stream defined previously in the <streams> section and
- is 'bidirectional' or 'send-receive' and uses the channel index 0 (left channel in a stereo device)
- -->
- <endpoint name="usb1-left">
- <param name="instream" value="usb1:0" />
- <param name="outstream" value="usb1:0" />
- </endpoint>
- <!--
- This endpoint uses the USB stream defined previously in the <streams> section and
- is 'bidirectional' or 'send-receive' and uses the channel index 1 (right channel in a stereo device)
- -->
- <endpoint name="usb1-right">
- <param name="instream" value="usb1:1" />
- <param name="outstream" value="usb1:1" />
- </endpoint>
- </endpoints>
- </configuration>
- <configuration name="post_load_modules.conf" description="Modules">
- <modules>
- </modules>
- </configuration>
- <configuration name="presence_map.conf" description="PRESENCE MAP">
- <domains>
- <domain name="192.168.0.103">
- <exten regex="3\d+" proto="conf"/>
- </domain>
- </domains>
- </configuration>
- <configuration name="python.conf" description="PYTHON Configuration">
- <settings>
- <!--<param name="xml-handler-script" value="dp"/>-->
- <!--<param name="xml-handler-bindings" value="dialplan"/>-->
- <!--
- The following options identifies a py module that is launched
- at startup and may live forever in the background.
- You can define multiple lines, one for each script you
- need to run.
- -->
- <!--<param name="startup-script" value="startup_script_1"/>-->
- <!--<param name="startup-script" value="startup_script_2"/>-->
- </settings>
- </configuration>
- <configuration name="redis.conf" description="mod_redis Configuration">
- <settings>
- <param name="host" value="localhost"/>
- <param name="port" value="6379"/>
- <param name="timeout" value="10000"/>
- </settings>
- </configuration>
- <configuration name="rss.conf" description="RSS Parser">
- <feeds>
- <!-- Just download the files to wherever and refer to them here -->
- <!-- <feed name="Slash Dot">/home/rss/rss.rss</feed> -->
- <!-- <feed name="News Forge">/home/rss/newsforge.rss</feed> -->
- </feeds>
- </configuration>
- <configuration name="rtmp.conf" description="RTMP Endpoint">
- <profiles>
- <profile name="default">
- <settings>
- <param name="bind-address" value="0.0.0.0:1935" />
- <param name="context" value="public" />
- <param name="dialplan" value="XML" />
- <!-- If this is set to true, no unauthenticated inbound calls will be allowed -->
- <param name="auth-calls" value="true" />
- <!-- How much time should the clients buffer the media stream (miliseconds) -->
- <param name="buffer-len" value="50" />
- <!-- Sets the maximum size of outbound RTMP chunks -->
- <param name="chunksize" value="512" />
- </settings>
- </profile>
- </profiles>
- </configuration>
- <configuration name="sangoma_codec.conf" description="Sangoma Codec Configuration">
- <settings>
- <!--
- Comma separated list of codecs to register with FreeSWITCH,
- by default (if this parameter is not set) all available codecs are registered.
- Valid codec values are: PCMU,PCMA,G729,G726-32,G722,GSM,G723,AMR,G7221,iLBC
- If this parameter is not specified only G729 will be registered
- <param name="register" value="all"/>
- -->
- <!--
- List of codecs to not register with FreeSWITCH, by default this is empty,
- but you may want to not load PCMU and PCMA or may be others to not use your
- resources in codecs that are done well and fast in software.
- <param name="noregister" value="PCMU,PCMA"/>
- -->
- <!--
- Transcoding SOAP server URL. If you are installing the soap server (sngtc_server)
- in the same box where FreeSWITCH, do not use this value, the default URL
- that is hard-coded will work out of the box for local installations.
- If you modify this value, you must configure your SOAP server (/etc/sngtc/sngtc_server.conf.xml)
- to listen for HTTP requests on the same IP/port that you specify here.
- <param name="soapserver" value="http://192.168.1.100:8080"/>
- -->
- <!--
- RTP IP to use
- By default, this module asks FreeSWITCH for the local ip address. However if you want to use a specific
- IP address you can set it here.
- <param name="rtpip" value="192.168.1.1"/>
- -->
- </settings>
- </configuration>
- <configuration name="shout.conf" description="mod shout config">
- <settings>
- <!-- Don't change these unless you are insane -->
- <!--<param name="decoder" value="i586"/>-->
- <!--<param name="volume" value=".1"/>-->
- <!--<param name="outscale" value="8192"/>-->
- </settings>
- </configuration>
- <configuration name="skinny.conf" description="Skinny Endpoints">
- <profiles>
- <profile name="internal">
- <settings>
- <param name="domain" value="192.168.0.103"/>
- <param name="ip" value="192.168.0.103"/>
- <param name="port" value="2000"/>
- <param name="patterns-dialplan" value="XML"/>
- <param name="patterns-context" value="skinny-patterns"/>
- <param name="dialplan" value="XML"/>
- <param name="context" value="default"/>
- <param name="keep-alive" value="60"/>
- <param name="date-format" value="D/M/Y"/>
- <param name="odbc-dsn" value=""/>
- <param name="debug" value="4"/>
- <param name="auto-restart" value="true"/>
- <!-- timeout to wait for another digit in milliseconds -->
- <param name="digit-timeout" value="10000"/>
- </settings>
- <soft-key-set-sets>
- <soft-key-set-set name="default">
- <soft-key-set name="KeySetOnHook" value="SoftkeyNewcall,SoftkeyRedial"/>
- <soft-key-set name="KeySetConnected" value="SoftkeyEndcall,SoftkeyHold,SoftkeyNewcall,SoftkeyTransfer"/>
- <soft-key-set name="KeySetOnHold" value="SoftkeyNewcall,SoftkeyResume,SoftkeyEndcall"/>
- <soft-key-set name="KeySetRingIn" value="SoftkeyAnswer,SoftkeyEndcall,SoftkeyNewcall"/>
- <soft-key-set name="KeySetOffHook" value=",SoftkeyRedial,SoftkeyEndcall"/>
- <soft-key-set name="KeySetConnectedWithTransfer" value="SoftkeyEndcall,SoftkeyHold,SoftkeyNewcall,SoftkeyTransfer"/>
- <soft-key-set name="KeySetDigitsAfterDialingFirstDigit" value="SoftkeyBackspace,,SoftkeyEndcall"/>
- <!-- <soft-key-set name="KeySetConnectedWithConference" value=""/> -->
- <soft-key-set name="KeySetRingOut" value=",,SoftkeyEndcall,SoftkeyTransfer"/>
- <soft-key-set name="KeySetOffHookWithFeatures" value=",SoftkeyRedial,SoftkeyEndcall"/>
- <soft-key-set name="KeySetInUseHint" value="SoftkeyNewcall,SoftkeyRedial"/>
- </soft-key-set-set>
- </soft-key-set-sets>
- <device-types>
- <device-type id="Cisco ATA 186">
- <param name="firmware-version" value="ATA030101SCCP04"/>
- </device-type>
- </device-types>
- </profile>
- </profiles>
- </configuration>
- <configuration name="sofia.conf" description="sofia Endpoint">
- <global_settings>
- <param name="log-level" value="0"/>
- <!-- <param name="auto-restart" value="false"/> -->
- <param name="debug-presence" value="0"/>
- <!-- <param name="capture-server" value="udp:homer.domain.com:5060"/> -->
- </global_settings>
- <!--
- The rabbit hole goes deep. This includes all the
- profiles in the sip_profiles directory that is up
- one level from this directory.
- -->
- <profiles>
- <profile name="external-ipv6">
- <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
- <!-- This profile is only for outbound registrations to providers -->
- <gateways>
- <!--<gateway name="asterlink.com">-->
- <!--/// account username *required* ///-->
- <!--<param name="username" value="cluecon"/>-->
- <!--/// auth realm: *optional* same as gateway name, if blank ///-->
- <!--<param name="realm" value="asterlink.com"/>-->
- <!--/// username to use in from: *optional* same as username, if blank ///-->
- <!--<param name="from-user" value="cluecon"/>-->
- <!--/// domain to use in from: *optional* same as realm, if blank ///-->
- <!--<param name="from-domain" value="asterlink.com"/>-->
- <!--/// account password *required* ///-->
- <!--<param name="password" value="2007"/>-->
- <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
- <!--<param name="extension" value="cluecon"/>-->
- <!--/// proxy host: *optional* same as realm, if blank ///-->
- <!--<param name="proxy" value="asterlink.com"/>-->
- <!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
- <!--<param name="register-proxy" value="mysbc.com"/>-->
- <!--/// expire in seconds: *optional* 3600, if blank ///-->
- <!--<param name="expire-seconds" value="60"/>-->
- <!--/// do not register ///-->
- <!--<param name="register" value="false"/>-->
- <!-- which transport to use for register -->
- <!--<param name="register-transport" value="udp"/>-->
- <!--How many seconds before a retry when a failure or timeout occurs -->
- <!--<param name="retry-seconds" value="30"/>-->
- <!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
- <!--<param name="caller-id-in-from" value="false"/>-->
- <!--extra sip params to send in the contact-->
- <!--<param name="contact-params" value=""/>-->
- <!-- Put the extension in the contact -->
- <!--<param name="extension-in-contact" value="true"/>-->
- <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
- <!--<param name="ping" value="25"/>-->
- <!--<param name="cid-type" value="rpid"/>-->
- <!--rfc5626 : Abilitazione rfc5626 ///-->
- <!--<param name="rfc-5626" value="true"/>-->
- <!--rfc5626 : extra sip params to send in the contact-->
- <!--<param name="reg-id" value="1"/>-->
- <!--</gateway>-->
- </gateways>
- <aliases>
- <!--
- <alias name="outbound"/>
- <alias name="nat"/>
- -->
- </aliases>
- <domains>
- <domain name="all" alias="false" parse="true"/>
- </domains>
- <settings>
- <param name="debug" value="0"/>
- <!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
- <!-- <param name="shutdown-on-fail" value="true"/> -->
- <param name="sip-trace" value="no"/>
- <param name="sip-capture" value="no"/>
- <param name="rfc2833-pt" value="101"/>
- <!-- RFC 5626 : Send reg-id and sip.instance -->
- <!--<param name="enable-rfc-5626" value="true"/> -->
- <param name="sip-port" value="5080"/>
- <param name="dialplan" value="XML"/>
- <param name="context" value="public"/>
- <param name="dtmf-duration" value="2000"/>
- <param name="inbound-codec-prefs" value="OPUS,G722,PCMU,PCMA,GSM"/>
- <param name="outbound-codec-prefs" value="PCMU,PCMA,GSM"/>
- <param name="hold-music" value="local_stream://moh"/>
- <param name="rtp-timer-name" value="soft"/>
- <!--<param name="enable-100rel" value="true"/>-->
- <!--<param name="disable-srv503" value="true"/>-->
- <!-- This could be set to "passive" -->
- <param name="local-network-acl" value="localnet.auto"/>
- <param name="manage-presence" value="false"/>
- <!-- used to share presence info across sofia profiles
- manage-presence needs to be set to passive on this profile
- if you want it to behave as if it were the internal profile
- for presence.
- -->
- <!-- Name of the db to use for this profile -->
- <!--<param name="dbname" value="share_presence"/>-->
- <!--<param name="presence-hosts" value="192.168.0.103"/>-->
- <!--<param name="force-register-domain" value="192.168.0.103"/>-->
- <!--all inbound reg will stored in the db using this domain -->
- <!--<param name="force-register-db-domain" value="192.168.0.103"/>-->
- <!-- ************************************************* -->
- <!--<param name="aggressive-nat-detection" value="true"/>-->
- <param name="inbound-codec-negotiation" value="generous"/>
- <param name="nonce-ttl" value="60"/>
- <param name="auth-calls" value="false"/>
- <param name="inbound-late-negotiation" value="true"/>
- <param name="inbound-zrtp-passthru" value="true"/> <!-- (also enables late negotiation) -->
- <!--
- DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
- -->
- <param name="rtp-ip" value="::1"/>
- <param name="sip-ip" value="::1"/>
- <param name="ext-rtp-ip" value="auto-nat"/>
- <param name="ext-sip-ip" value="auto-nat"/>
- <param name="rtp-timeout-sec" value="300"/>
- <param name="rtp-hold-timeout-sec" value="1800"/>
- <!--<param name="enable-3pcc" value="true"/>-->
- <!-- TLS: disabled by default, set to "true" to enable -->
- <param name="tls" value="false"/>
- <!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
- <param name="tls-only" value="false"/>
- <!-- additional bind parameters for TLS -->
- <param name="tls-bind-params" value="transport=tls"/>
- <!-- Port to listen on for TLS requests. (5081 will be used if unspecified) -->
- <param name="tls-sip-port" value="5081"/>
- <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
- <!--<param name="tls-cert-dir" value=""/>-->
- <!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
- <param name="tls-passphrase" value=""/>
- <!-- Verify the date on TLS certificates -->
- <param name="tls-verify-date" value="true"/>
- <!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
- <!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
- <param name="tls-verify-policy" value="none"/>
- <!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
- <param name="tls-verify-depth" value="2"/>
- <!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
- <param name="tls-verify-in-subjects" value=""/>
- <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
- <param name="tls-version" value="tlsv1,tlsv1.1,tlsv1.2"/>
- </settings>
- </profile>
- <profile name="external">
- <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
- <!-- This profile is only for outbound registrations to providers -->
- <gateways>
- <gateway name="dinstar">
- <!--/// account username *required* ///-->
- <param name="username" value="1018"/>
- <!--/// auth realm: *optional* same as gateway name, if blank ///-->
- <param name="realm" value="192.168.0.212"/>
- <!--/// username to use in from: *optional* same as username, if blank ///-->
- <param name="from-user" value="1018"/>
- <!--/// domain to use in from: *optional* same as realm, if blank ///-->
- <!--<param name="from-domain" value="asterlink.com"/>-->
- <!--/// account password *required* ///-->
- <param name="password" value="1234"/>
- <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
- <!--<param name="extension" value="cluecon"/>-->
- <!--/// proxy host: *optional* same as realm, if blank ///-->
- <!--<param name="proxy" value="asterlink.com"/>-->
- <!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
- <!--<param name="register-proxy" value="mysbc.com"/>-->
- <!--/// expire in seconds: *optional* 3600, if blank ///-->
- <!--<param name="expire-seconds" value="60"/>-->
- <!--/// do not register ///-->
- <param name="register" value="false"/>
- <!-- which transport to use for register -->
- <!--<param name="register-transport" value="udp"/>-->
- <!--How many seconds before a retry when a failure or timeout occurs -->
- <!--<param name="retry-seconds" value="30"/>-->
- <!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
- <!--<param name="caller-id-in-from" value="false"/>-->
- <!--extra sip params to send in the contact-->
- <!--<param name="contact-params" value="tport=tcp"/>-->
- <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
- <param name="ping" value="25"/>
- </gateway>
- <!--<gateway name="asterlink.com">-->
- <!--/// account username *required* ///-->
- <!--<param name="username" value="cluecon"/>-->
- <!--/// auth realm: *optional* same as gateway name, if blank ///-->
- <!--<param name="realm" value="asterlink.com"/>-->
- <!--/// username to use in from: *optional* same as username, if blank ///-->
- <!--<param name="from-user" value="cluecon"/>-->
- <!--/// domain to use in from: *optional* same as realm, if blank ///-->
- <!--<param name="from-domain" value="asterlink.com"/>-->
- <!--/// account password *required* ///-->
- <!--<param name="password" value="2007"/>-->
- <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
- <!--<param name="extension" value="cluecon"/>-->
- <!--/// proxy host: *optional* same as realm, if blank ///-->
- <!--<param name="proxy" value="asterlink.com"/>-->
- <!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
- <!--<param name="register-proxy" value="mysbc.com"/>-->
- <!--/// expire in seconds: *optional* 3600, if blank ///-->
- <!--<param name="expire-seconds" value="60"/>-->
- <!--/// do not register ///-->
- <!--<param name="register" value="false"/>-->
- <!-- which transport to use for register -->
- <!--<param name="register-transport" value="udp"/>-->
- <!--How many seconds before a retry when a failure or timeout occurs -->
- <!--<param name="retry-seconds" value="30"/>-->
- <!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
- <!--<param name="caller-id-in-from" value="false"/>-->
- <!--extra sip params to send in the contact-->
- <!--<param name="contact-params" value=""/>-->
- <!-- Put the extension in the contact -->
- <!--<param name="extension-in-contact" value="true"/>-->
- <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
- <!--<param name="ping" value="25"/>-->
- <!--<param name="cid-type" value="rpid"/>-->
- <!--rfc5626 : Abilitazione rfc5626 ///-->
- <!--<param name="rfc-5626" value="true"/>-->
- <!--rfc5626 : extra sip params to send in the contact-->
- <!--<param name="reg-id" value="1"/>-->
- <!--</gateway>-->
- </gateways>
- <aliases>
- <!--
- <alias name="outbound"/>
- <alias name="nat"/>
- -->
- </aliases>
- <domains>
- <domain name="all" alias="false" parse="true"/>
- </domains>
- <settings>
- <param name="debug" value="0"/>
- <!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
- <!-- <param name="shutdown-on-fail" value="true"/> -->
- <param name="sip-trace" value="no"/>
- <param name="sip-capture" value="no"/>
- <param name="rfc2833-pt" value="101"/>
- <!-- RFC 5626 : Send reg-id and sip.instance -->
- <!--<param name="enable-rfc-5626" value="true"/> -->
- <param name="sip-port" value="5080"/>
- <param name="dialplan" value="XML"/>
- <param name="context" value="public"/>
- <param name="dtmf-duration" value="2000"/>
- <param name="inbound-codec-prefs" value="OPUS,G722,PCMU,PCMA,GSM"/>
- <param name="outbound-codec-prefs" value="PCMU,PCMA,GSM"/>
- <param name="hold-music" value="local_stream://moh"/>
- <param name="rtp-timer-name" value="soft"/>
- <!--<param name="enable-100rel" value="true"/>-->
- <!--<param name="disable-srv503" value="true"/>-->
- <!-- This could be set to "passive" -->
- <param name="local-network-acl" value="localnet.auto"/>
- <param name="manage-presence" value="false"/>
- <!-- used to share presence info across sofia profiles
- manage-presence needs to be set to passive on this profile
- if you want it to behave as if it were the internal profile
- for presence.
- -->
- <!-- Name of the db to use for this profile -->
- <!--<param name="dbname" value="share_presence"/>-->
- <!--<param name="presence-hosts" value="192.168.0.103"/>-->
- <!--<param name="force-register-domain" value="192.168.0.103"/>-->
- <!--all inbound reg will stored in the db using this domain -->
- <!--<param name="force-register-db-domain" value="192.168.0.103"/>-->
- <!-- ************************************************* -->
- <!--<param name="aggressive-nat-detection" value="true"/>-->
- <param name="inbound-codec-negotiation" value="generous"/>
- <param name="nonce-ttl" value="60"/>
- <param name="auth-calls" value="false"/>
- <param name="inbound-late-negotiation" value="true"/>
- <param name="inbound-zrtp-passthru" value="true"/> <!-- (also enables late negotiation) -->
- <!--
- DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
- -->
- <param name="rtp-ip" value="192.168.0.103"/>
- <param name="sip-ip" value="192.168.0.103"/>
- <param name="ext-rtp-ip" value="auto-nat"/>
- <param name="ext-sip-ip" value="auto-nat"/>
- <param name="rtp-timeout-sec" value="300"/>
- <param name="rtp-hold-timeout-sec" value="1800"/>
- <!--<param name="enable-3pcc" value="true"/>-->
- <!-- TLS: disabled by default, set to "true" to enable -->
- <param name="tls" value="false"/>
- <!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
- <param name="tls-only" value="false"/>
- <!-- additional bind parameters for TLS -->
- <param name="tls-bind-params" value="transport=tls"/>
- <!-- Port to listen on for TLS requests. (5081 will be used if unspecified) -->
- <param name="tls-sip-port" value="5081"/>
- <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
- <!--<param name="tls-cert-dir" value=""/>-->
- <!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
- <param name="tls-passphrase" value=""/>
- <!-- Verify the date on TLS certificates -->
- <param name="tls-verify-date" value="true"/>
- <!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
- <!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
- <param name="tls-verify-policy" value="none"/>
- <!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
- <param name="tls-verify-depth" value="2"/>
- <!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
- <param name="tls-verify-in-subjects" value=""/>
- <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
- <param name="tls-version" value="tlsv1,tlsv1.1,tlsv1.2"/>
- </settings>
- </profile>
- <profile name="internal-ipv6">
- <!--
- This is an example of a sofia profile setup to listen on IPv6.
- -->
- <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
- <!--aliases are other names that will work as a valid profile name for this profile-->
- <settings>
- <!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
- <param name="debug" value="0"/>
- <param name="sip-trace" value="no"/>
- <param name="context" value="public"/>
- <param name="rfc2833-pt" value="101"/>
- <!-- port to bind to for sip traffic -->
- <param name="sip-port" value="5060"/>
- <param name="dialplan" value="XML"/>
- <param name="dtmf-duration" value="2000"/>
- <param name="inbound-codec-prefs" value="OPUS,G722,PCMU,PCMA,GSM"/>
- <param name="outbound-codec-prefs" value="OPUS,G722,PCMU,PCMA,GSM"/>
- <param name="use-rtp-timer" value="true"/>
- <param name="rtp-timer-name" value="soft"/>
- <!-- ip address to use for rtp -->
- <param name="rtp-ip" value="::1"/>
- <!-- ip address to bind to -->
- <param name="sip-ip" value="::1"/>
- <param name="hold-music" value="local_stream://moh"/>
- <!--<param name="enable-100rel" value="false"/>-->
- <!--<param name="disable-srv503" value="true"/>-->
- <param name="apply-inbound-acl" value="domains"/>
- <!--<param name="apply-register-acl" value="domains"/>-->
- <!--<param name="dtmf-type" value="info"/>-->
- <param name="record-template" value="C:/Program Files/FreeSWITCH/recordings/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
- <!--enable to use presence and mwi -->
- <param name="manage-presence" value="true"/>
- <!-- This setting is for AAL2 bitpacking on G726 -->
- <!-- <param name="bitpacking" value="aal2"/> -->
- <!--max number of open dialogs in proceeding -->
- <!--<param name="max-proceeding" value="1000"/>-->
- <!--session timers for all call to expire after the specified seconds -->
- <!--<param name="session-timeout" value="1800"/>-->
- <!--<param name="multiple-registrations" value="true"/>-->
- <!--set to 'greedy' if you want your codec list to take precedence -->
- <param name="inbound-codec-negotiation" value="generous"/>
- <!-- if you want to send any special bind params of your own -->
- <!--<param name="bind-params" value="transport=udp"/>-->
- <!--<param name="unregister-on-options-fail" value="true"/>-->
- <!-- TLS: disabled by default, set to "true" to enable -->
- <param name="tls" value="false"/>
- <!-- additional bind parameters for TLS -->
- <param name="tls-bind-params" value="transport=tls"/>
- <!-- Port to listen on for TLS requests. (5061 will be used if unspecified) -->
- <param name="tls-sip-port" value="5061"/>
- <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
- <param name="tls-cert-dir" value=""/>
- <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
- <param name="tls-version" value="tlsv1,tlsv1.1,tlsv1.2"/>
- <!--If you don't want to pass through timestampes from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
- <!--<param name="rtp-rewrite-timestamps" value="true"/>-->
- <!--<param name="pass-rfc2833" value="true"/>-->
- <!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
- <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
- <!--Uncomment to set all inbound calls to no media mode-->
- <!--<param name="inbound-bypass-media" value="true"/>-->
- <!--Uncomment to set all inbound calls to proxy media mode-->
- <!--<param name="inbound-proxy-media" value="true"/>-->
- <!-- Let calls hit the dialplan before selecting codec for the a-leg -->
- <param name="inbound-late-negotiation" value="true"/>
- <!-- Allow ZRTP clients to negotiate end-to-end security associations (also enables late negotiation) -->
- <param name="inbound-zrtp-passthru" value="true"/>
- <!-- this lets anything register -->
- <!-- comment the next line and uncomment one or both of the other 2 lines for call authentication -->
- <!-- <param name="accept-blind-reg" value="true"/> -->
- <!-- accept any authentication without actually checking (not a good feature for most people) -->
- <!-- <param name="accept-blind-auth" value="true"/> -->
- <!-- suppress CNG on this profile or per call with the 'suppress_cng' variable -->
- <!-- <param name="suppress-cng" value="true"/> -->
- <!--TTL for nonce in sip auth-->
- <param name="nonce-ttl" value="60"/>
- <!--Uncomment if you want to force the outbound leg of a bridge to only offer the codec
- that the originator is using-->
- <!--<param name="disable-transcoding" value="true"/>-->
- <!-- Used for when phones respond to a challenged ACK with method INVITE in the hash -->
- <!--<param name="NDLB-broken-auth-hash" value="true"/>-->
- <!-- add a ;received="<ip>:<port>" to the contact when replying to register for nat handling -->
- <!--<param name="NDLB-received-in-nat-reg-contact" value="true"/>-->
- <param name="auth-calls" value="true"/>
- <!-- on authed calls, authenticate *all* the packets not just invite -->
- <param name="auth-all-packets" value="false"/>
- <!-- <param name="ext-rtp-ip" value="stun:stun.freeswitch.org"/> -->
- <!-- <param name="ext-sip-ip" value="stun:stun.freeswitch.org"/> -->
- <!-- rtp inactivity timeout -->
- <param name="rtp-timeout-sec" value="300"/>
- <param name="rtp-hold-timeout-sec" value="1800"/>
- <!-- VAD choose one (out is a good choice); -->
- <!-- <param name="vad" value="in"/> -->
- <!-- <param name="vad" value="out"/> -->
- <!-- <param name="vad" value="both"/> -->
- <!--<param name="alias" value="sip:10.0.1.251:5555"/>-->
- <!--
- These are enabled to make the default config work better out of the box.
- If you need more than ONE domain you'll need to not use these options.
- -->
- <!--all inbound reg will look in this domain for the users -->
- <param name="force-register-domain" value="192.168.0.103"/>
- <!--all inbound reg will stored in the db using this domain -->
- <param name="force-register-db-domain" value="192.168.0.103"/>
- <!-- disable register and transfer which may be undesirable in a public switch -->
- <!--<param name="disable-transfer" value="true"/>-->
- <!--<param name="disable-register" value="true"/>-->
- <!--<param name="enable-3pcc" value="true"/>-->
- <!-- use stun when specified (default is true) -->
- <!--<param name="stun-enabled" value="true"/>-->
- <!-- use stun when specified (default is true) -->
- <!-- set to true to have the profile determine stun is not useful and turn it off globally-->
- <!--<param name="stun-auto-disable" value="true"/>-->
- <!-- the following can be used as workaround with bogus SRV/NAPTR records -->
- <!--<param name="disable-srv" value="false" />-->
- <!--<param name="disable-naptr" value="false" />-->
- </settings>
- </profile>
- <profile name="internal">
- <!--
- This is a sofia sip profile/user agent. This will service exactly one ip and port.
- In FreeSWITCH you can run multiple sip user agents on their own ip and port.
- When you hear someone say "sofia profile" this is what they are talking about.
- -->
- <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
- <!--aliases are other names that will work as a valid profile name for this profile-->
- <aliases>
- <!--
- <alias name="default"/>
- -->
- </aliases>
- <!-- Outbound Registrations -->
- <gateways>
- </gateways>
- <domains>
- <!-- indicator to parse the directory for domains with parse="true" to get gateways-->
- <!--<domain name="192.168.0.103" parse="true"/>-->
- <!-- indicator to parse the directory for domains with parse="true" to get gateways and alias every domain to this profile -->
- <!--<domain name="all" alias="true" parse="true"/>-->
- <domain name="all" alias="true" parse="false"/>
- </domains>
- <settings>
- <!-- inject delay between dtmf digits on send to help some slow interpreters (also per channel with rtp_digit_delay var -->
- <!-- <param name="rtp-digit-delay" value="40"/>-->
- <!--
- When calls are in no media this will bring them back to media
- when you press the hold button.
- -->
- <!--<param name="media-option" value="resume-media-on-hold"/> -->
- <!--
- This will allow a call after an attended transfer go back to
- bypass media after an attended transfer.
- -->
- <!--<param name="media-option" value="bypass-media-after-att-xfer"/>-->
- <!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
- <param name="debug" value="0"/>
- <!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
- <!-- <param name="shutdown-on-fail" value="true"/> -->
- <param name="sip-trace" value="no"/>
- <param name="sip-capture" value="no"/>
- <!-- Use presence_map.conf.xml to convert extension regex to presence protos for routing -->
- <!-- <param name="presence-proto-lookup" value="true"/> -->
- <!-- Don't be picky about negotiated DTMF just always offer 2833 and accept both 2833 and INFO -->
- <!--<param name="liberal-dtmf" value="true"/>-->
- <!--
- Sometimes, in extremely rare edge cases, the Sofia SIP stack may stop
- responding. These options allow you to enable and control a watchdog
- on the Sofia SIP stack so that if it stops responding for the
- specified number of milliseconds, it will cause FreeSWITCH to crash
- immediately. This is useful if you run in an HA environment and
- need to ensure automated recovery from such a condition. Note that if
- your server is idle a lot, the watchdog may fire due to not receiving
- any SIP messages. Thus, if you expect your system to be idle, you
- should leave the watchdog disabled. It can be toggled on and off
- through the FreeSWITCH CLI either on an individual profile basis or
- globally for all profiles. So, if you run in an HA environment with a
- master and slave, you should use the CLI to make sure the watchdog is
- only enabled on the master.
- If such crash occurs, FreeSWITCH will dump core if allowed. The
- stacktrace will include function watchdog_triggered_abort().
- -->
- <param name="watchdog-enabled" value="no"/>
- <param name="watchdog-step-timeout" value="30000"/>
- <param name="watchdog-event-timeout" value="30000"/>
- <param name="log-auth-failures" value="false"/>
- <param name="forward-unsolicited-mwi-notify" value="false"/>
- <param name="context" value="public"/>
- <param name="rfc2833-pt" value="101"/>
- <!-- port to bind to for sip traffic -->
- <param name="sip-port" value="5060"/>
- <param name="dialplan" value="XML"/>
- <param name="dtmf-duration" value="2000"/>
- <param name="inbound-codec-prefs" value="OPUS,G722,PCMU,PCMA,GSM"/>
- <param name="outbound-codec-prefs" value="OPUS,G722,PCMU,PCMA,GSM"/>
- <param name="rtp-timer-name" value="soft"/>
- <!-- ip address to use for rtp, DO NOT USE HOSTNAMES ONLY IP ADDRESSES -->
- <param name="rtp-ip" value="192.168.0.103"/>
- <!-- ip address to bind to, DO NOT USE HOSTNAMES ONLY IP ADDRESSES -->
- <param name="sip-ip" value="192.168.0.103"/>
- <param name="hold-music" value="local_stream://moh"/>
- <param name="apply-nat-acl" value="nat.auto"/>
- <!-- (default true) set to false if you do not wish to have called party info in 1XX responses -->
- <!-- <param name="cid-in-1xx" value="false"/> -->
- <!-- extended info parsing -->
- <!-- <param name="extended-info-parsing" value="true"/> -->
- <!--<param name="aggressive-nat-detection" value="true"/>-->
- <!--
- There are known issues (asserts and segfaults) when 100rel is enabled.
- It is not recommended to enable 100rel at this time.
- -->
- <!--<param name="enable-100rel" value="true"/>-->
- <!-- uncomment if you don't wish to try a next SRV destination on 503 response -->
- <!-- RFC3263 Section 4.3 -->
- <!--<param name="disable-srv503" value="true"/>-->
- <!-- Enable Compact SIP headers. -->
- <!--<param name="enable-compact-headers" value="true"/>-->
- <!--
- enable/disable session timers
- -->
- <!--<param name="enable-timer" value="false"/>-->
- <!--<param name="minimum-session-expires" value="120"/>-->
- <param name="apply-inbound-acl" value="domains"/>
- <!--
- This defines your local network, by default we detect your local network
- and create this localnet.auto ACL for this.
- -->
- <param name="local-network-acl" value="localnet.auto"/>
- <!--<param name="apply-register-acl" value="domains"/>-->
- <!--<param name="dtmf-type" value="info"/>-->
- <!-- 'true' means every time 'first-only' means on the first register -->
- <!--<param name="send-message-query-on-register" value="true"/>-->
- <!-- 'true' means every time 'first-only' means on the first register -->
- <!--<param name="send-presence-on-register" value="first-only"/> -->
- <!-- Caller-ID type (choose one, can be overridden by inbound call type and/or sip_cid_type channel variable -->
- <!-- Remote-Party-ID header -->
- <!--<param name="caller-id-type" value="rpid"/>-->
- <!-- P-*-Identity family of headers -->
- <!--<param name="caller-id-type" value="pid"/>-->
- <!-- neither one -->
- <!--<param name="caller-id-type" value="none"/>-->
- <param name="record-path" value="C:/Program Files/FreeSWITCH/recordings"/>
- <param name="record-template" value="${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
- <!--enable to use presence -->
- <param name="manage-presence" value="true"/>
- <!-- send a presence probe on each register to query devices to send presence instead of sending presence with less info -->
- <!--<param name="presence-probe-on-register" value="true"/>-->
- <!--<param name="manage-shared-appearance" value="true"/>-->
- <!-- used to share presence info across sofia profiles -->
- <!-- Name of the db to use for this profile -->
- <!--<param name="dbname" value="share_presence"/>-->
- <param name="presence-hosts" value="192.168.0.103,192.168.0.103"/>
- <param name="presence-privacy" value="false"/>
- <!-- ************************************************* -->
- <!-- This setting is for AAL2 bitpacking on G726 -->
- <!-- <param name="bitpacking" value="aal2"/> -->
- <!--max number of open dialogs in proceeding -->
- <!--<param name="max-proceeding" value="1000"/>-->
- <!--session timers for all call to expire after the specified seconds -->
- <!--<param name="session-timeout" value="1800"/>-->
- <!-- Can be 'true' or 'contact' -->
- <!--<param name="multiple-registrations" value="contact"/>-->
- <!--set to 'greedy' if you want your codec list to take precedence -->
- <param name="inbound-codec-negotiation" value="generous"/>
- <!-- if you want to send any special bind params of your own -->
- <!--<param name="bind-params" value="transport=udp"/>-->
- <!--<param name="unregister-on-options-fail" value="true"/>-->
- <!-- Send an OPTIONS packet to all registered endpoints -->
- <!--<param name="all-reg-options-ping" value="true"/>-->
- <!-- Send an OPTIONS packet to NATed registered endpoints. Can be 'true' or 'udp-only'. -->
- <!--<param name="nat-options-ping" value="true"/>-->
- <!--<param name="sip-options-respond-503-on-busy" value="true"/>-->
- <!--<param name="sip-messages-respond-200-ok" value="true"/>-->
- <!--<param name="sip-subscribe-respond-200-ok" value="true"/>-->
- <!-- TLS: disabled by default, set to "true" to enable -->
- <param name="tls" value="false"/>
- <!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
- <param name="tls-only" value="false"/>
- <!-- additional bind parameters for TLS -->
- <param name="tls-bind-params" value="transport=tls"/>
- <!-- Port to listen on for TLS requests. (5061 will be used if unspecified) -->
- <param name="tls-sip-port" value="5061"/>
- <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
- <!--<param name="tls-cert-dir" value=""/>-->
- <!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
- <param name="tls-passphrase" value=""/>
- <!-- Verify the date on TLS certificates -->
- <param name="tls-verify-date" value="true"/>
- <!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
- <!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
- <param name="tls-verify-policy" value="none"/>
- <!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
- <param name="tls-verify-depth" value="2"/>
- <!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
- <param name="tls-verify-in-subjects" value=""/>
- <!-- TLS version default: tlsv1,tlsv1.1,tlsv1.2 -->
- <param name="tls-version" value="tlsv1,tlsv1.1,tlsv1.2"/>
- <!-- TLS ciphers default: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH -->
- <param name="tls-ciphers" value="ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"/>
- <!-- turn on auto-flush during bridge (skip timer sleep when the socket already has data)
- (reduces delay on latent connections default true, must be disabled explicitly)-->
- <!--<param name="rtp-autoflush-during-bridge" value="false"/>-->
- <!--If you don't want to pass through timestamps from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
- <!--<param name="rtp-rewrite-timestamps" value="true"/>-->
- <!--<param name="pass-rfc2833" value="true"/>-->
- <!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
- <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
- <!-- Or, if you have PGSQL support, you can use that -->
- <!--<param name="odbc-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE' application_name='freeswitch'" />-->
- <!--Uncomment to set all inbound calls to no media mode-->
- <!--<param name="inbound-bypass-media" value="true"/>-->
- <!--Uncomment to set all inbound calls to proxy media mode-->
- <!--<param name="inbound-proxy-media" value="true"/>-->
- <!-- Let calls hit the dialplan before selecting codec for the a-leg -->
- <param name="inbound-late-negotiation" value="true"/>
- <!-- Allow ZRTP clients to negotiate end-to-end security associations (also enables late negotiation) -->
- <param name="inbound-zrtp-passthru" value="true"/>
- <!-- this lets anything register -->
- <!-- comment the next line and uncomment one or both of the other 2 lines for call authentication -->
- <!-- <param name="accept-blind-reg" value="true"/> -->
- <!-- accept any authentication without actually checking (not a good feature for most people) -->
- <!-- <param name="accept-blind-auth" value="true"/> -->
- <!-- suppress CNG on this profile or per call with the 'suppress_cng' variable -->
- <!-- <param name="suppress-cng" value="true"/> -->
- <!--TTL for nonce in sip auth-->
- <param name="nonce-ttl" value="60"/>
- <!--Uncomment if you want to force the outbound leg of a bridge to only offer the codec
- that the originator is using-->
- <!--<param name="disable-transcoding" value="true"/>-->
- <!-- Handle 302 Redirect in the dialplan -->
- <!--<param name="manual-redirect" value="true"/> -->
- <!-- Disable Transfer -->
- <!--<param name="disable-transfer" value="true"/> -->
- <!-- Disable Register -->
- <!--<param name="disable-register" value="true"/> -->
- <!-- Used for when phones respond to a challenged ACK with method INVITE in the hash -->
- <!--<param name="NDLB-broken-auth-hash" value="true"/>-->
- <!-- add a ;received="<ip>:<port>" to the contact when replying to register for nat handling -->
- <!--<param name="NDLB-received-in-nat-reg-contact" value="true"/>-->
- <param name="auth-calls" value="true"/>
- <!-- Force the user and auth-user to match. -->
- <param name="inbound-reg-force-matching-username" value="true"/>
- <!-- on authed calls, authenticate *all* the packets not just invite -->
- <param name="auth-all-packets" value="false"/>
- <!-- external_sip_ip
- Used as the public IP address for SDP.
- Can be an one of:
- ip address - "12.34.56.78"
- a stun server lookup - "stun:stun.server.com"
- a DNS name - "host:host.server.com"
- auto - Use guessed ip.
- auto-nat - Use ip learned from NAT-PMP or UPNP
- -->
- <param name="ext-rtp-ip" value="auto-nat"/>
- <param name="ext-sip-ip" value="auto-nat"/>
- <!-- rtp inactivity timeout -->
- <param name="rtp-timeout-sec" value="300"/>
- <param name="rtp-hold-timeout-sec" value="1800"/>
- <!-- VAD choose one (out is a good choice); -->
- <!-- <param name="vad" value="in"/> -->
- <!-- <param name="vad" value="out"/> -->
- <!-- <param name="vad" value="both"/> -->
- <!--<param name="alias" value="sip:10.0.1.251:5555"/>-->
- <!--
- These are enabled to make the default config work better out of the box.
- If you need more than ONE domain you'll need to not use these options.
- -->
- <!--all inbound reg will look in this domain for the users -->
- <param name="force-register-domain" value="192.168.0.103"/>
- <!--force the domain in subscriptions to this value -->
- <param name="force-subscription-domain" value="192.168.0.103"/>
- <!--all inbound reg will stored in the db using this domain -->
- <param name="force-register-db-domain" value="192.168.0.103"/>
- <!-- uncomment for sip over websocket support -->
- <!--<param name="ws-binding" value=":5066"/>-->
- <!-- uncomment for sip over secure websocket support -->
- <!-- You need wss.pem in C:/Program Files/FreeSWITCH/cert for wss -->
- <!--<param name="wss-binding" value=":7443"/>-->
- <!--<param name="delete-subs-on-register" value="false"/>-->
- <!-- launch a new thread to process each new inbound register when using heavier backends -->
- <!-- <param name="inbound-reg-in-new-thread" value="true"/> -->
- <!-- enable rtcp on every channel also can be done per leg basis with rtcp_audio_interval_msec variable set to passthru to pass it across a call-->
- <!--<param name="rtcp-audio-interval-msec" value="5000"/>-->
- <!--<param name="rtcp-video-interval-msec" value="5000"/>-->
- <!--force suscription expires to a lower value than requested-->
- <!--<param name="force-subscription-expires" value="60"/>-->
- <!-- add a random deviation to the expires value of the 202 Accepted -->
- <!--<param name="sip-subscription-max-deviation" value="120"/>-->
- <!-- disable register and transfer which may be undesirable in a public switch -->
- <!--<param name="disable-transfer" value="true"/>-->
- <!--<param name="disable-register" value="true"/>-->
- <!--
- enable-3pcc can be set to either 'true' or 'proxy', true accepts the call
- right away, proxy waits until the call has been answered then sends accepts
- -->
- <!--<param name="enable-3pcc" value="true"/>-->
- <!-- use at your own risk or if you know what this does.-->
- <!--<param name="NDLB-force-rport" value="true"/>-->
- <!--
- Choose the realm challenge key. Default is auto_to if not set.
- auto_from - uses the from field as the value for the sip realm.
- auto_to - uses the to field as the value for the sip realm.
- <anyvalue> - you can input any value to use for the sip realm.
- If you want URL dialing to work you'll want to set this to auto_from.
- If you use any other value besides auto_to or auto_from you'll
- loose the ability to do multiple domains.
- Note: comment out to restore the behavior before 2008-09-29
- -->
- <param name="challenge-realm" value="auto_from"/>
- <!--<param name="disable-rtp-auto-adjust" value="true"/>-->
- <!-- on inbound calls make the uuid of the session equal to the sip call id of that call -->
- <!--<param name="inbound-use-callid-as-uuid" value="true"/>-->
- <!-- on outbound calls set the callid to match the uuid of the session -->
- <!--<param name="outbound-use-uuid-as-callid" value="true"/>-->
- <!-- set to false disable this feature -->
- <!--<param name="rtp-autofix-timing" value="false"/>-->
- <!-- set this param to false if your gateway for some reason hates X- headers that it is supposed to ignore-->
- <!--<param name="pass-callee-id" value="false"/>-->
- <!-- clear clears them all or supply the name to add or the name
- prefixed with ~ to remove valid values:
- clear
- CISCO_SKIP_MARK_BIT_2833
- SONUS_SEND_INVALID_TIMESTAMP_2833
- -->
- <!--<param name="auto-rtp-bugs" data="clear"/>-->
- <!-- the following can be used as workaround with bogus SRV/NAPTR records -->
- <!--<param name="disable-srv" value="false" />-->
- <!--<param name="disable-naptr" value="false" />-->
- <!-- The following can be used to fine-tune timers within sofia's transport layer
- Those settings are for advanced users and can safely be left as-is -->
- <!-- Initial retransmission interval (in milliseconds).
- Set the T1 retransmission interval used by the SIP transaction engine.
- The T1 is the initial duration used by request retransmission timers A and E (UDP) as well as response retransmission timer G. -->
- <!-- <param name="timer-T1" value="500" /> -->
- <!-- Transaction timeout (defaults to T1 * 64).
- Set the T1x64 timeout value used by the SIP transaction engine.
- The T1x64 is duration used for timers B, F, H, and J (UDP) by the SIP transaction engine.
- The timeout value T1x64 can be adjusted separately from the initial retransmission interval T1. -->
- <!-- <param name="timer-T1X64" value="32000" /> -->
- <!-- Maximum retransmission interval (in milliseconds).
- Set the maximum retransmission interval used by the SIP transaction engine.
- The T2 is the maximum duration used for the timers E (UDP) and G by the SIP transaction engine.
- Note that the timer A is not capped by T2. Retransmission interval of INVITE requests grows exponentially
- until the timer B fires. -->
- <!-- <param name="timer-T2" value="4000" /> -->
- <!--
- Transaction lifetime (in milliseconds).
- Set the lifetime for completed transactions used by the SIP transaction engine.
- A completed transaction is kept around for the duration of T4 in order to catch late responses.
- The T4 is the maximum duration for the messages to stay in the network and the duration of SIP timer K. -->
- <!-- <param name="timer-T4" value="4000" /> -->
- <!-- Turn on a jitterbuffer for every call -->
- <!-- <param name="auto-jitterbuffer-msec" value="60"/> -->
- <!-- By default mod_sofia will ignore the codecs in the sdp for hold/unhold operations
- Set this to true if you want to actually parse the sdp and re-negotiate the codec during hold/unhold.
- It's probably not what you want so stick with the default unless you really need to change this.
- -->
- <!--<param name="renegotiate-codec-on-hold" value="true"/>-->
- </settings>
- </profile>
- </profiles>
- </configuration>
- <configuration name="spandsp.conf" description="SpanDSP config">
- <modem-settings>
- <!--
- total-modems set to N will create that many soft-modems.
- If you use them with Hylafax you need the following for each one numbered 0..N:
- 1) A line like this in /etc/inittab:
- f0:2345:respawn:/usr/lib/fax/faxgetty /dev/FS0
- 2) copy conf/config.FS0 to /var/spool/hylafax/etc (or wherver the appropriate dir is on your system)
- Subsequent modem configs would incrment the 0 to 1 and so on.
- -->
- <param name="total-modems" value="0"/>
- <!-- Change the directory of the devices created from /dev. Needed if FS runs as non-root -->
- <!-- <param name="directory" value="/dev/FS"/> -->
- <!-- Default context and dialplan to use on inbound calls from the modems -->
- <param name="context" value="default"/>
- <param name="dialplan" value="XML"/>
- <!-- Extra tracing for debugging -->
- <param name="verbose" value="false"/>
- </modem-settings>
- <fax-settings>
- <param name="use-ecm" value="true"/>
- <param name="verbose" value="false"/>
- <param name="disable-v17" value="false"/>
- <param name="ident" value="SpanDSP Fax Ident"/>
- <param name="header" value="SpanDSP Fax Header"/>
- <param name="spool-dir" value="C:/Users/Madhuri/AppData/Local/Temp"/>
- <param name="file-prefix" value="faxrx"/>
- </fax-settings>
- <descriptors>
- <!-- These tones are defined in Annex to ITU Operational Bulletin No. 781 - 1.II.2003 -->
- <!-- Various Tones Used in National Networks (According to ITU-T Recommendation E.180)(03/1998) -->
- <!-- North America -->
- <descriptor name="1">
- <tone name="CED_TONE">
- <element freq1="2100" freq2="0" min="700" max="0"/>
- </tone>
- <tone name="SIT">
- <element freq1="950" freq2="0" min="256" max="400"/>
- <element freq1="1400" freq2="0" min="256" max="400"/>
- <element freq1="1800" freq2="0" min="256" max="400"/>
- </tone>
- <tone name="RING_TONE" description="North America ring">
- <element freq1="440" freq2="480" min="1200" max="0"/>
- </tone>
- <tone name="REORDER_TONE">
- <element freq1="480" freq2="620" min="224" max="316"/>
- <element freq1="0" freq2="0" min="168" max="352"/>
- <element freq1="480" freq2="620" min="224" max="316"/>
- </tone>
- <tone name="BUSY_TONE">
- <element freq1="480" freq2="620" min="464" max="536"/>
- <element freq1="0" freq2="0" min="464" max="572"/>
- <element freq1="480" freq2="620" min="464" max="536"/>
- </tone>
- </descriptor>
- <!-- United Kingdom -->
- <descriptor name="44">
- <tone name="CED_TONE">
- <element freq1="2100" freq2="0" min="500" max="0"/>
- </tone>
- <tone name="SIT">
- <element freq1="950" freq2="0" min="256" max="400"/>
- <element freq1="1400" freq2="0" min="256" max="400"/>
- <element freq1="1800" freq2="0" min="256" max="400"/>
- </tone>
- <tone name="REORDER_TONE">
- <element freq1="400" freq2="0" min="368" max="416"/>
- <element freq1="0" freq2="0" min="336" max="368"/>
- <element freq1="400" freq2="0" min="256" max="288"/>
- <element freq1="0" freq2="0" min="512" max="544"/>
- </tone>
- <tone name="BUSY_TONE">
- <element freq1="400" freq2="0" min="352" max="384"/>
- <element freq1="0" freq2="0" min="352" max="384"/>
- <element freq1="400" freq2="0" min="352" max="384"/>
- <element freq1="0" freq2="0" min="352" max="384"/>
- </tone>
- </descriptor>
- <!-- Germany -->
- <descriptor name="49">
- <tone name="CED_TONE">
- <element freq1="2100" freq2="0" min="500" max="0"/>
- </tone>
- <tone name="SIT">
- <element freq1="900" freq2="0" min="256" max="400"/>
- <element freq1="1400" freq2="0" min="256" max="400"/>
- <element freq1="1800" freq2="0" min="256" max="400"/>
- </tone>
- <tone name="REORDER_TONE">
- <element freq1="425" freq2="0" min="224" max="272"/>
- <element freq1="0" freq2="0" min="224" max="272"/>
- </tone>
- <tone name="BUSY_TONE">
- <element freq1="425" freq2="0" min="464" max="516"/>
- <element freq1="0" freq2="0" min="464" max="516"/>
- </tone>
- </descriptor>
- </descriptors>
- </configuration>
- <configuration name="switch.conf" description="Core Configuration">
- <cli-keybindings>
- <key name="1" value="help"/>
- <key name="2" value="status"/>
- <key name="3" value="show channels"/>
- <key name="4" value="show calls"/>
- <key name="5" value="sofia status"/>
- <key name="6" value="reloadxml"/>
- <key name="7" value="console loglevel 0"/>
- <key name="8" value="console loglevel 7"/>
- <key name="9" value="sofia status profile internal"/>
- <key name="10" value="sofia profile internal siptrace on"/>
- <key name="11" value="sofia profile internal siptrace off"/>
- <key name="12" value="version"/>
- </cli-keybindings>
- <default-ptimes>
- <!-- Set this to override the 20ms assumption of various codecs in the sdp with no ptime defined -->
- <!-- <codec name="G729" ptime="40"/> -->
- </default-ptimes>
- <settings>
- <!-- Colorize the Console -->
- <param name="colorize-console" value="true"/>
- <!--Include full timestamps in dialplan logs -->
- <param name="dialplan-timestamps" value="false"/>
- <!-- Run the timer at 20ms by default and drop down as needed unless you set 1m-timer=true which was previous default -->
- <!-- <param name="1ms-timer" value="true"/> -->
- <!--
- Set the Switch Name for HA environments.
- When setting the switch name, it will override the system hostname for all DB and CURL requests
- allowing cluster environments such as RHCS to have identical FreeSWITCH configurations but run
- as different hostnames.
- -->
- <!-- <param name="switchname" value="freeswitch"/> -->
- <!-- <param name="cpu-idle-smoothing-depth" value="30"/> -->
- <!-- Maximum number of simultaneous DB handles open -->
- <param name="max-db-handles" value="50"/>
- <!-- Maximum number of seconds to wait for a new DB handle before failing -->
- <param name="db-handle-timeout" value="10"/>
- <!-- Minimum idle CPU before refusing calls -->
- <!-- <param name="min-idle-cpu" value="25"/> -->
- <!--
- Max number of sessions to allow at any given time.
- NOTICE: If you're driving 28 T1's in a single box you should set this to 644*2 or 1288
- this will ensure you're able to use the entire DS3 without a problem. Otherwise you'll
- be 144 channels short of always filling that DS3 up which can translate into waste.
- -->
- <param name="max-sessions" value="1000"/>
- <!--Most channels to create per second -->
- <param name="sessions-per-second" value="30"/>
- <!-- Default Global Log Level - value is one of debug,info,notice,warning,err,crit,alert -->
- <param name="loglevel" value="debug"/>
- <!-- Set the core DEBUG level (0-10) -->
- <!-- <param name="debug-level" value="10"/> -->
- <!-- SQL Buffer length within rage of 32k to 10m -->
- <!-- <param name="sql-buffer-len" value="1m"/> -->
- <!-- Maximum SQL Buffer length must be greater than sql-buffer-len -->
- <!-- <param name="max-sql-buffer-len" value="2m"/> -->
- <!--
- The min-dtmf-duration specifies the minimum DTMF duration to use on
- outgoing events. Events shorter than this will be increased in duration
- to match min_dtmf_duration. You cannot configure a dtmf duration on a
- profile that is less than this setting. You may increase this value,
- but cannot set it lower than 400. This value cannot exceed
- max-dtmf-duration. -->
- <!-- <param name="min-dtmf-duration" value="400"/> -->
- <!--
- The max-dtmf-duration caps the playout of a DTMF event at the specified
- duration. Events exceeding this duration will be truncated to this
- duration. You cannot configure a duration on a profile that exceeds
- this setting. This setting can be lowered, but cannot exceed 192000.
- This setting cannot be set lower than min_dtmf_duration. -->
- <!-- <param name="max-dtmf-duration" value="192000"/> -->
- <!--
- The default_dtmf_duration specifies the DTMF duration to use on
- originated DTMF events or on events that are received without a
- duration specified. This value can be increased or lowered. This
- value is lower-bounded by min_dtmf_duration and upper-bounded by
- max-dtmf-duration\. -->
- <!-- <param name="default-dtmf-duration" value="2000"/> -->
- <!--
- If you want to send out voicemail notifications via Windows you'll need to change the mailer-app
- variable to the setting below:
- <param name="mailer-app" value="msmtp"/>
- Do not change mailer-app-args.
- You will also need to download a sendmail clone for Windows (msmtp). This version works without issue:
- http://msmtp.sourceforge.net/index.html. Download and copy the .exe to %winddir%\system32.
- You'll need to create a small config file for smtp credentials (host name, authentication, tls, etc.) in
- %USERPROFILE%\Application Data\ called "msmtprc.txt". Below is a sample copy of this file:
- ###################################
- # The SMTP server of the provider.
- account provider
- host smtp.myisp.com
- from john@myisp.com
- auth login
- user johndoe
- password mypassword
- # Set a default account
- account default : provider
- ###################################
- -->
- <param name="mailer-app" value="sendmail"/>
- <param name="mailer-app-args" value="-t"/>
- <param name="dump-cores" value="yes"/>
- <!-- Enable verbose channel events to include every detail about a channel on every event -->
- <!-- <param name="verbose-channel-events" value="no"/> -->
- <!-- Enable clock nanosleep -->
- <!-- <param name="enable-clock-nanosleep" value="true"/> -->
- <!-- Enable monotonic timing -->
- <!-- <param name="enable-monotonic-timing" value="true"/> -->
- <!-- NEEDS DOCUMENTATION -->
- <!-- <param name="enable-softtimer-timerfd" value="true"/> -->
- <!-- <param name="enable-cond-yield" value="true"/> -->
- <!-- <param name="enable-timer-matrix" value="true"/> -->
- <!-- <param name="threaded-system-exec" value="true"/> -->
- <!-- <param name="tipping-point" value="0"/> -->
- <!-- <param name="timer-affinity" value="disabled"/> -->
- <!-- NEEDS DOCUMENTATION -->
- <!-- RTP port range -->
- <!-- <param name="rtp-start-port" value="16384"/> -->
- <!-- <param name="rtp-end-port" value="32768"/> -->
- <!-- Test each port to make sure it is not in use by some other process before allocating it to RTP -->
- <!-- <param name="rtp-port-usage-robustness" value="true"/> -->
- <param name="rtp-enable-zrtp" value="true"/>
- <!-- <param name="core-db-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE' application_name='freeswitch'" /> -->
- <!-- <param name="core-db-dsn" value="dsn:username:password" /> -->
- <!--
- Allow to specify the sqlite db at a different location (In this example, move it to ramdrive for
- better performance on most linux distro (note, you loose the data if you reboot))
- -->
- <!-- <param name="core-db-name" value="/dev/shm/core.db" /> -->
- <!-- The system will create all the db schemas automatically, set this to false to avoid this behaviour -->
- <!-- <param name="auto-create-schemas" value="true"/> -->
- <!-- <param name="auto-clear-sql" value="true"/> -->
- <!-- <param name="enable-early-hangup" value="true"/> -->
- <!-- <param name="core-dbtype" value="MSSQL"/> -->
- <!-- Allow multiple registrations to the same account in the central registration table -->
- <!-- <param name="multiple-registrations" value="true"/> -->
- </settings>
- </configuration>
- <configuration name="syslog.conf" description="Syslog Logger">
- <!-- SYSLOG -->
- <!-- emerg - system is unusable -->
- <!-- alert - action must be taken immediately -->
- <!-- crit - critical conditions -->
- <!-- err - error conditions -->
- <!-- warning - warning conditions -->
- <!-- notice - normal, but significant, condition -->
- <!-- info - informational message -->
- <!-- debug - debug-level message -->
- <settings>
- <param name="facility" value="user"/>
- <param name="ident" value="freeswitch"/>
- <param name="loglevel" value="warning"/>
- <!-- log uuids in syslogs -->
- <param name="uuid" value="true"/>
- </settings>
- </configuration>
- <configuration name="timezones.conf" description="Timezones">
- <timezones>
- <zone name="Africa/Abidjan" value="GMT0" />
- <zone name="Africa/Accra" value="GMT0" />
- <zone name="Africa/Addis_Ababa" value="EAT-3" />
- <zone name="Africa/Algiers" value="CET-1" />
- <zone name="Africa/Asmara" value="EAT-3" />
- <zone name="Africa/Asmera" value="EAT-3" />
- <zone name="Africa/Bamako" value="GMT0" />
- <zone name="Africa/Bangui" value="WAT-1" />
- <zone name="Africa/Banjul" value="GMT0" />
- <zone name="Africa/Bissau" value="GMT0" />
- <zone name="Africa/Blantyre" value="CAT-2" />
- <zone name="Africa/Brazzaville" value="WAT-1" />
- <zone name="Africa/Bujumbura" value="CAT-2" />
- <zone name="Africa/Cairo" value="EEST" />
- <zone name="Africa/Casablanca" value="WET0WEST,M3.5.0,M10.5.0/3" />
- <zone name="Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Africa/Conakry" value="GMT0" />
- <zone name="Africa/Dakar" value="GMT0" />
- <zone name="Africa/Dar_es_Salaam" value="EAT-3" />
- <zone name="Africa/Djibouti" value="EAT-3" />
- <zone name="Africa/Douala" value="WAT-1" />
- <zone name="Africa/El_Aaiun" value="WET0WEST,M3.5.0,M10.5.0/3" />
- <zone name="Africa/Freetown" value="GMT0" />
- <zone name="Africa/Gaborone" value="CAT-2" />
- <zone name="Africa/Harare" value="CAT-2" />
- <zone name="Africa/Johannesburg" value="SAST-2" />
- <zone name="Africa/Juba" value="EAT-3" />
- <zone name="Africa/Kampala" value="EAT-3" />
- <zone name="Africa/Khartoum" value="EAT-3" />
- <zone name="Africa/Kigali" value="CAT-2" />
- <zone name="Africa/Kinshasa" value="WAT-1" />
- <zone name="Africa/Lagos" value="WAT-1" />
- <zone name="Africa/Libreville" value="WAT-1" />
- <zone name="Africa/Lome" value="GMT0" />
- <zone name="Africa/Luanda" value="WAT-1" />
- <zone name="Africa/Lubumbashi" value="CAT-2" />
- <zone name="Africa/Lusaka" value="CAT-2" />
- <zone name="Africa/Malabo" value="WAT-1" />
- <zone name="Africa/Maputo" value="CAT-2" />
- <zone name="Africa/Maseru" value="SAST-2" />
- <zone name="Africa/Mbabane" value="SAST-2" />
- <zone name="Africa/Mogadishu" value="EAT-3" />
- <zone name="Africa/Monrovia" value="GMT0" />
- <zone name="Africa/Nairobi" value="EAT-3" />
- <zone name="Africa/Ndjamena" value="WAT-1" />
- <zone name="Africa/Niamey" value="WAT-1" />
- <zone name="Africa/Nouakchott" value="GMT0" />
- <zone name="Africa/Ouagadougou" value="GMT0" />
- <zone name="Africa/Porto-Novo" value="WAT-1" />
- <zone name="Africa/Sao_Tome" value="GMT0" />
- <zone name="Africa/Timbuktu" value="GMT0" />
- <zone name="Africa/Tripoli" value="EET-2" />
- <zone name="Africa/Tunis" value="CET-1" />
- <zone name="Africa/Windhoek" value="WAT-1WAST,M9.1.0,M4.1.0" />
- <zone name="America/Adak" value="HAST10HADT,M3.2.0,M11.1.0" />
- <zone name="America/Anchorage" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="America/Anguilla" value="AST4" />
- <zone name="America/Antigua" value="AST4" />
- <zone name="America/Araguaina" value="BRT3" />
- <zone name="America/Argentina/Buenos_Aires" value="ART3" />
- <zone name="America/Argentina/Catamarca" value="ART3" />
- <zone name="America/Argentina/ComodRivadavia" value="ART3" />
- <zone name="America/Argentina/Cordoba" value="ART3" />
- <zone name="America/Argentina/Jujuy" value="ART3" />
- <zone name="America/Argentina/La_Rioja" value="ART3" />
- <zone name="America/Argentina/Mendoza" value="ART3" />
- <zone name="America/Argentina/Rio_Gallegos" value="ART3" />
- <zone name="America/Argentina/Salta" value="ART3" />
- <zone name="America/Argentina/San_Juan" value="ART3" />
- <zone name="America/Argentina/San_Luis" value="ART3" />
- <zone name="America/Argentina/Tucuman" value="ART3" />
- <zone name="America/Argentina/Ushuaia" value="ART3" />
- <zone name="America/Aruba" value="AST4" />
- <zone name="America/Asuncion" value="PYT4PYST,M10.1.0/0,M3.4.0/0" />
- <zone name="America/Atikokan" value="EST5" />
- <zone name="America/Atka" value="HAST10HADT,M3.2.0,M11.1.0" />
- <zone name="America/Bahia" value="BRT3" />
- <zone name="America/Bahia_Banderas" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="America/Barbados" value="AST4" />
- <zone name="America/Belem" value="BRT3" />
- <zone name="America/Belize" value="CST6" />
- <zone name="America/Blanc-Sablon" value="AST4" />
- <zone name="America/Boa_Vista" value="AMT4" />
- <zone name="America/Bogota" value="COT5" />
- <zone name="America/Boise" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="America/Buenos_Aires" value="ART3" />
- <zone name="America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="America/Campo_Grande" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
- <zone name="America/Cancun" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="America/Caracas" value="VET4:30" />
- <zone name="America/Catamarca" value="ART3" />
- <zone name="America/Cayenne" value="GFT3" />
- <zone name="America/Cayman" value="EST5" />
- <zone name="America/Chicago" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Chihuahua" value="MST7MDT,M4.1.0,M10.5.0" />
- <zone name="America/Coral_Harbour" value="EST5" />
- <zone name="America/Cordoba" value="ART3" />
- <zone name="America/Costa_Rica" value="CST6" />
- <zone name="America/Creston" value="MST7" />
- <zone name="America/Cuiaba" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
- <zone name="America/Curacao" value="AST4" />
- <zone name="America/Danmarkshavn" value="GMT0" />
- <zone name="America/Dawson" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="America/Dawson_Creek" value="MST7" />
- <zone name="America/Denver" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="America/Detroit" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Dominica" value="AST4" />
- <zone name="America/Edmonton" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="America/Eirunepe" value="ACT5" />
- <zone name="America/El_Salvador" value="CST6" />
- <zone name="America/Ensenada" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Fortaleza" value="BRT3" />
- <zone name="America/Glace_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="America/Godthab" value="WGST" />
- <zone name="America/Goose_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="America/Grand_Turk" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Grenada" value="AST4" />
- <zone name="America/Guadeloupe" value="AST4" />
- <zone name="America/Guatemala" value="CST6" />
- <zone name="America/Guayaquil" value="ECT5" />
- <zone name="America/Guyana" value="GYT4" />
- <zone name="America/Halifax" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="America/Havana" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
- <zone name="America/Hermosillo" value="MST7" />
- <zone name="America/Indiana/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Indiana/Knox" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Indiana/Marengo" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Indiana/Petersburg" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Indiana/Tell_City" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Indiana/Vevay" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Indiana/Vincennes" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Indiana/Winamac" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Inuvik" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="America/Iqaluit" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Jamaica" value="EST5" />
- <zone name="America/Jujuy" value="ART3" />
- <zone name="America/Juneau" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="America/Kentucky/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Kentucky/Monticello" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Knox_IN" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Kralendijk" value="AST4" />
- <zone name="America/La_Paz" value="BOT4" />
- <zone name="America/Lima" value="PET5" />
- <zone name="America/Los_Angeles" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="America/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Lower_Princes" value="AST4" />
- <zone name="America/Maceio" value="BRT3" />
- <zone name="America/Managua" value="CST6" />
- <zone name="America/Manaus" value="AMT4" />
- <zone name="America/Marigot" value="AST4" />
- <zone name="America/Martinique" value="AST4" />
- <zone name="America/Matamoros" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Mazatlan" value="MST7MDT,M4.1.0,M10.5.0" />
- <zone name="America/Mendoza" value="ART3" />
- <zone name="America/Menominee" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Merida" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="America/Metlakatla" value="MeST8" />
- <zone name="America/Mexico_City" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="America/Miquelon" value="PMST3PMDT,M3.2.0,M11.1.0" />
- <zone name="America/Moncton" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="America/Monterrey" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="America/Montevideo" value="UYT3UYST,M10.1.0,M3.2.0" />
- <zone name="America/Montreal" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Montserrat" value="AST4" />
- <zone name="America/Nassau" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/New_York" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Nipigon" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Nome" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="America/Noronha" value="FNT2" />
- <zone name="America/North_Dakota/Beulah" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/North_Dakota/Center" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/North_Dakota/New_Salem" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Ojinaga" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="America/Panama" value="EST5" />
- <zone name="America/Pangnirtung" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Paramaribo" value="SRT3" />
- <zone name="America/Phoenix" value="MST7" />
- <zone name="America/Port-au-Prince" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Port_of_Spain" value="AST4" />
- <zone name="America/Porto_Acre" value="ACT5" />
- <zone name="America/Porto_Velho" value="AMT4" />
- <zone name="America/Puerto_Rico" value="AST4" />
- <zone name="America/Rainy_River" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Rankin_Inlet" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Recife" value="BRT3" />
- <zone name="America/Regina" value="CST6" />
- <zone name="America/Resolute" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Rio_Branco" value="ACT5" />
- <zone name="America/Rosario" value="ART3" />
- <zone name="America/Santa_Isabel" value="PST8PDT,M4.1.0,M10.5.0" />
- <zone name="America/Santarem" value="BRT3" />
- <zone name="America/Santiago" value="CLST" />
- <zone name="America/Santo_Domingo" value="AST4" />
- <zone name="America/Sao_Paulo" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
- <zone name="America/Scoresbysund" value="EGT1EGST,M3.5.0/0,M10.5.0/1" />
- <zone name="America/Shiprock" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="America/Sitka" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="America/St_Barthelemy" value="AST4" />
- <zone name="America/St_Johns" value="NST3:30NDT,M3.2.0,M11.1.0" />
- <zone name="America/St_Kitts" value="AST4" />
- <zone name="America/St_Lucia" value="AST4" />
- <zone name="America/St_Thomas" value="AST4" />
- <zone name="America/St_Vincent" value="AST4" />
- <zone name="America/Swift_Current" value="CST6" />
- <zone name="America/Tegucigalpa" value="CST6" />
- <zone name="America/Thule" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="America/Thunder_Bay" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Tijuana" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="America/Toronto" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="America/Tortola" value="AST4" />
- <zone name="America/Vancouver" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="America/Virgin" value="AST4" />
- <zone name="America/Whitehorse" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="America/Winnipeg" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="America/Yakutat" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="America/Yellowknife" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="Antarctica/Casey" value="WST-8" />
- <zone name="Antarctica/Davis" value="DAVT-7" />
- <zone name="Antarctica/DumontDUrville" value="DDUT-10" />
- <zone name="Antarctica/Macquarie" value="MIST-11" />
- <zone name="Antarctica/Mawson" value="MAWT-5" />
- <zone name="Antarctica/McMurdo" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="Antarctica/Palmer" value="CLST" />
- <zone name="Antarctica/Rothera" value="ROTT3" />
- <zone name="Antarctica/South_Pole" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="Antarctica/Syowa" value="SYOT-3" />
- <zone name="Antarctica/Troll" value="UTC0CEST-2,M3.5.0/1,M10.5.0/3" />
- <zone name="Antarctica/Vostok" value="VOST-6" />
- <zone name="Arctic/Longyearbyen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Asia/Aden" value="AST-3" />
- <zone name="Asia/Almaty" value="ALMT-6" />
- <zone name="Asia/Amman" value="EEST" />
- <zone name="Asia/Anadyr" value="ANAT-12" />
- <zone name="Asia/Aqtau" value="AQTT-5" />
- <zone name="Asia/Aqtobe" value="AQTT-5" />
- <zone name="Asia/Ashgabat" value="TMT-5" />
- <zone name="Asia/Ashkhabad" value="TMT-5" />
- <zone name="Asia/Baghdad" value="AST-3" />
- <zone name="Asia/Bahrain" value="AST-3" />
- <zone name="Asia/Baku" value="AZT-4AZST,M3.5.0/4,M10.5.0/5" />
- <zone name="Asia/Bangkok" value="ICT-7" />
- <zone name="Asia/Beirut" value="EET-2EEST,M3.5.0/0,M10.5.0/0" />
- <zone name="Asia/Bishkek" value="KGT-6" />
- <zone name="Asia/Brunei" value="BNT-8" />
- <zone name="Asia/Calcutta" value="IST-5:30" />
- <zone name="Asia/Choibalsan" value="CHOT-8" />
- <zone name="Asia/Chongqing" value="CST-8" />
- <zone name="Asia/Chungking" value="CST-8" />
- <zone name="Asia/Colombo" value="IST-5:30" />
- <zone name="Asia/Dacca" value="BDT-6" />
- <zone name="Asia/Damascus" value="EET-2EEST,M3.5.5/0,M10.5.5/0" />
- <zone name="Asia/Dhaka" value="BDT-6" />
- <zone name="Asia/Dili" value="TLT-9" />
- <zone name="Asia/Dubai" value="GST-4" />
- <zone name="Asia/Dushanbe" value="TJT-5" />
- <zone name="Asia/Gaza" value="EEST" />
- <zone name="Asia/Harbin" value="CST-8" />
- <zone name="Asia/Hebron" value="EEST" />
- <zone name="Asia/Ho_Chi_Minh" value="ICT-7" />
- <zone name="Asia/Hong_Kong" value="HKT-8" />
- <zone name="Asia/Hovd" value="HOVT-7" />
- <zone name="Asia/Irkutsk" value="IRKT-9" />
- <zone name="Asia/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Asia/Jakarta" value="WIB-7" />
- <zone name="Asia/Jayapura" value="WIT-9" />
- <zone name="Asia/Jerusalem" value="IDDT" />
- <zone name="Asia/Kabul" value="AFT-4:30" />
- <zone name="Asia/Kamchatka" value="PETT-12" />
- <zone name="Asia/Karachi" value="PKT-5" />
- <zone name="Asia/Kashgar" value="CST-8" />
- <zone name="Asia/Kathmandu" value="NPT-5:45" />
- <zone name="Asia/Katmandu" value="NPT-5:45" />
- <zone name="Asia/Khandyga" value="YAKT-10" />
- <zone name="Asia/Kolkata" value="IST-5:30" />
- <zone name="Asia/Krasnoyarsk" value="KRAT-8" />
- <zone name="Asia/Kuala_Lumpur" value="MYT-8" />
- <zone name="Asia/Kuching" value="MYT-8" />
- <zone name="Asia/Kuwait" value="AST-3" />
- <zone name="Asia/Macao" value="CST-8" />
- <zone name="Asia/Macau" value="CST-8" />
- <zone name="Asia/Magadan" value="MAGT-12" />
- <zone name="Asia/Makassar" value="WITA-8" />
- <zone name="Asia/Manila" value="PHT-8" />
- <zone name="Asia/Muscat" value="GST-4" />
- <zone name="Asia/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Asia/Novokuznetsk" value="NOVT-7" />
- <zone name="Asia/Novosibirsk" value="NOVT-7" />
- <zone name="Asia/Omsk" value="OMST-7" />
- <zone name="Asia/Oral" value="ORAT-5" />
- <zone name="Asia/Phnom_Penh" value="ICT-7" />
- <zone name="Asia/Pontianak" value="WIB-7" />
- <zone name="Asia/Pyongyang" value="KST-9" />
- <zone name="Asia/Qatar" value="AST-3" />
- <zone name="Asia/Qyzylorda" value="QYZT-6" />
- <zone name="Asia/Rangoon" value="MMT-6:30" />
- <zone name="Asia/Riyadh" value="AST-3" />
- <zone name="Asia/Saigon" value="ICT-7" />
- <zone name="Asia/Sakhalin" value="SAKT-11" />
- <zone name="Asia/Samarkand" value="UZT-5" />
- <zone name="Asia/Seoul" value="KST-9" />
- <zone name="Asia/Shanghai" value="CST-8" />
- <zone name="Asia/Singapore" value="SGT-8" />
- <zone name="Asia/Taipei" value="CST-8" />
- <zone name="Asia/Tashkent" value="UZT-5" />
- <zone name="Asia/Tbilisi" value="GET-4" />
- <zone name="Asia/Tehran" value="IRDT" />
- <zone name="Asia/Tel_Aviv" value="IDDT" />
- <zone name="Asia/Thimbu" value="BTT-6" />
- <zone name="Asia/Thimphu" value="BTT-6" />
- <zone name="Asia/Tokyo" value="JST-9" />
- <zone name="Asia/Ujung_Pandang" value="WITA-8" />
- <zone name="Asia/Ulaanbaatar" value="ULAT-8" />
- <zone name="Asia/Ulan_Bator" value="ULAT-8" />
- <zone name="Asia/Urumqi" value="CST-8" />
- <zone name="Asia/Ust-Nera" value="VLAT-11" />
- <zone name="Asia/Vientiane" value="ICT-7" />
- <zone name="Asia/Vladivostok" value="VLAT-11" />
- <zone name="Asia/Yakutsk" value="YAKT-10" />
- <zone name="Asia/Yekaterinburg" value="YEKT-6" />
- <zone name="Asia/Yerevan" value="AMT-4" />
- <zone name="Atlantic/Azores" value="AZOT1AZOST,M3.5.0/0,M10.5.0/1" />
- <zone name="Atlantic/Bermuda" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="Atlantic/Canary" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="Atlantic/Cape_Verde" value="CVT1" />
- <zone name="Atlantic/Faeroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="Atlantic/Faroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="Atlantic/Jan_Mayen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Atlantic/Madeira" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="Atlantic/Reykjavik" value="GMT0" />
- <zone name="Atlantic/South_Georgia" value="GST2" />
- <zone name="Atlantic/St_Helena" value="GMT0" />
- <zone name="Atlantic/Stanley" value="FKST3" />
- <zone name="Australia/ACT" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/Adelaide" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/Brisbane" value="EST-10" />
- <zone name="Australia/Broken_Hill" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/Canberra" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/Currie" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/Darwin" value="CST-9:30" />
- <zone name="Australia/Eucla" value="CWST-8:45" />
- <zone name="Australia/Hobart" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/LHI" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
- <zone name="Australia/Lindeman" value="EST-10" />
- <zone name="Australia/Lord_Howe" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
- <zone name="Australia/Melbourne" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/NSW" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/North" value="CST-9:30" />
- <zone name="Australia/Perth" value="WST-8" />
- <zone name="Australia/Queensland" value="EST-10" />
- <zone name="Australia/South" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/Sydney" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/Tasmania" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/Victoria" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="Australia/West" value="WST-8" />
- <zone name="Australia/Yancowinna" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="Brazil/Acre" value="ACT5" />
- <zone name="Brazil/DeNoronha" value="FNT2" />
- <zone name="Brazil/East" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
- <zone name="Brazil/West" value="AMT4" />
- <zone name="CET" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="Canada/Atlantic" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="Canada/Central" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="Canada/East-Saskatchewan" value="CST6" />
- <zone name="Canada/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="Canada/Newfoundland" value="NST3:30NDT,M3.2.0,M11.1.0" />
- <zone name="Canada/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="Canada/Saskatchewan" value="CST6" />
- <zone name="Canada/Yukon" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="Chile/Continental" value="CLST" />
- <zone name="Chile/EasterIsland" value="EASST" />
- <zone name="Cuba" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
- <zone name="EET" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="EST" value="EST5" />
- <zone name="EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="Egypt" value="EEST" />
- <zone name="Eire" value="GMT0IST,M3.5.0/1,M10.5.0" />
- <zone name="Etc/GMT" value="GMT0" />
- <zone name="Etc/GMT+0" value="GMT0" />
- <zone name="Etc/GMT+1" value="<GMT+1>1" />
- <zone name="Etc/GMT+10" value="<GMT+10>10" />
- <zone name="Etc/GMT+11" value="<GMT+11>11" />
- <zone name="Etc/GMT+12" value="<GMT+12>12" />
- <zone name="Etc/GMT+2" value="<GMT+2>2" />
- <zone name="Etc/GMT+3" value="<GMT+3>3" />
- <zone name="Etc/GMT+4" value="<GMT+4>4" />
- <zone name="Etc/GMT+5" value="<GMT+5>5" />
- <zone name="Etc/GMT+6" value="<GMT+6>6" />
- <zone name="Etc/GMT+7" value="<GMT+7>7" />
- <zone name="Etc/GMT+8" value="<GMT+8>8" />
- <zone name="Etc/GMT+9" value="<GMT+9>9" />
- <zone name="Etc/GMT-0" value="GMT0" />
- <zone name="Etc/GMT-1" value="<GMT-1>-1" />
- <zone name="Etc/GMT-10" value="<GMT-10>-10" />
- <zone name="Etc/GMT-11" value="<GMT-11>-11" />
- <zone name="Etc/GMT-12" value="<GMT-12>-12" />
- <zone name="Etc/GMT-13" value="<GMT-13>-13" />
- <zone name="Etc/GMT-14" value="<GMT-14>-14" />
- <zone name="Etc/GMT-2" value="<GMT-2>-2" />
- <zone name="Etc/GMT-3" value="<GMT-3>-3" />
- <zone name="Etc/GMT-4" value="<GMT-4>-4" />
- <zone name="Etc/GMT-5" value="<GMT-5>-5" />
- <zone name="Etc/GMT-6" value="<GMT-6>-6" />
- <zone name="Etc/GMT-7" value="<GMT-7>-7" />
- <zone name="Etc/GMT-8" value="<GMT-8>-8" />
- <zone name="Etc/GMT-9" value="<GMT-9>-9" />
- <zone name="Etc/GMT0" value="GMT0" />
- <zone name="Etc/Greenwich" value="GMT0" />
- <zone name="Etc/UCT" value="UCT0" />
- <zone name="Etc/UTC" value="UTC0" />
- <zone name="Etc/Universal" value="UTC0" />
- <zone name="Etc/Zulu" value="UTC0" />
- <zone name="Europe/Amsterdam" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Andorra" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Athens" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Belfast" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="Europe/Belgrade" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Berlin" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Bratislava" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Brussels" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Bucharest" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Budapest" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Busingen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Chisinau" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Copenhagen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Dublin" value="GMT0IST,M3.5.0/1,M10.5.0" />
- <zone name="Europe/Gibraltar" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Guernsey" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="Europe/Helsinki" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Isle_of_Man" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="Europe/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Jersey" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="Europe/Kaliningrad" value="FET-3" />
- <zone name="Europe/Kiev" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Lisbon" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="Europe/Ljubljana" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/London" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="Europe/Luxembourg" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Madrid" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Malta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Mariehamn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Minsk" value="FET-3" />
- <zone name="Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Moscow" value="MSK-4" />
- <zone name="Europe/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Oslo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Paris" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Podgorica" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Prague" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Riga" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Rome" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Samara" value="SAMT-4" />
- <zone name="Europe/San_Marino" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Sarajevo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Simferopol" value="MSK-4" />
- <zone name="Europe/Skopje" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Sofia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Stockholm" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Tallinn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Tirane" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Tiraspol" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Uzhgorod" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Vaduz" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Vatican" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Vienna" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Vilnius" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Volgograd" value="VOLT-4" />
- <zone name="Europe/Warsaw" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Zagreb" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Europe/Zaporozhye" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="Europe/Zurich" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Factory" value="<Local time zone must be set--see zic manual page>0" />
- <zone name="GB" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="GB-Eire" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="GMT" value="GMT0" />
- <zone name="GMT+0" value="GMT0" />
- <zone name="GMT-0" value="GMT0" />
- <zone name="GMT0" value="GMT0" />
- <zone name="Greenwich" value="GMT0" />
- <zone name="HST" value="HST10" />
- <zone name="Hongkong" value="HKT-8" />
- <zone name="Iceland" value="GMT0" />
- <zone name="Indian/Antananarivo" value="EAT-3" />
- <zone name="Indian/Chagos" value="IOT-6" />
- <zone name="Indian/Christmas" value="CXT-7" />
- <zone name="Indian/Cocos" value="CCT-6:30" />
- <zone name="Indian/Comoro" value="EAT-3" />
- <zone name="Indian/Kerguelen" value="TFT-5" />
- <zone name="Indian/Mahe" value="SCT-4" />
- <zone name="Indian/Maldives" value="MVT-5" />
- <zone name="Indian/Mauritius" value="MUT-4" />
- <zone name="Indian/Mayotte" value="EAT-3" />
- <zone name="Indian/Reunion" value="RET-4" />
- <zone name="Iran" value="IRDT" />
- <zone name="Israel" value="IDDT" />
- <zone name="Jamaica" value="EST5" />
- <zone name="Japan" value="JST-9" />
- <zone name="Kwajalein" value="MHT-12" />
- <zone name="Libya" value="EET-2" />
- <zone name="MET" value="MET-1MEST,M3.5.0,M10.5.0/3" />
- <zone name="MST" value="MST7" />
- <zone name="MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="Mexico/BajaNorte" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="Mexico/BajaSur" value="MST7MDT,M4.1.0,M10.5.0" />
- <zone name="Mexico/General" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="NZ" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="NZ-CHAT" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
- <zone name="Navajo" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="PRC" value="CST-8" />
- <zone name="PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="Pacific/Apia" value="WST-13WSDT,M9.5.0/3,M4.1.0/4" />
- <zone name="Pacific/Auckland" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="Pacific/Chatham" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
- <zone name="Pacific/Chuuk" value="CHUT-10" />
- <zone name="Pacific/Easter" value="EASST" />
- <zone name="Pacific/Efate" value="VUT-11" />
- <zone name="Pacific/Enderbury" value="PHOT-13" />
- <zone name="Pacific/Fakaofo" value="TKT-13" />
- <zone name="Pacific/Fiji" value="FJST" />
- <zone name="Pacific/Funafuti" value="TVT-12" />
- <zone name="Pacific/Galapagos" value="GALT6" />
- <zone name="Pacific/Gambier" value="GAMT9" />
- <zone name="Pacific/Guadalcanal" value="SBT-11" />
- <zone name="Pacific/Guam" value="ChST-10" />
- <zone name="Pacific/Honolulu" value="HST10" />
- <zone name="Pacific/Johnston" value="HST10" />
- <zone name="Pacific/Kiritimati" value="LINT-14" />
- <zone name="Pacific/Kosrae" value="KOST-11" />
- <zone name="Pacific/Kwajalein" value="MHT-12" />
- <zone name="Pacific/Majuro" value="MHT-12" />
- <zone name="Pacific/Marquesas" value="MART9:30" />
- <zone name="Pacific/Midway" value="SST11" />
- <zone name="Pacific/Nauru" value="NRT-12" />
- <zone name="Pacific/Niue" value="NUT11" />
- <zone name="Pacific/Norfolk" value="NFT-11:30" />
- <zone name="Pacific/Noumea" value="NCT-11" />
- <zone name="Pacific/Pago_Pago" value="SST11" />
- <zone name="Pacific/Palau" value="PWT-9" />
- <zone name="Pacific/Pitcairn" value="PST8" />
- <zone name="Pacific/Pohnpei" value="PONT-11" />
- <zone name="Pacific/Ponape" value="PONT-11" />
- <zone name="Pacific/Port_Moresby" value="PGT-10" />
- <zone name="Pacific/Rarotonga" value="CKT10" />
- <zone name="Pacific/Saipan" value="ChST-10" />
- <zone name="Pacific/Samoa" value="SST11" />
- <zone name="Pacific/Tahiti" value="TAHT10" />
- <zone name="Pacific/Tarawa" value="GILT-12" />
- <zone name="Pacific/Tongatapu" value="TOT-13" />
- <zone name="Pacific/Truk" value="CHUT-10" />
- <zone name="Pacific/Wake" value="WAKT-12" />
- <zone name="Pacific/Wallis" value="WFT-12" />
- <zone name="Pacific/Yap" value="CHUT-10" />
- <zone name="Poland" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="Portugal" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="ROC" value="CST-8" />
- <zone name="ROK" value="KST-9" />
- <zone name="Singapore" value="SGT-8" />
- <zone name="SystemV/AST4" value="AST4" />
- <zone name="SystemV/AST4ADT" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="SystemV/CST6" value="CST6" />
- <zone name="SystemV/CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="SystemV/EST5" value="EST5" />
- <zone name="SystemV/EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="SystemV/HST10" value="HST10" />
- <zone name="SystemV/MST7" value="MST7" />
- <zone name="SystemV/MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="SystemV/PST8" value="PST8" />
- <zone name="SystemV/PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="SystemV/YST9" value="GAMT9" />
- <zone name="SystemV/YST9YDT" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="Turkey" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="UCT" value="UCT0" />
- <zone name="US/Alaska" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="US/Aleutian" value="HAST10HADT,M3.2.0,M11.1.0" />
- <zone name="US/Arizona" value="MST7" />
- <zone name="US/Central" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="US/East-Indiana" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="US/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="US/Hawaii" value="HST10" />
- <zone name="US/Indiana-Starke" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="US/Michigan" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="US/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="US/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="US/Pacific-New" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="US/Samoa" value="SST11" />
- <zone name="UTC" value="UTC0" />
- <zone name="Universal" value="UTC0" />
- <zone name="W-SU" value="MSK-4" />
- <zone name="WET" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="Zulu" value="UTC0" />
- <zone name="localtime" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/Africa/Abidjan" value="GMT0" />
- <zone name="posix/Africa/Accra" value="GMT0" />
- <zone name="posix/Africa/Addis_Ababa" value="EAT-3" />
- <zone name="posix/Africa/Algiers" value="CET-1" />
- <zone name="posix/Africa/Asmara" value="EAT-3" />
- <zone name="posix/Africa/Asmera" value="EAT-3" />
- <zone name="posix/Africa/Bamako" value="GMT0" />
- <zone name="posix/Africa/Bangui" value="WAT-1" />
- <zone name="posix/Africa/Banjul" value="GMT0" />
- <zone name="posix/Africa/Bissau" value="GMT0" />
- <zone name="posix/Africa/Blantyre" value="CAT-2" />
- <zone name="posix/Africa/Brazzaville" value="WAT-1" />
- <zone name="posix/Africa/Bujumbura" value="CAT-2" />
- <zone name="posix/Africa/Cairo" value="EEST" />
- <zone name="posix/Africa/Casablanca" value="WET0WEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Africa/Conakry" value="GMT0" />
- <zone name="posix/Africa/Dakar" value="GMT0" />
- <zone name="posix/Africa/Dar_es_Salaam" value="EAT-3" />
- <zone name="posix/Africa/Djibouti" value="EAT-3" />
- <zone name="posix/Africa/Douala" value="WAT-1" />
- <zone name="posix/Africa/El_Aaiun" value="WET0WEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Africa/Freetown" value="GMT0" />
- <zone name="posix/Africa/Gaborone" value="CAT-2" />
- <zone name="posix/Africa/Harare" value="CAT-2" />
- <zone name="posix/Africa/Johannesburg" value="SAST-2" />
- <zone name="posix/Africa/Juba" value="EAT-3" />
- <zone name="posix/Africa/Kampala" value="EAT-3" />
- <zone name="posix/Africa/Khartoum" value="EAT-3" />
- <zone name="posix/Africa/Kigali" value="CAT-2" />
- <zone name="posix/Africa/Kinshasa" value="WAT-1" />
- <zone name="posix/Africa/Lagos" value="WAT-1" />
- <zone name="posix/Africa/Libreville" value="WAT-1" />
- <zone name="posix/Africa/Lome" value="GMT0" />
- <zone name="posix/Africa/Luanda" value="WAT-1" />
- <zone name="posix/Africa/Lubumbashi" value="CAT-2" />
- <zone name="posix/Africa/Lusaka" value="CAT-2" />
- <zone name="posix/Africa/Malabo" value="WAT-1" />
- <zone name="posix/Africa/Maputo" value="CAT-2" />
- <zone name="posix/Africa/Maseru" value="SAST-2" />
- <zone name="posix/Africa/Mbabane" value="SAST-2" />
- <zone name="posix/Africa/Mogadishu" value="EAT-3" />
- <zone name="posix/Africa/Monrovia" value="GMT0" />
- <zone name="posix/Africa/Nairobi" value="EAT-3" />
- <zone name="posix/Africa/Ndjamena" value="WAT-1" />
- <zone name="posix/Africa/Niamey" value="WAT-1" />
- <zone name="posix/Africa/Nouakchott" value="GMT0" />
- <zone name="posix/Africa/Ouagadougou" value="GMT0" />
- <zone name="posix/Africa/Porto-Novo" value="WAT-1" />
- <zone name="posix/Africa/Sao_Tome" value="GMT0" />
- <zone name="posix/Africa/Timbuktu" value="GMT0" />
- <zone name="posix/Africa/Tripoli" value="EET-2" />
- <zone name="posix/Africa/Tunis" value="CET-1" />
- <zone name="posix/Africa/Windhoek" value="WAT-1WAST,M9.1.0,M4.1.0" />
- <zone name="posix/America/Adak" value="HAST10HADT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Anchorage" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Anguilla" value="AST4" />
- <zone name="posix/America/Antigua" value="AST4" />
- <zone name="posix/America/Araguaina" value="BRT3" />
- <zone name="posix/America/Argentina/Buenos_Aires" value="ART3" />
- <zone name="posix/America/Argentina/Catamarca" value="ART3" />
- <zone name="posix/America/Argentina/ComodRivadavia" value="ART3" />
- <zone name="posix/America/Argentina/Cordoba" value="ART3" />
- <zone name="posix/America/Argentina/Jujuy" value="ART3" />
- <zone name="posix/America/Argentina/La_Rioja" value="ART3" />
- <zone name="posix/America/Argentina/Mendoza" value="ART3" />
- <zone name="posix/America/Argentina/Rio_Gallegos" value="ART3" />
- <zone name="posix/America/Argentina/Salta" value="ART3" />
- <zone name="posix/America/Argentina/San_Juan" value="ART3" />
- <zone name="posix/America/Argentina/San_Luis" value="ART3" />
- <zone name="posix/America/Argentina/Tucuman" value="ART3" />
- <zone name="posix/America/Argentina/Ushuaia" value="ART3" />
- <zone name="posix/America/Aruba" value="AST4" />
- <zone name="posix/America/Asuncion" value="PYT4PYST,M10.1.0/0,M3.4.0/0" />
- <zone name="posix/America/Atikokan" value="EST5" />
- <zone name="posix/America/Atka" value="HAST10HADT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Bahia" value="BRT3" />
- <zone name="posix/America/Bahia_Banderas" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="posix/America/Barbados" value="AST4" />
- <zone name="posix/America/Belem" value="BRT3" />
- <zone name="posix/America/Belize" value="CST6" />
- <zone name="posix/America/Blanc-Sablon" value="AST4" />
- <zone name="posix/America/Boa_Vista" value="AMT4" />
- <zone name="posix/America/Bogota" value="COT5" />
- <zone name="posix/America/Boise" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Buenos_Aires" value="ART3" />
- <zone name="posix/America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Campo_Grande" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
- <zone name="posix/America/Cancun" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="posix/America/Caracas" value="VET4:30" />
- <zone name="posix/America/Catamarca" value="ART3" />
- <zone name="posix/America/Cayenne" value="GFT3" />
- <zone name="posix/America/Cayman" value="EST5" />
- <zone name="posix/America/Chicago" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Chihuahua" value="MST7MDT,M4.1.0,M10.5.0" />
- <zone name="posix/America/Coral_Harbour" value="EST5" />
- <zone name="posix/America/Cordoba" value="ART3" />
- <zone name="posix/America/Costa_Rica" value="CST6" />
- <zone name="posix/America/Creston" value="MST7" />
- <zone name="posix/America/Cuiaba" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
- <zone name="posix/America/Curacao" value="AST4" />
- <zone name="posix/America/Danmarkshavn" value="GMT0" />
- <zone name="posix/America/Dawson" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Dawson_Creek" value="MST7" />
- <zone name="posix/America/Denver" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Detroit" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Dominica" value="AST4" />
- <zone name="posix/America/Edmonton" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Eirunepe" value="ACT5" />
- <zone name="posix/America/El_Salvador" value="CST6" />
- <zone name="posix/America/Ensenada" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Fortaleza" value="BRT3" />
- <zone name="posix/America/Glace_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Godthab" value="WGST" />
- <zone name="posix/America/Goose_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Grand_Turk" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Grenada" value="AST4" />
- <zone name="posix/America/Guadeloupe" value="AST4" />
- <zone name="posix/America/Guatemala" value="CST6" />
- <zone name="posix/America/Guayaquil" value="ECT5" />
- <zone name="posix/America/Guyana" value="GYT4" />
- <zone name="posix/America/Halifax" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Havana" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
- <zone name="posix/America/Hermosillo" value="MST7" />
- <zone name="posix/America/Indiana/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Indiana/Knox" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Indiana/Marengo" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Indiana/Petersburg" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Indiana/Tell_City" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Indiana/Vevay" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Indiana/Vincennes" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Indiana/Winamac" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Inuvik" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Iqaluit" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Jamaica" value="EST5" />
- <zone name="posix/America/Jujuy" value="ART3" />
- <zone name="posix/America/Juneau" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Kentucky/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Kentucky/Monticello" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Knox_IN" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Kralendijk" value="AST4" />
- <zone name="posix/America/La_Paz" value="BOT4" />
- <zone name="posix/America/Lima" value="PET5" />
- <zone name="posix/America/Los_Angeles" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Lower_Princes" value="AST4" />
- <zone name="posix/America/Maceio" value="BRT3" />
- <zone name="posix/America/Managua" value="CST6" />
- <zone name="posix/America/Manaus" value="AMT4" />
- <zone name="posix/America/Marigot" value="AST4" />
- <zone name="posix/America/Martinique" value="AST4" />
- <zone name="posix/America/Matamoros" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Mazatlan" value="MST7MDT,M4.1.0,M10.5.0" />
- <zone name="posix/America/Mendoza" value="ART3" />
- <zone name="posix/America/Menominee" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Merida" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="posix/America/Metlakatla" value="MeST8" />
- <zone name="posix/America/Mexico_City" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="posix/America/Miquelon" value="PMST3PMDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Moncton" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Monterrey" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="posix/America/Montevideo" value="UYT3UYST,M10.1.0,M3.2.0" />
- <zone name="posix/America/Montreal" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Montserrat" value="AST4" />
- <zone name="posix/America/Nassau" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/New_York" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Nipigon" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Nome" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Noronha" value="FNT2" />
- <zone name="posix/America/North_Dakota/Beulah" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/North_Dakota/Center" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/North_Dakota/New_Salem" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Ojinaga" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Panama" value="EST5" />
- <zone name="posix/America/Pangnirtung" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Paramaribo" value="SRT3" />
- <zone name="posix/America/Phoenix" value="MST7" />
- <zone name="posix/America/Port-au-Prince" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Port_of_Spain" value="AST4" />
- <zone name="posix/America/Porto_Acre" value="ACT5" />
- <zone name="posix/America/Porto_Velho" value="AMT4" />
- <zone name="posix/America/Puerto_Rico" value="AST4" />
- <zone name="posix/America/Rainy_River" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Rankin_Inlet" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Recife" value="BRT3" />
- <zone name="posix/America/Regina" value="CST6" />
- <zone name="posix/America/Resolute" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Rio_Branco" value="ACT5" />
- <zone name="posix/America/Rosario" value="ART3" />
- <zone name="posix/America/Santa_Isabel" value="PST8PDT,M4.1.0,M10.5.0" />
- <zone name="posix/America/Santarem" value="BRT3" />
- <zone name="posix/America/Santiago" value="CLST" />
- <zone name="posix/America/Santo_Domingo" value="AST4" />
- <zone name="posix/America/Sao_Paulo" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
- <zone name="posix/America/Scoresbysund" value="EGT1EGST,M3.5.0/0,M10.5.0/1" />
- <zone name="posix/America/Shiprock" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Sitka" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/St_Barthelemy" value="AST4" />
- <zone name="posix/America/St_Johns" value="NST3:30NDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/St_Kitts" value="AST4" />
- <zone name="posix/America/St_Lucia" value="AST4" />
- <zone name="posix/America/St_Thomas" value="AST4" />
- <zone name="posix/America/St_Vincent" value="AST4" />
- <zone name="posix/America/Swift_Current" value="CST6" />
- <zone name="posix/America/Tegucigalpa" value="CST6" />
- <zone name="posix/America/Thule" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Thunder_Bay" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Tijuana" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Toronto" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Tortola" value="AST4" />
- <zone name="posix/America/Vancouver" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Virgin" value="AST4" />
- <zone name="posix/America/Whitehorse" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Winnipeg" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Yakutat" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="posix/America/Yellowknife" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/Antarctica/Casey" value="WST-8" />
- <zone name="posix/Antarctica/Davis" value="DAVT-7" />
- <zone name="posix/Antarctica/DumontDUrville" value="DDUT-10" />
- <zone name="posix/Antarctica/Macquarie" value="MIST-11" />
- <zone name="posix/Antarctica/Mawson" value="MAWT-5" />
- <zone name="posix/Antarctica/McMurdo" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="posix/Antarctica/Palmer" value="CLST" />
- <zone name="posix/Antarctica/Rothera" value="ROTT3" />
- <zone name="posix/Antarctica/South_Pole" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="posix/Antarctica/Syowa" value="SYOT-3" />
- <zone name="posix/Antarctica/Troll" value="UTC0CEST-2,M3.5.0/1,M10.5.0/3" />
- <zone name="posix/Antarctica/Vostok" value="VOST-6" />
- <zone name="posix/Arctic/Longyearbyen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Asia/Aden" value="AST-3" />
- <zone name="posix/Asia/Almaty" value="ALMT-6" />
- <zone name="posix/Asia/Amman" value="EEST" />
- <zone name="posix/Asia/Anadyr" value="ANAT-12" />
- <zone name="posix/Asia/Aqtau" value="AQTT-5" />
- <zone name="posix/Asia/Aqtobe" value="AQTT-5" />
- <zone name="posix/Asia/Ashgabat" value="TMT-5" />
- <zone name="posix/Asia/Ashkhabad" value="TMT-5" />
- <zone name="posix/Asia/Baghdad" value="AST-3" />
- <zone name="posix/Asia/Bahrain" value="AST-3" />
- <zone name="posix/Asia/Baku" value="AZT-4AZST,M3.5.0/4,M10.5.0/5" />
- <zone name="posix/Asia/Bangkok" value="ICT-7" />
- <zone name="posix/Asia/Beirut" value="EET-2EEST,M3.5.0/0,M10.5.0/0" />
- <zone name="posix/Asia/Bishkek" value="KGT-6" />
- <zone name="posix/Asia/Brunei" value="BNT-8" />
- <zone name="posix/Asia/Calcutta" value="IST-5:30" />
- <zone name="posix/Asia/Choibalsan" value="CHOT-8" />
- <zone name="posix/Asia/Chongqing" value="CST-8" />
- <zone name="posix/Asia/Chungking" value="CST-8" />
- <zone name="posix/Asia/Colombo" value="IST-5:30" />
- <zone name="posix/Asia/Dacca" value="BDT-6" />
- <zone name="posix/Asia/Damascus" value="EET-2EEST,M3.5.5/0,M10.5.5/0" />
- <zone name="posix/Asia/Dhaka" value="BDT-6" />
- <zone name="posix/Asia/Dili" value="TLT-9" />
- <zone name="posix/Asia/Dubai" value="GST-4" />
- <zone name="posix/Asia/Dushanbe" value="TJT-5" />
- <zone name="posix/Asia/Gaza" value="EEST" />
- <zone name="posix/Asia/Harbin" value="CST-8" />
- <zone name="posix/Asia/Hebron" value="EEST" />
- <zone name="posix/Asia/Ho_Chi_Minh" value="ICT-7" />
- <zone name="posix/Asia/Hong_Kong" value="HKT-8" />
- <zone name="posix/Asia/Hovd" value="HOVT-7" />
- <zone name="posix/Asia/Irkutsk" value="IRKT-9" />
- <zone name="posix/Asia/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Asia/Jakarta" value="WIB-7" />
- <zone name="posix/Asia/Jayapura" value="WIT-9" />
- <zone name="posix/Asia/Jerusalem" value="IDDT" />
- <zone name="posix/Asia/Kabul" value="AFT-4:30" />
- <zone name="posix/Asia/Kamchatka" value="PETT-12" />
- <zone name="posix/Asia/Karachi" value="PKT-5" />
- <zone name="posix/Asia/Kashgar" value="CST-8" />
- <zone name="posix/Asia/Kathmandu" value="NPT-5:45" />
- <zone name="posix/Asia/Katmandu" value="NPT-5:45" />
- <zone name="posix/Asia/Khandyga" value="YAKT-10" />
- <zone name="posix/Asia/Kolkata" value="IST-5:30" />
- <zone name="posix/Asia/Krasnoyarsk" value="KRAT-8" />
- <zone name="posix/Asia/Kuala_Lumpur" value="MYT-8" />
- <zone name="posix/Asia/Kuching" value="MYT-8" />
- <zone name="posix/Asia/Kuwait" value="AST-3" />
- <zone name="posix/Asia/Macao" value="CST-8" />
- <zone name="posix/Asia/Macau" value="CST-8" />
- <zone name="posix/Asia/Magadan" value="MAGT-12" />
- <zone name="posix/Asia/Makassar" value="WITA-8" />
- <zone name="posix/Asia/Manila" value="PHT-8" />
- <zone name="posix/Asia/Muscat" value="GST-4" />
- <zone name="posix/Asia/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Asia/Novokuznetsk" value="NOVT-7" />
- <zone name="posix/Asia/Novosibirsk" value="NOVT-7" />
- <zone name="posix/Asia/Omsk" value="OMST-7" />
- <zone name="posix/Asia/Oral" value="ORAT-5" />
- <zone name="posix/Asia/Phnom_Penh" value="ICT-7" />
- <zone name="posix/Asia/Pontianak" value="WIB-7" />
- <zone name="posix/Asia/Pyongyang" value="KST-9" />
- <zone name="posix/Asia/Qatar" value="AST-3" />
- <zone name="posix/Asia/Qyzylorda" value="QYZT-6" />
- <zone name="posix/Asia/Rangoon" value="MMT-6:30" />
- <zone name="posix/Asia/Riyadh" value="AST-3" />
- <zone name="posix/Asia/Saigon" value="ICT-7" />
- <zone name="posix/Asia/Sakhalin" value="SAKT-11" />
- <zone name="posix/Asia/Samarkand" value="UZT-5" />
- <zone name="posix/Asia/Seoul" value="KST-9" />
- <zone name="posix/Asia/Shanghai" value="CST-8" />
- <zone name="posix/Asia/Singapore" value="SGT-8" />
- <zone name="posix/Asia/Taipei" value="CST-8" />
- <zone name="posix/Asia/Tashkent" value="UZT-5" />
- <zone name="posix/Asia/Tbilisi" value="GET-4" />
- <zone name="posix/Asia/Tehran" value="IRDT" />
- <zone name="posix/Asia/Tel_Aviv" value="IDDT" />
- <zone name="posix/Asia/Thimbu" value="BTT-6" />
- <zone name="posix/Asia/Thimphu" value="BTT-6" />
- <zone name="posix/Asia/Tokyo" value="JST-9" />
- <zone name="posix/Asia/Ujung_Pandang" value="WITA-8" />
- <zone name="posix/Asia/Ulaanbaatar" value="ULAT-8" />
- <zone name="posix/Asia/Ulan_Bator" value="ULAT-8" />
- <zone name="posix/Asia/Urumqi" value="CST-8" />
- <zone name="posix/Asia/Ust-Nera" value="VLAT-11" />
- <zone name="posix/Asia/Vientiane" value="ICT-7" />
- <zone name="posix/Asia/Vladivostok" value="VLAT-11" />
- <zone name="posix/Asia/Yakutsk" value="YAKT-10" />
- <zone name="posix/Asia/Yekaterinburg" value="YEKT-6" />
- <zone name="posix/Asia/Yerevan" value="AMT-4" />
- <zone name="posix/Atlantic/Azores" value="AZOT1AZOST,M3.5.0/0,M10.5.0/1" />
- <zone name="posix/Atlantic/Bermuda" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="posix/Atlantic/Canary" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Atlantic/Cape_Verde" value="CVT1" />
- <zone name="posix/Atlantic/Faeroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Atlantic/Faroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Atlantic/Jan_Mayen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Atlantic/Madeira" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Atlantic/Reykjavik" value="GMT0" />
- <zone name="posix/Atlantic/South_Georgia" value="GST2" />
- <zone name="posix/Atlantic/St_Helena" value="GMT0" />
- <zone name="posix/Atlantic/Stanley" value="FKST3" />
- <zone name="posix/Australia/ACT" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/Adelaide" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/Brisbane" value="EST-10" />
- <zone name="posix/Australia/Broken_Hill" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/Canberra" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/Currie" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/Darwin" value="CST-9:30" />
- <zone name="posix/Australia/Eucla" value="CWST-8:45" />
- <zone name="posix/Australia/Hobart" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/LHI" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
- <zone name="posix/Australia/Lindeman" value="EST-10" />
- <zone name="posix/Australia/Lord_Howe" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
- <zone name="posix/Australia/Melbourne" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/NSW" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/North" value="CST-9:30" />
- <zone name="posix/Australia/Perth" value="WST-8" />
- <zone name="posix/Australia/Queensland" value="EST-10" />
- <zone name="posix/Australia/South" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/Sydney" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/Tasmania" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/Victoria" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Australia/West" value="WST-8" />
- <zone name="posix/Australia/Yancowinna" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="posix/Brazil/Acre" value="ACT5" />
- <zone name="posix/Brazil/DeNoronha" value="FNT2" />
- <zone name="posix/Brazil/East" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
- <zone name="posix/Brazil/West" value="AMT4" />
- <zone name="posix/CET" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/Canada/Atlantic" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="posix/Canada/Central" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/Canada/East-Saskatchewan" value="CST6" />
- <zone name="posix/Canada/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/Canada/Newfoundland" value="NST3:30NDT,M3.2.0,M11.1.0" />
- <zone name="posix/Canada/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/Canada/Saskatchewan" value="CST6" />
- <zone name="posix/Canada/Yukon" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/Chile/Continental" value="CLST" />
- <zone name="posix/Chile/EasterIsland" value="EASST" />
- <zone name="posix/Cuba" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
- <zone name="posix/EET" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/EST" value="EST5" />
- <zone name="posix/EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/Egypt" value="EEST" />
- <zone name="posix/Eire" value="GMT0IST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Etc/GMT" value="GMT0" />
- <zone name="posix/Etc/GMT+0" value="GMT0" />
- <zone name="posix/Etc/GMT+1" value="<GMT+1>1" />
- <zone name="posix/Etc/GMT+10" value="<GMT+10>10" />
- <zone name="posix/Etc/GMT+11" value="<GMT+11>11" />
- <zone name="posix/Etc/GMT+12" value="<GMT+12>12" />
- <zone name="posix/Etc/GMT+2" value="<GMT+2>2" />
- <zone name="posix/Etc/GMT+3" value="<GMT+3>3" />
- <zone name="posix/Etc/GMT+4" value="<GMT+4>4" />
- <zone name="posix/Etc/GMT+5" value="<GMT+5>5" />
- <zone name="posix/Etc/GMT+6" value="<GMT+6>6" />
- <zone name="posix/Etc/GMT+7" value="<GMT+7>7" />
- <zone name="posix/Etc/GMT+8" value="<GMT+8>8" />
- <zone name="posix/Etc/GMT+9" value="<GMT+9>9" />
- <zone name="posix/Etc/GMT-0" value="GMT0" />
- <zone name="posix/Etc/GMT-1" value="<GMT-1>-1" />
- <zone name="posix/Etc/GMT-10" value="<GMT-10>-10" />
- <zone name="posix/Etc/GMT-11" value="<GMT-11>-11" />
- <zone name="posix/Etc/GMT-12" value="<GMT-12>-12" />
- <zone name="posix/Etc/GMT-13" value="<GMT-13>-13" />
- <zone name="posix/Etc/GMT-14" value="<GMT-14>-14" />
- <zone name="posix/Etc/GMT-2" value="<GMT-2>-2" />
- <zone name="posix/Etc/GMT-3" value="<GMT-3>-3" />
- <zone name="posix/Etc/GMT-4" value="<GMT-4>-4" />
- <zone name="posix/Etc/GMT-5" value="<GMT-5>-5" />
- <zone name="posix/Etc/GMT-6" value="<GMT-6>-6" />
- <zone name="posix/Etc/GMT-7" value="<GMT-7>-7" />
- <zone name="posix/Etc/GMT-8" value="<GMT-8>-8" />
- <zone name="posix/Etc/GMT-9" value="<GMT-9>-9" />
- <zone name="posix/Etc/GMT0" value="GMT0" />
- <zone name="posix/Etc/Greenwich" value="GMT0" />
- <zone name="posix/Etc/UCT" value="UCT0" />
- <zone name="posix/Etc/UTC" value="UTC0" />
- <zone name="posix/Etc/Universal" value="UTC0" />
- <zone name="posix/Etc/Zulu" value="UTC0" />
- <zone name="posix/Europe/Amsterdam" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Andorra" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Athens" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Belfast" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Europe/Belgrade" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Berlin" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Bratislava" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Brussels" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Bucharest" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Budapest" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Busingen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Chisinau" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Copenhagen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Dublin" value="GMT0IST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Europe/Gibraltar" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Guernsey" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Europe/Helsinki" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Isle_of_Man" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Europe/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Jersey" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Europe/Kaliningrad" value="FET-3" />
- <zone name="posix/Europe/Kiev" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Lisbon" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Europe/Ljubljana" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/London" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Europe/Luxembourg" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Madrid" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Malta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Mariehamn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Minsk" value="FET-3" />
- <zone name="posix/Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Moscow" value="MSK-4" />
- <zone name="posix/Europe/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Oslo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Paris" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Podgorica" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Prague" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Riga" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Rome" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Samara" value="SAMT-4" />
- <zone name="posix/Europe/San_Marino" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Sarajevo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Simferopol" value="MSK-4" />
- <zone name="posix/Europe/Skopje" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Sofia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Stockholm" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Tallinn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Tirane" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Tiraspol" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Uzhgorod" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Vaduz" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Vatican" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Vienna" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Vilnius" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Volgograd" value="VOLT-4" />
- <zone name="posix/Europe/Warsaw" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Zagreb" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Europe/Zaporozhye" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/Europe/Zurich" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Factory" value="<Local time zone must be set--see zic manual page>0" />
- <zone name="posix/GB" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="posix/GB-Eire" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="posix/GMT" value="GMT0" />
- <zone name="posix/GMT+0" value="GMT0" />
- <zone name="posix/GMT-0" value="GMT0" />
- <zone name="posix/GMT0" value="GMT0" />
- <zone name="posix/Greenwich" value="GMT0" />
- <zone name="posix/HST" value="HST10" />
- <zone name="posix/Hongkong" value="HKT-8" />
- <zone name="posix/Iceland" value="GMT0" />
- <zone name="posix/Indian/Antananarivo" value="EAT-3" />
- <zone name="posix/Indian/Chagos" value="IOT-6" />
- <zone name="posix/Indian/Christmas" value="CXT-7" />
- <zone name="posix/Indian/Cocos" value="CCT-6:30" />
- <zone name="posix/Indian/Comoro" value="EAT-3" />
- <zone name="posix/Indian/Kerguelen" value="TFT-5" />
- <zone name="posix/Indian/Mahe" value="SCT-4" />
- <zone name="posix/Indian/Maldives" value="MVT-5" />
- <zone name="posix/Indian/Mauritius" value="MUT-4" />
- <zone name="posix/Indian/Mayotte" value="EAT-3" />
- <zone name="posix/Indian/Reunion" value="RET-4" />
- <zone name="posix/Iran" value="IRDT" />
- <zone name="posix/Israel" value="IDDT" />
- <zone name="posix/Jamaica" value="EST5" />
- <zone name="posix/Japan" value="JST-9" />
- <zone name="posix/Kwajalein" value="MHT-12" />
- <zone name="posix/Libya" value="EET-2" />
- <zone name="posix/MET" value="MET-1MEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/MST" value="MST7" />
- <zone name="posix/MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/Mexico/BajaNorte" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/Mexico/BajaSur" value="MST7MDT,M4.1.0,M10.5.0" />
- <zone name="posix/Mexico/General" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="posix/NZ" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="posix/NZ-CHAT" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
- <zone name="posix/Navajo" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/PRC" value="CST-8" />
- <zone name="posix/PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/Pacific/Apia" value="WST-13WSDT,M9.5.0/3,M4.1.0/4" />
- <zone name="posix/Pacific/Auckland" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="posix/Pacific/Chatham" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
- <zone name="posix/Pacific/Chuuk" value="CHUT-10" />
- <zone name="posix/Pacific/Easter" value="EASST" />
- <zone name="posix/Pacific/Efate" value="VUT-11" />
- <zone name="posix/Pacific/Enderbury" value="PHOT-13" />
- <zone name="posix/Pacific/Fakaofo" value="TKT-13" />
- <zone name="posix/Pacific/Fiji" value="FJST" />
- <zone name="posix/Pacific/Funafuti" value="TVT-12" />
- <zone name="posix/Pacific/Galapagos" value="GALT6" />
- <zone name="posix/Pacific/Gambier" value="GAMT9" />
- <zone name="posix/Pacific/Guadalcanal" value="SBT-11" />
- <zone name="posix/Pacific/Guam" value="ChST-10" />
- <zone name="posix/Pacific/Honolulu" value="HST10" />
- <zone name="posix/Pacific/Johnston" value="HST10" />
- <zone name="posix/Pacific/Kiritimati" value="LINT-14" />
- <zone name="posix/Pacific/Kosrae" value="KOST-11" />
- <zone name="posix/Pacific/Kwajalein" value="MHT-12" />
- <zone name="posix/Pacific/Majuro" value="MHT-12" />
- <zone name="posix/Pacific/Marquesas" value="MART9:30" />
- <zone name="posix/Pacific/Midway" value="SST11" />
- <zone name="posix/Pacific/Nauru" value="NRT-12" />
- <zone name="posix/Pacific/Niue" value="NUT11" />
- <zone name="posix/Pacific/Norfolk" value="NFT-11:30" />
- <zone name="posix/Pacific/Noumea" value="NCT-11" />
- <zone name="posix/Pacific/Pago_Pago" value="SST11" />
- <zone name="posix/Pacific/Palau" value="PWT-9" />
- <zone name="posix/Pacific/Pitcairn" value="PST8" />
- <zone name="posix/Pacific/Pohnpei" value="PONT-11" />
- <zone name="posix/Pacific/Ponape" value="PONT-11" />
- <zone name="posix/Pacific/Port_Moresby" value="PGT-10" />
- <zone name="posix/Pacific/Rarotonga" value="CKT10" />
- <zone name="posix/Pacific/Saipan" value="ChST-10" />
- <zone name="posix/Pacific/Samoa" value="SST11" />
- <zone name="posix/Pacific/Tahiti" value="TAHT10" />
- <zone name="posix/Pacific/Tarawa" value="GILT-12" />
- <zone name="posix/Pacific/Tongatapu" value="TOT-13" />
- <zone name="posix/Pacific/Truk" value="CHUT-10" />
- <zone name="posix/Pacific/Wake" value="WAKT-12" />
- <zone name="posix/Pacific/Wallis" value="WFT-12" />
- <zone name="posix/Pacific/Yap" value="CHUT-10" />
- <zone name="posix/Poland" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="posix/Portugal" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="posix/ROC" value="CST-8" />
- <zone name="posix/ROK" value="KST-9" />
- <zone name="posix/Singapore" value="SGT-8" />
- <zone name="posix/SystemV/AST4" value="AST4" />
- <zone name="posix/SystemV/AST4ADT" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="posix/SystemV/CST6" value="CST6" />
- <zone name="posix/SystemV/CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/SystemV/EST5" value="EST5" />
- <zone name="posix/SystemV/EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/SystemV/HST10" value="HST10" />
- <zone name="posix/SystemV/MST7" value="MST7" />
- <zone name="posix/SystemV/MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/SystemV/PST8" value="PST8" />
- <zone name="posix/SystemV/PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/SystemV/YST9" value="GAMT9" />
- <zone name="posix/SystemV/YST9YDT" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="posix/Turkey" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="posix/UCT" value="UCT0" />
- <zone name="posix/US/Alaska" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="posix/US/Aleutian" value="HAST10HADT,M3.2.0,M11.1.0" />
- <zone name="posix/US/Arizona" value="MST7" />
- <zone name="posix/US/Central" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/US/East-Indiana" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/US/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/US/Hawaii" value="HST10" />
- <zone name="posix/US/Indiana-Starke" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="posix/US/Michigan" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="posix/US/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="posix/US/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/US/Pacific-New" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="posix/US/Samoa" value="SST11" />
- <zone name="posix/UTC" value="UTC0" />
- <zone name="posix/Universal" value="UTC0" />
- <zone name="posix/W-SU" value="MSK-4" />
- <zone name="posix/WET" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="posix/Zulu" value="UTC0" />
- <zone name="posixrules" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/Africa/Abidjan" value="GMT0" />
- <zone name="right/Africa/Accra" value="GMT0" />
- <zone name="right/Africa/Addis_Ababa" value="EAT-3" />
- <zone name="right/Africa/Algiers" value="CET-1" />
- <zone name="right/Africa/Asmara" value="EAT-3" />
- <zone name="right/Africa/Asmera" value="EAT-3" />
- <zone name="right/Africa/Bamako" value="GMT0" />
- <zone name="right/Africa/Bangui" value="WAT-1" />
- <zone name="right/Africa/Banjul" value="GMT0" />
- <zone name="right/Africa/Bissau" value="GMT0" />
- <zone name="right/Africa/Blantyre" value="CAT-2" />
- <zone name="right/Africa/Brazzaville" value="WAT-1" />
- <zone name="right/Africa/Bujumbura" value="CAT-2" />
- <zone name="right/Africa/Cairo" value="EEST" />
- <zone name="right/Africa/Casablanca" value="WET0WEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Africa/Conakry" value="GMT0" />
- <zone name="right/Africa/Dakar" value="GMT0" />
- <zone name="right/Africa/Dar_es_Salaam" value="EAT-3" />
- <zone name="right/Africa/Djibouti" value="EAT-3" />
- <zone name="right/Africa/Douala" value="WAT-1" />
- <zone name="right/Africa/El_Aaiun" value="WET0WEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Africa/Freetown" value="GMT0" />
- <zone name="right/Africa/Gaborone" value="CAT-2" />
- <zone name="right/Africa/Harare" value="CAT-2" />
- <zone name="right/Africa/Johannesburg" value="SAST-2" />
- <zone name="right/Africa/Juba" value="EAT-3" />
- <zone name="right/Africa/Kampala" value="EAT-3" />
- <zone name="right/Africa/Khartoum" value="EAT-3" />
- <zone name="right/Africa/Kigali" value="CAT-2" />
- <zone name="right/Africa/Kinshasa" value="WAT-1" />
- <zone name="right/Africa/Lagos" value="WAT-1" />
- <zone name="right/Africa/Libreville" value="WAT-1" />
- <zone name="right/Africa/Lome" value="GMT0" />
- <zone name="right/Africa/Luanda" value="WAT-1" />
- <zone name="right/Africa/Lubumbashi" value="CAT-2" />
- <zone name="right/Africa/Lusaka" value="CAT-2" />
- <zone name="right/Africa/Malabo" value="WAT-1" />
- <zone name="right/Africa/Maputo" value="CAT-2" />
- <zone name="right/Africa/Maseru" value="SAST-2" />
- <zone name="right/Africa/Mbabane" value="SAST-2" />
- <zone name="right/Africa/Mogadishu" value="EAT-3" />
- <zone name="right/Africa/Monrovia" value="GMT0" />
- <zone name="right/Africa/Nairobi" value="EAT-3" />
- <zone name="right/Africa/Ndjamena" value="WAT-1" />
- <zone name="right/Africa/Niamey" value="WAT-1" />
- <zone name="right/Africa/Nouakchott" value="GMT0" />
- <zone name="right/Africa/Ouagadougou" value="GMT0" />
- <zone name="right/Africa/Porto-Novo" value="WAT-1" />
- <zone name="right/Africa/Sao_Tome" value="GMT0" />
- <zone name="right/Africa/Timbuktu" value="GMT0" />
- <zone name="right/Africa/Tripoli" value="EET-2" />
- <zone name="right/Africa/Tunis" value="CET-1" />
- <zone name="right/Africa/Windhoek" value="WAT-1WAST,M9.1.0,M4.1.0" />
- <zone name="right/America/Adak" value="HAST10HADT,M3.2.0,M11.1.0" />
- <zone name="right/America/Anchorage" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Anguilla" value="AST4" />
- <zone name="right/America/Antigua" value="AST4" />
- <zone name="right/America/Araguaina" value="BRT3" />
- <zone name="right/America/Argentina/Buenos_Aires" value="ART3" />
- <zone name="right/America/Argentina/Catamarca" value="ART3" />
- <zone name="right/America/Argentina/ComodRivadavia" value="ART3" />
- <zone name="right/America/Argentina/Cordoba" value="ART3" />
- <zone name="right/America/Argentina/Jujuy" value="ART3" />
- <zone name="right/America/Argentina/La_Rioja" value="ART3" />
- <zone name="right/America/Argentina/Mendoza" value="ART3" />
- <zone name="right/America/Argentina/Rio_Gallegos" value="ART3" />
- <zone name="right/America/Argentina/Salta" value="ART3" />
- <zone name="right/America/Argentina/San_Juan" value="ART3" />
- <zone name="right/America/Argentina/San_Luis" value="ART3" />
- <zone name="right/America/Argentina/Tucuman" value="ART3" />
- <zone name="right/America/Argentina/Ushuaia" value="ART3" />
- <zone name="right/America/Aruba" value="AST4" />
- <zone name="right/America/Asuncion" value="PYT4PYST,M10.1.0/0,M3.4.0/0" />
- <zone name="right/America/Atikokan" value="EST5" />
- <zone name="right/America/Atka" value="HAST10HADT,M3.2.0,M11.1.0" />
- <zone name="right/America/Bahia" value="BRT3" />
- <zone name="right/America/Bahia_Banderas" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="right/America/Barbados" value="AST4" />
- <zone name="right/America/Belem" value="BRT3" />
- <zone name="right/America/Belize" value="CST6" />
- <zone name="right/America/Blanc-Sablon" value="AST4" />
- <zone name="right/America/Boa_Vista" value="AMT4" />
- <zone name="right/America/Bogota" value="COT5" />
- <zone name="right/America/Boise" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Buenos_Aires" value="ART3" />
- <zone name="right/America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Campo_Grande" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
- <zone name="right/America/Cancun" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="right/America/Caracas" value="VET4:30" />
- <zone name="right/America/Catamarca" value="ART3" />
- <zone name="right/America/Cayenne" value="GFT3" />
- <zone name="right/America/Cayman" value="EST5" />
- <zone name="right/America/Chicago" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Chihuahua" value="MST7MDT,M4.1.0,M10.5.0" />
- <zone name="right/America/Coral_Harbour" value="EST5" />
- <zone name="right/America/Cordoba" value="ART3" />
- <zone name="right/America/Costa_Rica" value="CST6" />
- <zone name="right/America/Creston" value="MST7" />
- <zone name="right/America/Cuiaba" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
- <zone name="right/America/Curacao" value="AST4" />
- <zone name="right/America/Danmarkshavn" value="GMT0" />
- <zone name="right/America/Dawson" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Dawson_Creek" value="MST7" />
- <zone name="right/America/Denver" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Detroit" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Dominica" value="AST4" />
- <zone name="right/America/Edmonton" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Eirunepe" value="ACT5" />
- <zone name="right/America/El_Salvador" value="CST6" />
- <zone name="right/America/Ensenada" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Fortaleza" value="BRT3" />
- <zone name="right/America/Glace_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="right/America/Godthab" value="WGST" />
- <zone name="right/America/Goose_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="right/America/Grand_Turk" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Grenada" value="AST4" />
- <zone name="right/America/Guadeloupe" value="AST4" />
- <zone name="right/America/Guatemala" value="CST6" />
- <zone name="right/America/Guayaquil" value="ECT5" />
- <zone name="right/America/Guyana" value="GYT4" />
- <zone name="right/America/Halifax" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="right/America/Havana" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
- <zone name="right/America/Hermosillo" value="MST7" />
- <zone name="right/America/Indiana/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Indiana/Knox" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Indiana/Marengo" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Indiana/Petersburg" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Indiana/Tell_City" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Indiana/Vevay" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Indiana/Vincennes" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Indiana/Winamac" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Inuvik" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Iqaluit" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Jamaica" value="EST5" />
- <zone name="right/America/Jujuy" value="ART3" />
- <zone name="right/America/Juneau" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Kentucky/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Kentucky/Monticello" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Knox_IN" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Kralendijk" value="AST4" />
- <zone name="right/America/La_Paz" value="BOT4" />
- <zone name="right/America/Lima" value="PET5" />
- <zone name="right/America/Los_Angeles" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Lower_Princes" value="AST4" />
- <zone name="right/America/Maceio" value="BRT3" />
- <zone name="right/America/Managua" value="CST6" />
- <zone name="right/America/Manaus" value="AMT4" />
- <zone name="right/America/Marigot" value="AST4" />
- <zone name="right/America/Martinique" value="AST4" />
- <zone name="right/America/Matamoros" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Mazatlan" value="MST7MDT,M4.1.0,M10.5.0" />
- <zone name="right/America/Mendoza" value="ART3" />
- <zone name="right/America/Menominee" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Merida" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="right/America/Metlakatla" value="MeST8" />
- <zone name="right/America/Mexico_City" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="right/America/Miquelon" value="PMST3PMDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Moncton" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="right/America/Monterrey" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="right/America/Montevideo" value="UYT3UYST,M10.1.0,M3.2.0" />
- <zone name="right/America/Montreal" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Montserrat" value="AST4" />
- <zone name="right/America/Nassau" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/New_York" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Nipigon" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Nome" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Noronha" value="FNT2" />
- <zone name="right/America/North_Dakota/Beulah" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/North_Dakota/Center" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/North_Dakota/New_Salem" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Ojinaga" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Panama" value="EST5" />
- <zone name="right/America/Pangnirtung" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Paramaribo" value="SRT3" />
- <zone name="right/America/Phoenix" value="MST7" />
- <zone name="right/America/Port-au-Prince" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Port_of_Spain" value="AST4" />
- <zone name="right/America/Porto_Acre" value="ACT5" />
- <zone name="right/America/Porto_Velho" value="AMT4" />
- <zone name="right/America/Puerto_Rico" value="AST4" />
- <zone name="right/America/Rainy_River" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Rankin_Inlet" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Recife" value="BRT3" />
- <zone name="right/America/Regina" value="CST6" />
- <zone name="right/America/Resolute" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Rio_Branco" value="ACT5" />
- <zone name="right/America/Rosario" value="ART3" />
- <zone name="right/America/Santa_Isabel" value="PST8PDT,M4.1.0,M10.5.0" />
- <zone name="right/America/Santarem" value="BRT3" />
- <zone name="right/America/Santiago" value="CLST" />
- <zone name="right/America/Santo_Domingo" value="AST4" />
- <zone name="right/America/Sao_Paulo" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
- <zone name="right/America/Scoresbysund" value="EGT1EGST,M3.5.0/0,M10.5.0/1" />
- <zone name="right/America/Shiprock" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Sitka" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="right/America/St_Barthelemy" value="AST4" />
- <zone name="right/America/St_Johns" value="NST3:30NDT,M3.2.0,M11.1.0" />
- <zone name="right/America/St_Kitts" value="AST4" />
- <zone name="right/America/St_Lucia" value="AST4" />
- <zone name="right/America/St_Thomas" value="AST4" />
- <zone name="right/America/St_Vincent" value="AST4" />
- <zone name="right/America/Swift_Current" value="CST6" />
- <zone name="right/America/Tegucigalpa" value="CST6" />
- <zone name="right/America/Thule" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="right/America/Thunder_Bay" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Tijuana" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Toronto" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Tortola" value="AST4" />
- <zone name="right/America/Vancouver" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Virgin" value="AST4" />
- <zone name="right/America/Whitehorse" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Winnipeg" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Yakutat" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="right/America/Yellowknife" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/Antarctica/Casey" value="WST-8" />
- <zone name="right/Antarctica/Davis" value="DAVT-7" />
- <zone name="right/Antarctica/DumontDUrville" value="DDUT-10" />
- <zone name="right/Antarctica/Macquarie" value="MIST-11" />
- <zone name="right/Antarctica/Mawson" value="MAWT-5" />
- <zone name="right/Antarctica/McMurdo" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="right/Antarctica/Palmer" value="CLST" />
- <zone name="right/Antarctica/Rothera" value="ROTT3" />
- <zone name="right/Antarctica/South_Pole" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="right/Antarctica/Syowa" value="SYOT-3" />
- <zone name="right/Antarctica/Troll" value="UTC0CEST-2,M3.5.0/1,M10.5.0/3" />
- <zone name="right/Antarctica/Vostok" value="VOST-6" />
- <zone name="right/Arctic/Longyearbyen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Asia/Aden" value="AST-3" />
- <zone name="right/Asia/Almaty" value="ALMT-6" />
- <zone name="right/Asia/Amman" value="EEST" />
- <zone name="right/Asia/Anadyr" value="ANAT-12" />
- <zone name="right/Asia/Aqtau" value="AQTT-5" />
- <zone name="right/Asia/Aqtobe" value="AQTT-5" />
- <zone name="right/Asia/Ashgabat" value="TMT-5" />
- <zone name="right/Asia/Ashkhabad" value="TMT-5" />
- <zone name="right/Asia/Baghdad" value="AST-3" />
- <zone name="right/Asia/Bahrain" value="AST-3" />
- <zone name="right/Asia/Baku" value="AZT-4AZST,M3.5.0/4,M10.5.0/5" />
- <zone name="right/Asia/Bangkok" value="ICT-7" />
- <zone name="right/Asia/Beirut" value="EET-2EEST,M3.5.0/0,M10.5.0/0" />
- <zone name="right/Asia/Bishkek" value="KGT-6" />
- <zone name="right/Asia/Brunei" value="BNT-8" />
- <zone name="right/Asia/Calcutta" value="IST-5:30" />
- <zone name="right/Asia/Choibalsan" value="CHOT-8" />
- <zone name="right/Asia/Chongqing" value="CST-8" />
- <zone name="right/Asia/Chungking" value="CST-8" />
- <zone name="right/Asia/Colombo" value="IST-5:30" />
- <zone name="right/Asia/Dacca" value="BDT-6" />
- <zone name="right/Asia/Damascus" value="EET-2EEST,M3.5.5/0,M10.5.5/0" />
- <zone name="right/Asia/Dhaka" value="BDT-6" />
- <zone name="right/Asia/Dili" value="TLT-9" />
- <zone name="right/Asia/Dubai" value="GST-4" />
- <zone name="right/Asia/Dushanbe" value="TJT-5" />
- <zone name="right/Asia/Gaza" value="EEST" />
- <zone name="right/Asia/Harbin" value="CST-8" />
- <zone name="right/Asia/Hebron" value="EEST" />
- <zone name="right/Asia/Ho_Chi_Minh" value="ICT-7" />
- <zone name="right/Asia/Hong_Kong" value="HKT-8" />
- <zone name="right/Asia/Hovd" value="HOVT-7" />
- <zone name="right/Asia/Irkutsk" value="IRKT-9" />
- <zone name="right/Asia/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Asia/Jakarta" value="WIB-7" />
- <zone name="right/Asia/Jayapura" value="WIT-9" />
- <zone name="right/Asia/Jerusalem" value="IDDT" />
- <zone name="right/Asia/Kabul" value="AFT-4:30" />
- <zone name="right/Asia/Kamchatka" value="PETT-12" />
- <zone name="right/Asia/Karachi" value="PKT-5" />
- <zone name="right/Asia/Kashgar" value="CST-8" />
- <zone name="right/Asia/Kathmandu" value="NPT-5:45" />
- <zone name="right/Asia/Katmandu" value="NPT-5:45" />
- <zone name="right/Asia/Khandyga" value="YAKT-10" />
- <zone name="right/Asia/Kolkata" value="IST-5:30" />
- <zone name="right/Asia/Krasnoyarsk" value="KRAT-8" />
- <zone name="right/Asia/Kuala_Lumpur" value="MYT-8" />
- <zone name="right/Asia/Kuching" value="MYT-8" />
- <zone name="right/Asia/Kuwait" value="AST-3" />
- <zone name="right/Asia/Macao" value="CST-8" />
- <zone name="right/Asia/Macau" value="CST-8" />
- <zone name="right/Asia/Magadan" value="MAGT-12" />
- <zone name="right/Asia/Makassar" value="WITA-8" />
- <zone name="right/Asia/Manila" value="PHT-8" />
- <zone name="right/Asia/Muscat" value="GST-4" />
- <zone name="right/Asia/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Asia/Novokuznetsk" value="NOVT-7" />
- <zone name="right/Asia/Novosibirsk" value="NOVT-7" />
- <zone name="right/Asia/Omsk" value="OMST-7" />
- <zone name="right/Asia/Oral" value="ORAT-5" />
- <zone name="right/Asia/Phnom_Penh" value="ICT-7" />
- <zone name="right/Asia/Pontianak" value="WIB-7" />
- <zone name="right/Asia/Pyongyang" value="KST-9" />
- <zone name="right/Asia/Qatar" value="AST-3" />
- <zone name="right/Asia/Qyzylorda" value="QYZT-6" />
- <zone name="right/Asia/Rangoon" value="MMT-6:30" />
- <zone name="right/Asia/Riyadh" value="AST-3" />
- <zone name="right/Asia/Saigon" value="ICT-7" />
- <zone name="right/Asia/Sakhalin" value="SAKT-11" />
- <zone name="right/Asia/Samarkand" value="UZT-5" />
- <zone name="right/Asia/Seoul" value="KST-9" />
- <zone name="right/Asia/Shanghai" value="CST-8" />
- <zone name="right/Asia/Singapore" value="SGT-8" />
- <zone name="right/Asia/Taipei" value="CST-8" />
- <zone name="right/Asia/Tashkent" value="UZT-5" />
- <zone name="right/Asia/Tbilisi" value="GET-4" />
- <zone name="right/Asia/Tehran" value="IRDT" />
- <zone name="right/Asia/Tel_Aviv" value="IDDT" />
- <zone name="right/Asia/Thimbu" value="BTT-6" />
- <zone name="right/Asia/Thimphu" value="BTT-6" />
- <zone name="right/Asia/Tokyo" value="JST-9" />
- <zone name="right/Asia/Ujung_Pandang" value="WITA-8" />
- <zone name="right/Asia/Ulaanbaatar" value="ULAT-8" />
- <zone name="right/Asia/Ulan_Bator" value="ULAT-8" />
- <zone name="right/Asia/Urumqi" value="CST-8" />
- <zone name="right/Asia/Ust-Nera" value="VLAT-11" />
- <zone name="right/Asia/Vientiane" value="ICT-7" />
- <zone name="right/Asia/Vladivostok" value="VLAT-11" />
- <zone name="right/Asia/Yakutsk" value="YAKT-10" />
- <zone name="right/Asia/Yekaterinburg" value="YEKT-6" />
- <zone name="right/Asia/Yerevan" value="AMT-4" />
- <zone name="right/Atlantic/Azores" value="AZOT1AZOST,M3.5.0/0,M10.5.0/1" />
- <zone name="right/Atlantic/Bermuda" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="right/Atlantic/Canary" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="right/Atlantic/Cape_Verde" value="CVT1" />
- <zone name="right/Atlantic/Faeroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="right/Atlantic/Faroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="right/Atlantic/Jan_Mayen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Atlantic/Madeira" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="right/Atlantic/Reykjavik" value="GMT0" />
- <zone name="right/Atlantic/South_Georgia" value="GST2" />
- <zone name="right/Atlantic/St_Helena" value="GMT0" />
- <zone name="right/Atlantic/Stanley" value="FKST3" />
- <zone name="right/Australia/ACT" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/Adelaide" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/Brisbane" value="EST-10" />
- <zone name="right/Australia/Broken_Hill" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/Canberra" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/Currie" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/Darwin" value="CST-9:30" />
- <zone name="right/Australia/Eucla" value="CWST-8:45" />
- <zone name="right/Australia/Hobart" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/LHI" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
- <zone name="right/Australia/Lindeman" value="EST-10" />
- <zone name="right/Australia/Lord_Howe" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
- <zone name="right/Australia/Melbourne" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/NSW" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/North" value="CST-9:30" />
- <zone name="right/Australia/Perth" value="WST-8" />
- <zone name="right/Australia/Queensland" value="EST-10" />
- <zone name="right/Australia/South" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/Sydney" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/Tasmania" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/Victoria" value="EST-10EST,M10.1.0,M4.1.0/3" />
- <zone name="right/Australia/West" value="WST-8" />
- <zone name="right/Australia/Yancowinna" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
- <zone name="right/Brazil/Acre" value="ACT5" />
- <zone name="right/Brazil/DeNoronha" value="FNT2" />
- <zone name="right/Brazil/East" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
- <zone name="right/Brazil/West" value="AMT4" />
- <zone name="right/CET" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/Canada/Atlantic" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="right/Canada/Central" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/Canada/East-Saskatchewan" value="CST6" />
- <zone name="right/Canada/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/Canada/Newfoundland" value="NST3:30NDT,M3.2.0,M11.1.0" />
- <zone name="right/Canada/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/Canada/Saskatchewan" value="CST6" />
- <zone name="right/Canada/Yukon" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/Chile/Continental" value="CLST" />
- <zone name="right/Chile/EasterIsland" value="EASST" />
- <zone name="right/Cuba" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
- <zone name="right/EET" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/EST" value="EST5" />
- <zone name="right/EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/Egypt" value="EEST" />
- <zone name="right/Eire" value="GMT0IST,M3.5.0/1,M10.5.0" />
- <zone name="right/Etc/GMT" value="GMT0" />
- <zone name="right/Etc/GMT+0" value="GMT0" />
- <zone name="right/Etc/GMT+1" value="<GMT+1>1" />
- <zone name="right/Etc/GMT+10" value="<GMT+10>10" />
- <zone name="right/Etc/GMT+11" value="<GMT+11>11" />
- <zone name="right/Etc/GMT+12" value="<GMT+12>12" />
- <zone name="right/Etc/GMT+2" value="<GMT+2>2" />
- <zone name="right/Etc/GMT+3" value="<GMT+3>3" />
- <zone name="right/Etc/GMT+4" value="<GMT+4>4" />
- <zone name="right/Etc/GMT+5" value="<GMT+5>5" />
- <zone name="right/Etc/GMT+6" value="<GMT+6>6" />
- <zone name="right/Etc/GMT+7" value="<GMT+7>7" />
- <zone name="right/Etc/GMT+8" value="<GMT+8>8" />
- <zone name="right/Etc/GMT+9" value="<GMT+9>9" />
- <zone name="right/Etc/GMT-0" value="GMT0" />
- <zone name="right/Etc/GMT-1" value="<GMT-1>-1" />
- <zone name="right/Etc/GMT-10" value="<GMT-10>-10" />
- <zone name="right/Etc/GMT-11" value="<GMT-11>-11" />
- <zone name="right/Etc/GMT-12" value="<GMT-12>-12" />
- <zone name="right/Etc/GMT-13" value="<GMT-13>-13" />
- <zone name="right/Etc/GMT-14" value="<GMT-14>-14" />
- <zone name="right/Etc/GMT-2" value="<GMT-2>-2" />
- <zone name="right/Etc/GMT-3" value="<GMT-3>-3" />
- <zone name="right/Etc/GMT-4" value="<GMT-4>-4" />
- <zone name="right/Etc/GMT-5" value="<GMT-5>-5" />
- <zone name="right/Etc/GMT-6" value="<GMT-6>-6" />
- <zone name="right/Etc/GMT-7" value="<GMT-7>-7" />
- <zone name="right/Etc/GMT-8" value="<GMT-8>-8" />
- <zone name="right/Etc/GMT-9" value="<GMT-9>-9" />
- <zone name="right/Etc/GMT0" value="GMT0" />
- <zone name="right/Etc/Greenwich" value="GMT0" />
- <zone name="right/Etc/UCT" value="UCT0" />
- <zone name="right/Etc/UTC" value="UTC0" />
- <zone name="right/Etc/Universal" value="UTC0" />
- <zone name="right/Etc/Zulu" value="UTC0" />
- <zone name="right/Europe/Amsterdam" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Andorra" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Athens" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Belfast" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="right/Europe/Belgrade" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Berlin" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Bratislava" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Brussels" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Bucharest" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Budapest" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Busingen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Chisinau" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Copenhagen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Dublin" value="GMT0IST,M3.5.0/1,M10.5.0" />
- <zone name="right/Europe/Gibraltar" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Guernsey" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="right/Europe/Helsinki" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Isle_of_Man" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="right/Europe/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Jersey" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="right/Europe/Kaliningrad" value="FET-3" />
- <zone name="right/Europe/Kiev" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Lisbon" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="right/Europe/Ljubljana" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/London" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="right/Europe/Luxembourg" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Madrid" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Malta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Mariehamn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Minsk" value="FET-3" />
- <zone name="right/Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Moscow" value="MSK-4" />
- <zone name="right/Europe/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Oslo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Paris" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Podgorica" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Prague" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Riga" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Rome" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Samara" value="SAMT-4" />
- <zone name="right/Europe/San_Marino" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Sarajevo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Simferopol" value="MSK-4" />
- <zone name="right/Europe/Skopje" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Sofia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Stockholm" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Tallinn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Tirane" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Tiraspol" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Uzhgorod" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Vaduz" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Vatican" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Vienna" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Vilnius" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Volgograd" value="VOLT-4" />
- <zone name="right/Europe/Warsaw" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Zagreb" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Europe/Zaporozhye" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/Europe/Zurich" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Factory" value="<Local time zone must be set--see zic manual page>0" />
- <zone name="right/GB" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="right/GB-Eire" value="GMT0BST,M3.5.0/1,M10.5.0" />
- <zone name="right/GMT" value="GMT0" />
- <zone name="right/GMT+0" value="GMT0" />
- <zone name="right/GMT-0" value="GMT0" />
- <zone name="right/GMT0" value="GMT0" />
- <zone name="right/Greenwich" value="GMT0" />
- <zone name="right/HST" value="HST10" />
- <zone name="right/Hongkong" value="HKT-8" />
- <zone name="right/Iceland" value="GMT0" />
- <zone name="right/Indian/Antananarivo" value="EAT-3" />
- <zone name="right/Indian/Chagos" value="IOT-6" />
- <zone name="right/Indian/Christmas" value="CXT-7" />
- <zone name="right/Indian/Cocos" value="CCT-6:30" />
- <zone name="right/Indian/Comoro" value="EAT-3" />
- <zone name="right/Indian/Kerguelen" value="TFT-5" />
- <zone name="right/Indian/Mahe" value="SCT-4" />
- <zone name="right/Indian/Maldives" value="MVT-5" />
- <zone name="right/Indian/Mauritius" value="MUT-4" />
- <zone name="right/Indian/Mayotte" value="EAT-3" />
- <zone name="right/Indian/Reunion" value="RET-4" />
- <zone name="right/Iran" value="IRDT" />
- <zone name="right/Israel" value="IDDT" />
- <zone name="right/Jamaica" value="EST5" />
- <zone name="right/Japan" value="JST-9" />
- <zone name="right/Kwajalein" value="MHT-12" />
- <zone name="right/Libya" value="EET-2" />
- <zone name="right/MET" value="MET-1MEST,M3.5.0,M10.5.0/3" />
- <zone name="right/MST" value="MST7" />
- <zone name="right/MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/Mexico/BajaNorte" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/Mexico/BajaSur" value="MST7MDT,M4.1.0,M10.5.0" />
- <zone name="right/Mexico/General" value="CST6CDT,M4.1.0,M10.5.0" />
- <zone name="right/NZ" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="right/NZ-CHAT" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
- <zone name="right/Navajo" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/PRC" value="CST-8" />
- <zone name="right/PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/Pacific/Apia" value="WST-13WSDT,M9.5.0/3,M4.1.0/4" />
- <zone name="right/Pacific/Auckland" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
- <zone name="right/Pacific/Chatham" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
- <zone name="right/Pacific/Chuuk" value="CHUT-10" />
- <zone name="right/Pacific/Easter" value="EASST" />
- <zone name="right/Pacific/Efate" value="VUT-11" />
- <zone name="right/Pacific/Enderbury" value="PHOT-13" />
- <zone name="right/Pacific/Fakaofo" value="TKT-13" />
- <zone name="right/Pacific/Fiji" value="FJST" />
- <zone name="right/Pacific/Funafuti" value="TVT-12" />
- <zone name="right/Pacific/Galapagos" value="GALT6" />
- <zone name="right/Pacific/Gambier" value="GAMT9" />
- <zone name="right/Pacific/Guadalcanal" value="SBT-11" />
- <zone name="right/Pacific/Guam" value="ChST-10" />
- <zone name="right/Pacific/Honolulu" value="HST10" />
- <zone name="right/Pacific/Johnston" value="HST10" />
- <zone name="right/Pacific/Kiritimati" value="LINT-14" />
- <zone name="right/Pacific/Kosrae" value="KOST-11" />
- <zone name="right/Pacific/Kwajalein" value="MHT-12" />
- <zone name="right/Pacific/Majuro" value="MHT-12" />
- <zone name="right/Pacific/Marquesas" value="MART9:30" />
- <zone name="right/Pacific/Midway" value="SST11" />
- <zone name="right/Pacific/Nauru" value="NRT-12" />
- <zone name="right/Pacific/Niue" value="NUT11" />
- <zone name="right/Pacific/Norfolk" value="NFT-11:30" />
- <zone name="right/Pacific/Noumea" value="NCT-11" />
- <zone name="right/Pacific/Pago_Pago" value="SST11" />
- <zone name="right/Pacific/Palau" value="PWT-9" />
- <zone name="right/Pacific/Pitcairn" value="PST8" />
- <zone name="right/Pacific/Pohnpei" value="PONT-11" />
- <zone name="right/Pacific/Ponape" value="PONT-11" />
- <zone name="right/Pacific/Port_Moresby" value="PGT-10" />
- <zone name="right/Pacific/Rarotonga" value="CKT10" />
- <zone name="right/Pacific/Saipan" value="ChST-10" />
- <zone name="right/Pacific/Samoa" value="SST11" />
- <zone name="right/Pacific/Tahiti" value="TAHT10" />
- <zone name="right/Pacific/Tarawa" value="GILT-12" />
- <zone name="right/Pacific/Tongatapu" value="TOT-13" />
- <zone name="right/Pacific/Truk" value="CHUT-10" />
- <zone name="right/Pacific/Wake" value="WAKT-12" />
- <zone name="right/Pacific/Wallis" value="WFT-12" />
- <zone name="right/Pacific/Yap" value="CHUT-10" />
- <zone name="right/Poland" value="CET-1CEST,M3.5.0,M10.5.0/3" />
- <zone name="right/Portugal" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="right/ROC" value="CST-8" />
- <zone name="right/ROK" value="KST-9" />
- <zone name="right/Singapore" value="SGT-8" />
- <zone name="right/SystemV/AST4" value="AST4" />
- <zone name="right/SystemV/AST4ADT" value="AST4ADT,M3.2.0,M11.1.0" />
- <zone name="right/SystemV/CST6" value="CST6" />
- <zone name="right/SystemV/CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/SystemV/EST5" value="EST5" />
- <zone name="right/SystemV/EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/SystemV/HST10" value="HST10" />
- <zone name="right/SystemV/MST7" value="MST7" />
- <zone name="right/SystemV/MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/SystemV/PST8" value="PST8" />
- <zone name="right/SystemV/PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/SystemV/YST9" value="GAMT9" />
- <zone name="right/SystemV/YST9YDT" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="right/Turkey" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
- <zone name="right/UCT" value="UCT0" />
- <zone name="right/US/Alaska" value="AKST9AKDT,M3.2.0,M11.1.0" />
- <zone name="right/US/Aleutian" value="HAST10HADT,M3.2.0,M11.1.0" />
- <zone name="right/US/Arizona" value="MST7" />
- <zone name="right/US/Central" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/US/East-Indiana" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/US/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/US/Hawaii" value="HST10" />
- <zone name="right/US/Indiana-Starke" value="CST6CDT,M3.2.0,M11.1.0" />
- <zone name="right/US/Michigan" value="EST5EDT,M3.2.0,M11.1.0" />
- <zone name="right/US/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
- <zone name="right/US/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/US/Pacific-New" value="PST8PDT,M3.2.0,M11.1.0" />
- <zone name="right/US/Samoa" value="SST11" />
- <zone name="right/UTC" value="UTC0" />
- <zone name="right/Universal" value="UTC0" />
- <zone name="right/W-SU" value="MSK-4" />
- <zone name="right/WET" value="WET0WEST,M3.5.0/1,M10.5.0" />
- <zone name="right/Zulu" value="UTC0" />
- </timezones>
- </configuration>
- <configuration name="translate.conf" description="Number Translation Rules">
- <profiles>
- <profile name="US">
- <rule regex="^\+(\d+)$" replace="$1"/>
- <rule regex="^(1[2-9]\d{2}[2-9]\d{6})$" replace="$1"/>
- <rule regex="^([2-9]\d{2}[2-9]\d{6})$" replace="1$1"/>
- <rule regex="^([2-9]\d{6})$" replace="1${areacode}$1"/>
- <rule regex="^011(\d+)$" replace="$1"/>
- </profile>
- <profile name="GB">
- <rule regex="^\+(\d+)$" replace="$1"/>
- <rule regex="^$" replace="$1"/>
- </profile>
- <profile name="HK">
- <rule regex="\+(\d+)$" replace="$1"/>
- <rule regex="^(852\d{8})$" replace="$1"/>
- <rule regex="^(\d{8})$" replace="852$1"/>
- </profile>
- </profiles>
- <!--
- <profile name="">
- <rule regex="^\+(\d+)$" replace="$1"/>
- <rule regex="^$" replace="$1"/>
- </profile>
- -->
- </configuration>
- <configuration name="tts_commandline.conf" description="TextToSpeech Commandline configuration">
- <settings>
- <!--
- Some variables will be replaced :
- ${text}: input text (quoted)
- ${rate}: sample rate (example: 8000)
- ${voice}: voice_name passed to TTS(quoted)
- ${file}: output file (quoted, including .wav extension)
- Example commands can be found at:
- http://wiki.freeswitch.org/wiki/Mod_tts_commandline#Example_commands
- -->
- <param name="command" value="echo ${text} | text2wave -f ${rate} > ${file}"/>
- </settings>
- </configuration>
- <configuration name="unicall.conf" description="Unicall Configuration">
- <settings>
- <param name="context" value="default"/>
- <param name="dialplan" value="XML"/>
- <param name="suppress-dtmf-tone" value="true"/>
- </settings>
- <spans>
- <span id="1">
- <param name="protocol-class" value="mfcr2"/>
- <param name="protocol-variant" value="ar"/>
- <param name="protocol-end" value="peer"/>
- <param name="outgoing-allowed" value="true"/>
- <param name="dialplan" value="XML"/>
- <param name="context" value="default"/>
- </span>
- <span id="2">
- <param name="protocol-class" value="mfcr2"/>
- <param name="protocol-variant" value="ar"/>
- <param name="protocol-end" value="peer"/>
- <param name="outgoing-allowed" value="true"/>
- <param name="dialplan" value="XML"/>
- <param name="context" value="default"/>
- </span>
- </spans>
- </configuration>
- <configuration name="unimrcp.conf" description="UniMRCP Client">
- <settings>
- <!-- UniMRCP profile to use for TTS -->
- <param name="default-tts-profile" value="voxeo-prophecy8.0-mrcp1"/>
- <!-- UniMRCP profile to use for ASR -->
- <param name="default-asr-profile" value="voxeo-prophecy8.0-mrcp1"/>
- <!-- UniMRCP logging level to appear in freeswitch.log. Options are:
- EMERGENCY|ALERT|CRITICAL|ERROR|WARNING|NOTICE|INFO|DEBUG -->
- <param name="log-level" value="DEBUG"/>
- <!-- Enable events for profile creation, open, and close -->
- <param name="enable-profile-events" value="false"/>
- <param name="max-connection-count" value="100"/>
- <param name="offer-new-connection" value="1"/>
- <param name="request-timeout" value="3000"/>
- </settings>
- <profiles>
- <!-- Loquendo MRCP Server 7 MRCPv2 -->
- <profile name="loquendo7-mrcp2" version="2">
- <!--param name="client-ext-ip" value="auto"-->
- <param name="client-ip" value="auto"/>
- <param name="client-port" value="5090"/>
- <param name="server-ip" value="10.5.5.152"/>
- <param name="server-port" value="5060"/>
- <!--param name="force-destination" value="1"/-->
- <param name="sip-transport" value="udp"/>
- <!--param name="ua-name" value="FreeSWITCH"/-->
- <!--param name="sdp-origin" value="FreeSWITCH"/-->
- <!--param name="rtp-ext-ip" value="auto"/-->
- <param name="rtp-ip" value="auto"/>
- <param name="rtp-port-min" value="4000"/>
- <param name="rtp-port-max" value="5000"/>
- <!--param name="playout-delay" value="50"/-->
- <!--param name="max-playout-delay" value="200"/-->
- <!--param name="ptime" value="20"/-->
- <param name="codecs" value="PCMU PCMA L16/96/8000"/>
- <param name="jsgf-mime-type" value="application/jsgf"/>
- <!-- Add any default MRCP params for SPEAK requests here -->
- <synthparams>
- </synthparams>
- <!-- Add any default MRCP params for RECOGNIZE requests here -->
- <recogparams>
- <!--param name="start-input-timers" value="false"/-->
- </recogparams>
- </profile>
- <!-- Nuance MRCP 1.0.0 Server -->
- <profile name="nuance-mrcp1" version="1">
- <param name="server-ip" value="10.5.5.152"/>
- <param name="server-port" value="554"/>
- <param name="resource-location" value=""/>
- <param name="speechsynth" value="synthesizer"/>
- <param name="speechrecog" value="recognizer"/>
- <!--param name="rtp-ext-ip" value="auto"/-->
- <param name="rtp-ip" value="auto"/>
- <param name="rtp-port-min" value="4000"/>
- <param name="rtp-port-max" value="5000"/>
- <!-- enable/disable rtcp support -->
- <param name="rtcp" value="1"/>
- <!-- rtcp bye policies (rtcp must be enabled first)
- 0 - disable rtcp bye
- 1 - send rtcp bye at the end of session
- 2 - send rtcp bye also at the end of each talkspurt (input)
- -->
- <param name="rtcp-bye" value="2"/>
- <!-- rtcp transmission interval in msec (set 0 to disable) -->
- <param name="rtcp-tx-interval" value="5000"/>
- <!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
- <param name="rtcp-rx-resolution" value="1000"/>
- <!--param name="playout-delay" value="50"/-->
- <!--param name="max-playout-delay" value="200"/-->
- <!--param name="ptime" value="20"/-->
- <param name="codecs" value="PCMU PCMA L16/96/8000"/>
- <!-- Add any default MRCP params for SPEAK requests here -->
- <synthparams>
- </synthparams>
- <!-- Add any default MRCP params for RECOGNIZE requests here -->
- <recogparams>
- <!--param name="start-input-timers" value="false"/-->
- </recogparams>
- </profile>
- <!-- Nuance Speech Server 5.0 MRCPv1 -->
- <profile name="nuance5-mrcp1" version="1">
- <param name="server-ip" value="10.5.5.152"/>
- <param name="server-port" value="4900"/>
- <param name="resource-location" value="media"/>
- <param name="speechsynth" value="speechsynthesizer"/>
- <param name="speechrecog" value="speechrecognizer"/>
- <!--param name="rtp-ext-ip" value="auto"/-->
- <param name="rtp-ip" value="auto"/>
- <param name="rtp-port-min" value="4000"/>
- <param name="rtp-port-max" value="5000"/>
- <!-- enable/disable rtcp support -->
- <param name="rtcp" value="1"/>
- <!-- rtcp bye policies (rtcp must be enabled first)
- 0 - disable rtcp bye
- 1 - send rtcp bye at the end of session
- 2 - send rtcp bye also at the end of each talkspurt (input)
- -->
- <param name="rtcp-bye" value="2"/>
- <!-- rtcp transmission interval in msec (set 0 to disable) -->
- <param name="rtcp-tx-interval" value="5000"/>
- <!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
- <param name="rtcp-rx-resolution" value="1000"/>
- <!--param name="playout-delay" value="50"/-->
- <!--param name="max-playout-delay" value="200"/-->
- <!--param name="ptime" value="20"/-->
- <param name="codecs" value="PCMU PCMA L16/96/8000"/>
- <!-- Add any default MRCP params for SPEAK requests here -->
- <synthparams>
- </synthparams>
- <!-- Add any default MRCP params for RECOGNIZE requests here -->
- <recogparams>
- <!--param name="start-input-timers" value="false"/-->
- </recogparams>
- </profile>
- <!-- Nuance Speech Server 5.0 MRCPv2 -->
- <profile name="nuance5-mrcp2" version="2">
- <!--param name="client-ext-ip" value="auto"-->
- <param name="client-ip" value="auto"/>
- <param name="client-port" value="5090"/>
- <param name="server-ip" value="10.5.5.152"/>
- <param name="server-port" value="5060"/>
- <!--param name="force-destination" value="1"/-->
- <param name="sip-transport" value="udp"/>
- <!--param name="ua-name" value="FreeSWITCH"/-->
- <!--param name="sdp-origin" value="FreeSWITCH"/-->
- <!--param name="rtp-ext-ip" value="auto"/-->
- <param name="rtp-ip" value="auto"/>
- <param name="rtp-port-min" value="4000"/>
- <param name="rtp-port-max" value="5000"/>
- <!-- enable/disable rtcp support -->
- <param name="rtcp" value="1"/>
- <!-- rtcp bye policies (rtcp must be enabled first)
- 0 - disable rtcp bye
- 1 - send rtcp bye at the end of session
- 2 - send rtcp bye also at the end of each talkspurt (input)
- -->
- <param name="rtcp-bye" value="2"/>
- <!-- rtcp transmission interval in msec (set 0 to disable) -->
- <param name="rtcp-tx-interval" value="5000"/>
- <!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
- <param name="rtcp-rx-resolution" value="1000"/>
- <!--param name="playout-delay" value="50"/-->
- <!--param name="max-playout-delay" value="200"/-->
- <!--param name="ptime" value="20"/-->
- <param name="codecs" value="PCMU PCMA L16/96/8000"/>
- <!-- Add any default MRCP params for SPEAK requests here -->
- <synthparams>
- </synthparams>
- <!-- Add any default MRCP params for RECOGNIZE requests here -->
- <recogparams>
- <!--param name="start-input-timers" value="false"/-->
- </recogparams>
- </profile>
- <!-- UniMRCP Server MRCPv1 -->
- <profile name="unimrcpserver-mrcp1" version="1">
- <param name="server-ip" value="10.5.5.152"/>
- <param name="server-port" value="1554"/>
- <param name="resource-location" value=""/>
- <param name="speechsynth" value="speechsynthesizer"/>
- <param name="speechrecog" value="speechrecognizer"/>
- <!--param name="rtp-ext-ip" value="auto"/-->
- <param name="rtp-ip" value="auto"/>
- <param name="rtp-port-min" value="4000"/>
- <param name="rtp-port-max" value="5000"/>
- <!--param name="playout-delay" value="50"/-->
- <!--param name="max-playout-delay" value="200"/-->
- <!--param name="ptime" value="20"/-->
- <param name="codecs" value="PCMU PCMA L16/96/8000"/>
- <!-- Add any default MRCP params for SPEAK requests here -->
- <synthparams>
- </synthparams>
- <!-- Add any default MRCP params for RECOGNIZE requests here -->
- <recogparams>
- <!--param name="start-input-timers" value="false"/-->
- </recogparams>
- </profile>
- <!-- Vestec VASRE MRCP Server -->
- <profile name="vestec-mrcp-v1" version="1">
- <param name="server-ip" value="127.0.0.1"/>
- <param name="server-port" value="1554"/>
- <param name="resource-location" value=""/>
- <param name="speechsynth" value="speechsynthesizer"/>
- <param name="speechrecog" value="speechrecognizer"/>
- <param name="rtp-ip" value="auto"/>
- <param name="rtp-port-min" value="14000"/>
- <param name="rtp-port-max" value="15000"/>
- <!--param name="playout-delay" value="50"/-->
- <!--param name="max-playout-delay" value="200"/-->
- <!--param name="ptime" value="20"/-->
- <param name="codecs" value="PCMU PCMA L16/96/8000"/>
- <!-- Add any default MRCP params for SPEAK requests here -->
- <synthparams>
- </synthparams>
- <!-- Add any default MRCP params for RECOGNIZE requests here -->
- <recogparams>
- <!--param name="start-input-timers" value="false"/-->
- </recogparams>
- </profile>
- <!-- Voxeo Prophecy 8.0 MRCPv1 -->
- <profile name="voxeo-prophecy8.0-mrcp1" version="1">
- <param name="server-ip" value="99.185.85.31"/>
- <param name="server-port" value="554"/>
- <param name="resource-location" value=""/>
- <param name="speechsynth" value="synthesizer"/>
- <param name="speechrecog" value="recognizer"/>
- <!--param name="rtp-ext-ip" value="auto"/-->
- <param name="rtp-ip" value="auto"/>
- <param name="rtp-port-min" value="4000"/>
- <param name="rtp-port-max" value="5000"/>
- <!--param name="playout-delay" value="50"/-->
- <!--param name="max-playout-delay" value="200"/-->
- <!--param name="ptime" value="20"/-->
- <param name="codecs" value="PCMU PCMA L16/96/8000"/>
- <!-- Add any default MRCP params for SPEAK requests here -->
- <synthparams>
- </synthparams>
- <!-- Add any default MRCP params for RECOGNIZE requests here -->
- <recogparams>
- <!--param name="start-input-timers" value="false"/-->
- </recogparams>
- </profile>
- </profiles>
- </configuration>
- <configuration name="v8.conf" description="Google V8 JavaScript Plug-Ins">
- <modules>
- <!-- <load module="mod_v8_skel"/> -->
- </modules>
- </configuration>
- <configuration name="verto.conf" description="HTML5 Verto Endpoint">
- <settings>
- <param name="debug" value="0"/>
- </settings>
- <profiles>
- <profile name="mine">
- <param name="bind-local" value="0.0.0.0:8081"/>
- <param name="bind-local" value="0.0.0.0:8082" secure="true"/>
- <param name="secure-combined" value="C:/Program Files/FreeSWITCH/cert/wss.pem"/>
- <param name="secure-chain" value="C:/Program Files/FreeSWITCH/cert/wss.pem"/>
- <param name="userauth" value="true"/>
- <!-- setting this to true will allow anyone to register even with no account so use with care -->
- <param name="blind-reg" value="false"/>
- <param name="mcast-ip" value="224.1.1.1"/>
- <param name="mcast-port" value="1337"/>
- <param name="rtp-ip" value="192.168.0.103"/>
- <!-- <param name="ext-rtp-ip" value=""/> -->
- <param name="local-network" value="localnet.auto"/>
- <param name="outbound-codec-string" value="opus,vp8"/>
- <param name="inbound-codec-string" value="opus,vp8"/>
- <param name="apply-candidate-acl" value="wan.auto"/>
- <param name="timer-name" value="soft"/>
- </profile>
- </profiles>
- </configuration>
- <configuration name="voicemail.conf" description="Voicemail">
- <settings>
- </settings>
- <profiles>
- <profile name="default">
- <param name="file-extension" value="wav"/>
- <param name="terminator-key" value="#"/>
- <param name="max-login-attempts" value="3"/>
- <param name="digit-timeout" value="10000"/>
- <param name="min-record-len" value="3"/>
- <param name="max-record-len" value="300"/>
- <param name="max-retries" value="3"/>
- <param name="tone-spec" value="%(1000, 0, 640)"/>
- <param name="callback-dialplan" value="XML"/>
- <param name="callback-context" value="default"/>
- <param name="play-new-messages-key" value="1"/>
- <param name="play-saved-messages-key" value="2"/>
- <!-- play-new-messages-lifo and play-saved-messages-lifo default is false, playing oldest messages first
- <param name="play-new-messages-lifo" value="false"/>
- <param name="play-saved-messages-lifo" value="false"/>
- -->
- <param name="login-keys" value="0"/>
- <param name="main-menu-key" value="0"/>
- <param name="config-menu-key" value="5"/>
- <param name="record-greeting-key" value="1"/>
- <param name="choose-greeting-key" value="2"/>
- <param name="change-pass-key" value="6"/>
- <param name="record-name-key" value="3"/>
- <param name="record-file-key" value="3"/>
- <param name="listen-file-key" value="1"/>
- <param name="save-file-key" value="2"/>
- <param name="delete-file-key" value="7"/>
- <param name="undelete-file-key" value="8"/>
- <param name="email-key" value="4"/>
- <param name="pause-key" value="0"/>
- <param name="restart-key" value="1"/>
- <param name="ff-key" value="6"/>
- <param name="rew-key" value="4"/>
- <param name="skip-greet-key" value="#"/>
- <param name="previous-message-key" value="1"/>
- <param name="next-message-key" value="3"/>
- <param name="skip-info-key" value="*"/>
- <param name="repeat-message-key" value="0"/>
- <param name="record-silence-threshold" value="200"/>
- <param name="record-silence-hits" value="2"/>
- <param name="web-template-file" value="web-vm.tpl"/>
- <param name="db-password-override" value="false"/>
- <param name="allow-empty-password-auth" value="true"/>
- <!-- if you need to change the sample rate of the recorded files e.g. gmail voicemail player -->
- <!--<param name="record-sample-rate" value="11025"/>-->
- <!-- the next two both must be set for this to be enabled
- the extension is in the format of <dest> [<dialplan>] [<context>]
- -->
- <param name="operator-extension" value="operator XML default"/>
- <param name="operator-key" value="9"/>
- <param name="vmain-extension" value="vmain XML default"/>
- <param name="vmain-key" value="*"/>
- <!-- playback created files as soon as they were recorded by default -->
- <!--<param name="auto-playback-recordings" value="true"/>-->
- <email>
- <param name="template-file" value="voicemail.tpl"/>
- <param name="notify-template-file" value="notify-voicemail.tpl"/>
- <!-- this is the format voicemail_time will have -->
- <param name="date-fmt" value="%A, %B %d %Y, %I %M %p"/>
- <param name="email-from" value="${voicemail_account}@${voicemail_domain}"/>
- </email>
- <!--<param name="storage-dir" value="C:/Program Files/FreeSWITCH/storage"/>-->
- <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
- <!--<param name="record-comment" value="Your Comment"/>-->
- <!--<param name="record-title" value="Your Title"/>-->
- <!--<param name="record-copyright" value="Your Copyright"/>-->
- </profile>
- </profiles>
- </configuration>
- <configuration name="voicemail_ivr.conf" description="Voicemail IVR">
- <profiles>
- <profile name="default">
- <settings>
- <param name="IVR-Maximum-Attempts" value="3" />
- <param name="IVR-Entry-Timeout" value="3000" />
- <param name="Record-Format" value="wav" />
- <!--<param name="Record-Sample-Rate" value="8000" />-->
- <param name="Record-Silence-Hits" value="4" />
- <param name="Record-Silence-Threshold" value="200" />
- <param name="Record-Maximum-Length" value="30" />
- <!--<param name="Record-Minimum-Length" value="3" />-->
- <param name="Exit-Purge" value="true" />
- <param name="Password-Mask" value="XXX." />
- <param name="User-Mask" value="X." />
- </settings>
- <apis>
- <api name="auth_login" value="vm_fsdb_auth_login" />
- <api name="msg_list" value="vm_fsdb_msg_list" />
- <api name="msg_count" value="vm_fsdb_msg_count" />
- <api name="msg_delete" value="vm_fsdb_msg_delete" />
- <api name="msg_undelete" value="vm_fsdb_msg_undelete" />
- <api name="msg_save" value="vm_fsdb_msg_save" />
- <api name="msg_purge" value="vm_fsdb_msg_purge" />
- <api name="msg_get" value="vm_fsdb_msg_get" />
- <api name="msg_forward" value="vm_fsdb_msg_forward" />
- <api name="pref_greeting_set" value="vm_fsdb_pref_greeting_set" />
- <api name="pref_greeting_get" value="vm_fsdb_pref_greeting_get" />
- <api name="pref_recname_set" value="vm_fsdb_pref_recname_set" />
- <api name="pref_password_set" value="vm_fsdb_pref_password_set" />
- </apis>
- <menus>
- <menu name="std_authenticate">
- <phrases>
- <phrase name="fail_auth" value="fail_auth@voicemail_ivr" />
- </phrases>
- <keys>
- </keys>
- </menu>
- <menu name="std_authenticate_ask_user">
- <phrases>
- <phrase name="instructions" value="enter_id@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
- </keys>
- </menu>
- <menu name="std_authenticate_ask_password">
- <phrases>
- <phrase name="instructions" value="enter_pass@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
- </keys>
- </menu>
- <menu name="std_main_menu">
- <settings>
- <param name="Action-On-New-Message" value="new_msg:std_navigator" />
- </settings>
- <phrases>
- <phrase name="msg_count" value="message_count@voicemail_ivr" />
- <phrase name="say_date" value="say_date_event@voicemail_ivr" />
- <phrase name="say_msg_number" value="say_message_number@voicemail_ivr" />
- <phrase name="menu_options" value="menu@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="1" action="new_msg:std_navigator" variable="VM-Key-Play-New-Messages" />
- <key dtmf="2" action="saved_msg:std_navigator" variable="VM-Key-Play-Saved-Messages" />
- <key dtmf="5" action="menu:std_preference" variable="VM-Key-Config-Menu"/>
- <key dtmf="#" action="return" variable="VM-Key-Terminator" />
- </keys>
- </menu>
- <menu name="std_navigator">
- <settings>
- <!--<param name="Nav-Action-On-Delete" value="next_msg" />-->
- </settings>
- <phrases>
- <phrase name="msg_count" value="message_count@voicemail_ivr" />
- <phrase name="say_date" value="say_date_event@voicemail_ivr" />
- <phrase name="say_msg_number" value="say_message_number@voicemail_ivr" />
- <phrase name="menu_options" value="listen_file_check@voicemail_ivr" />
- <phrase name="ack" value="ack@voicemail_ivr" />
- <phrase name="play_message" value="play_message@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="1" action="skip_intro" variable="VM-Key-Main-Listen-File" />
- <key dtmf="6" action="next_msg" variable="VM-Key-Main-Next-Msg" />
- <key dtmf="4" action="prev_msg" />
- <key dtmf="7" action="delete_msg" variable="VM-Key-Main-Delete-File" /> <!-- Same key for undelete if it already deleted -->
- <key dtmf="8" action="menu:std_forward" variable="VM-Key-Main-Forward" />
- <key dtmf="2" action="save_msg" variable="VM-Key-Main-Save-File" />
- <key dtmf="5" action="callback" variable="VM-Key-Main-Callback" />
- <key dtmf="#" action="return" /> <!-- TODO Might Conflict with future fast-forward -->
- </keys>
- </menu>
- <menu name="std_preference">
- <phrases>
- <phrase name="menu_options" value="config_menu@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="1" action="menu:std_record_greeting_with_slot" variable="VM-Key-Record-Greeting" />
- <key dtmf="2" action="menu:std_select_greeting_slot" variable="VM-Key-Choose-Greeting" />
- <key dtmf="3" action="menu:std_record_name" variable="VM-Key-Record-Name" />
- <key dtmf="6" action="menu:std_set_password" variable="VM-Key-Change-Password" />
- <key dtmf="0" action="return" variable="VM-Key-Main-Menu" />
- </keys>
- </menu>
- <menu name="std_record_greeting">
- <phrases>
- <phrase name="instructions" value="record_greeting@voicemail_ivr" />
- <phrase name="play_recording" value="play_recording@voicemail_ivr" />
- <phrase name="menu_options" value="record_file_check@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
- <key dtmf="2" action="save" variable="VM-Key-Save-File" />
- <key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
- <key dtmf="#" action="skip_instruction" />
- </keys>
- </menu>
- <menu name="std_record_name">
- <phrases>
- <phrase name="instructions" value="record_name@voicemail_ivr" />
- <phrase name="play_recording" value="play_recording@voicemail_ivr" />
- <phrase name="menu_options" value="record_file_check@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
- <key dtmf="2" action="save" variable="VM-Key-Save-File" />
- <key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
- <key dtmf="#" action="skip_instruction" />
- </keys>
- </menu>
- <menu name="std_record_message">
- <phrases>
- <phrase name="instructions" value="record_message@voicemail_ivr" />
- <phrase name="play_recording" value="play_recording@voicemail_ivr" />
- <phrase name="menu_options" value="record_file_check@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
- <key dtmf="2" action="save" variable="VM-Key-Save-File" />
- <key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
- <key dtmf="#" action="skip_instruction" />
- </keys>
- </menu>
- <menu name="std_forward_ask_prepend">
- <phrases>
- <phrase name="menu_options" value="forward_ask_prepend@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="1" action="prepend" variable="VM-Key-Prepend" />
- <key dtmf="8" action="forward" variable="VM-Key-Forward" />
- <key dtmf="#" action="return" variable="VM-Key-Return" />
- </keys>
- </menu>
- <menu name="std_forward_ask_extension">
- <phrases>
- <phrase name="instructions" value="forward_ask_extension@voicemail_ivr" />
- <phrase name="ack" value="ack@voicemail_ivr" />
- <phrase name="invalid_extension" value="invalid_extension@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
- </keys>
- </menu>
- <menu name="std_select_greeting_slot">
- <phrases>
- <phrase name="instructions" value="choose_greeting@voicemail_ivr" />
- <phrase name="invalid_slot" value="choose_greeting_fail@voicemail_ivr" />
- <phrase name="selected_slot" value="greeting_selected@voicemail_ivr" />
- </phrases>
- <keys>
- </keys>
- </menu>
- <menu name="std_record_greeting_with_slot">
- <phrases>
- <phrase name="instructions" value="choose_greeting@voicemail_ivr" />
- </phrases>
- <keys>
- </keys>
- </menu>
- <menu name="std_set_password">
- <phrases>
- <phrase name="instructions" value="enter_pass@voicemail_ivr" />
- </phrases>
- <keys>
- <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
- </keys>
- </menu>
- </menus>
- </profile>
- </profiles>
- </configuration>
- <configuration name="xml_cdr.conf" description="XML CDR CURL logger">
- <settings>
- <!-- the url to post to if blank web posting is disabled -->
- <!-- <param name="url" value="http://localhost/cdr_curl/post.php"/> -->
- <!-- optional: credentials to send to web server -->
- <!-- <param name="cred" value="user:pass"/> -->
- <!-- the total number of retries (not counting the first 'try') to post to webserver incase of failure -->
- <!-- <param name="retries" value="2"/> -->
- <!-- delay between retries in seconds, default is 5 seconds -->
- <!-- <param name="delay" value="1"/> -->
- <!-- Log via http and on disk, default is false -->
- <!-- <param name="log-http-and-disk" value="true"/> -->
- <!-- optional: if not present we do not log every record to disk -->
- <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank value will default to ${prefix}/logs/xml_cdr -->
- <param name="log-dir" value=""/>
- <!-- optional: if not present we do log the b leg -->
- <!-- true or false if we should create a cdr for the b leg of a call-->
- <param name="log-b-leg" value="false"/>
- <!-- optional: if not present, all filenames are the uuid of the call -->
- <!-- true or false if a leg files are prefixed "a_" -->
- <param name="prefix-a-leg" value="true"/>
- <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding, 'base64' for base64 encoding or 'textxml' for text/xml -->
- <param name="encode" value="true"/>
- <!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting -->
- <!--<param name="disable-100-continue" value="true"/>-->
- <!-- optional: full path to the error log dir for failed web posts if not specified its the same as log-dir -->
- <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank or omitted value will default to ${prefix}/logs/xml_cdr -->
- <!-- <param name="err-log-dir" value="C:/Users/Madhuri/AppData/Local/Temp"/> -->
- <!-- which auhtentification scheme to use. Supported values are: basic, digest, NTLM, GSS-NEGOTIATE or "any" for automatic detection -->
- <!--<param name="auth-scheme" value="basic"/>-->
- <!-- optional: this will enable the CA root certificate check by libcurl to
- verify that the certificate was issued by a major Certificate Authority.
- note: default value is disabled. only enable if you want this! -->
- <!--<param name="enable-cacert-check" value="true"/>-->
- <!-- optional: verify that the server is actually the one listed in the cert -->
- <!-- <param name="enable-ssl-verifyhost" value="true"/> -->
- <!-- optional: these options can be used to specify custom SSL certificates
- to use for HTTPS communications. Either use both options or neither.
- Specify your public key with 'ssl-cert-path' and the private key with
- 'ssl-key-path'. If your private key has a password, specify it with
- 'ssl-key-password'. -->
- <!-- <param name="ssl-cert-path" value="C:/Program Files/FreeSWITCH/cert/public_key.pem"/> -->
- <!-- <param name="ssl-key-path" value="C:/Program Files/FreeSWITCH/cert/private_key.pem"/> -->
- <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
- <!-- optional: use a custom CA certificate in PEM format to verify the peer
- with. This is useful if you are acting as your own certificate authority.
- note: only makes sense if used in combination with "enable-cacert-check." -->
- <!-- <param name="ssl-cacert-file" value="C:/Program Files/FreeSWITCH/cert/cacert.pem"/> -->
- <!-- optional: specify the SSL version to force HTTPS to use. Valid options are
- "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
- <!-- <param name="ssl-version" value="TLSv1"/> -->
- <!-- optional: enables cookies and stores them in the specified file. -->
- <!-- <param name="cookie-file" value="/C:/Users/Madhuri/AppData/Local/Temp/cookie-mod_xml_curl.txt"/> -->
- </settings>
- </configuration>
- <configuration name="xml_curl.conf" description="cURL XML Gateway">
- <bindings>
- <binding name="example">
- <!-- Allow to bind on a particular IP for requests sent -->
- <!--<param name="bind-local" value="192.168.0.103" />-->
- <!-- The url to a gateway cgi that can generate xml similar to
- what's in this file only on-the-fly (leave it commented if you dont
- need it) -->
- <!-- one or more |-delim of configuration|directory|dialplan -->
- <!-- <param name="gateway-url" value="http://www.freeswitch.org/gateway.xml" bindings="dialplan"/> -->
- <!-- set this to provide authentication credentials to the server -->
- <!--<param name="gateway-credentials" value="muser:mypass"/>-->
- <!--<param name="auth-scheme" value="basic"/>-->
- <!-- optional: this will enable the CA root certificate check by libcurl to
- verify that the certificate was issued by a major Certificate Authority.
- note: default value is disabled. only enable if you want this! -->
- <!--<param name="enable-cacert-check" value="true"/>-->
- <!-- optional: verify that the server is actually the one listed in the cert -->
- <!-- <param name="enable-ssl-verifyhost" value="true"/> -->
- <!-- optional: these options can be used to specify custom SSL certificates
- to use for HTTPS communications. Either use both options or neither.
- Specify your public key with 'ssl-cert-path' and the private key with
- 'ssl-key-path'. If your private key has a password, specify it with
- 'ssl-key-password'. -->
- <!-- <param name="ssl-cert-path" value="C:/Program Files/FreeSWITCH/cert/public_key.pem"/> -->
- <!-- <param name="ssl-key-path" value="C:/Program Files/FreeSWITCH/cert/private_key.pem"/> -->
- <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
- <!-- optional timeout -->
- <!-- <param name="timeout" value="10"/> -->
- <!-- optional: use a custom CA certificate in PEM format to verify the peer
- with. This is useful if you are acting as your own certificate authority.
- note: only makes sense if used in combination with "enable-cacert-check." -->
- <!-- <param name="ssl-cacert-file" value="C:/Program Files/FreeSWITCH/cert/cacert.pem"/> -->
- <!-- optional: specify the SSL version to force HTTPS to use. Valid options are
- "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
- <!-- <param name="ssl-version" value="TLSv1"/> -->
- <!-- optional: enables cookies and stores them in the specified file. -->
- <!-- <param name="cookie-file" value="C:/Users/Madhuri/AppData/Local/Temp/cookie-mod_xml_curl.txt"/> -->
- <!-- one or more of these imply you want to pick the exact variables that are transmitted -->
- <!--<param name="enable-post-var" value="Unique-ID"/>-->
- </binding>
- </bindings>
- </configuration>
- <configuration name="xml_rpc.conf" description="XML RPC">
- <settings>
- <!-- The port where you want to run the http service (default 8080) -->
- <param name="http-port" value="8080"/>
- <!-- if all 3 of the following params exist all http traffic will require auth -->
- <param name="auth-realm" value="freeswitch"/>
- <param name="auth-user" value="freeswitch"/>
- <param name="auth-pass" value="works"/>
- <!-- regex pattern to match against commands called against this service.
- If a command with arguments matches, it will be logged at INFO level -->
- <!--<param name="commands-to-log" value=""/> -->
- </settings>
- </configuration>
- <configuration name="xml_scgi.conf" description="SCGI XML Gateway">
- <bindings>
- <binding name="example">
- <!-- one or more |-delim of configuration|directory|dialplan -->
- <!-- <param name="host" value="127.0.0.1" bindings="dialplan"/> -->
- <!-- <param name="port" value="8080"/> -->
- <!-- <param name="timeout" value="10"/> -->
- <!-- one or more of these imply you want to pick the exact variables that are transmitted -->
- <!--<param name="enable-post-var" value="Unique-ID"/>-->
- </binding>
- </bindings>
- </configuration>
- <configuration name="zeroconf.conf" description="Zeroconf Event Handler">
- <settings>
- <param name="publish" value="yes"/>
- <param name="browse" value="_sip._udp"/>
- </settings>
- </configuration>
- </section>
- <section name="dialplan" description="Regex/XML Dialplan">
- <!--
- NOTICE:
- This context is usually accessed via authenticated callers on the sip profile on port 5060
- or transfered callers from the public context which arrived via the sip profile on port 5080.
- Authenticated users will use the user_context variable on the user to determine what context
- they can access. You can also add a user in the directory with the cidr= attribute acl.conf.xml
- will build the domains ACL using this value.
- -->
- <!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
- <context name="default">
- <extension name="unloop">
- <condition field="${unroll_loops}" expression="^true$"/>
- <condition field="${sip_looped_call}" expression="^true$">
- <action application="deflect" data="${destination_number}"/>
- </condition>
- </extension>
- <extension name="inbound-test">
- - <condition field="destination_number" expression="^1001$">
- <action application="set" data="call_timeout=10" />
- <action application="set" data="continue_on_fail=true" />
- <action application="set" data="continue_on_fail=NO_ANSWER,USER_BUSY" />
- <action application="set" data="hangup_after_bridge=true" />
- <action application="bridge" data="${group_call(sales@${domain_name})}" />
- <action application="bridge" data="group/support@${domain_name}" />
- <action application="bridge" data="group/billing@${domain_name}" />
- <action application="bridge" data="sofia/gateway/${default_gateway}/9322306212" />
- </condition>
- </extension>
- <!-- Example of doing things based on time of day.
- year = 4 digit year. Example year="2009"
- yday = 1-365
- mon = 1-12
- mday = 1-31
- week = 1-52
- mweek= 1-6
- wday = 1-7
- hour = 0-23
- minute = 0-59
- minute-of-day = 1-1440
- Example:
- <condition minute-of-day="540-1080"> (9am to 6pm EVERY day)
- do something ...
- </condition>
- -->
- <extension name="tod_example" continue="true">
- <condition wday="2-6" hour="9-18">
- <action application="set" data="open=true"/>
- </condition>
- </extension>
- <!-- Example of routing based on holidays
- This example covers all US Federal holidays except for inauguration day.
- -->
- <extension name="holiday_example" continue="true">
- <condition mday="1" mon="1">
- <!-- new year's day -->
- <action application="set" data="open=false"/>
- </condition>
- <condition wday="2" mweek="3" mon="1">
- <!-- martin luther king day is the 3rd monday in january -->
- <action application="set" data="open=false"/>
- </condition>
- <condition wday="2" mweek="3" mon="2">
- <!-- president's day is the 3rd monday in february -->
- <action application="set" data="open=false"/>
- </condition>
- <condition wday="2" mon="5" mday="25-31">
- <!-- memorial day is the last monday in may (the only monday between the 25th and the 31st) -->
- <action application="set" data="open=false"/>
- </condition>
- <condition mday="4" mon="7">
- <!-- independence day -->
- <action application="set" data="open=false"/>
- </condition>
- <condition wday="2" mday="1-7" mon="9">
- <!-- labor day is the 1st monday in september (the only monday between the 1st and the 7th) -->
- <action application="set" data="open=false"/>
- </condition>
- <condition wday="2" mweek="2" mon="10">
- <!-- columbus day is the 2nd monday in october -->
- <action application="set" data="open=false"/>
- </condition>
- <condition mday="11" mon="11">
- <!-- veteran's day -->
- <action application="set" data="open=false"/>
- </condition>
- <condition wday="5-6" mweek="4" mon="11">
- <!-- thanksgiving is the 4th thursday in november and usually there's an extension for black friday -->
- <action application="set" data="open=false"/>
- </condition>
- <condition mday="25" mon="12">
- <!-- Christmas -->
- <action application="set" data="open=false"/>
- </condition>
- </extension>
- <extension name="global-intercept">
- <condition field="destination_number" expression="^886$">
- <action application="answer"/>
- <action application="intercept" data="${hash(select/${domain_name}-last_dial_ext/global)}"/>
- <action application="sleep" data="2000"/>
- </condition>
- </extension>
- <extension name="group-intercept">
- <condition field="destination_number" expression="^\*8$">
- <action application="answer"/>
- <action application="intercept" data="${hash(select/${domain_name}-last_dial_ext/${callgroup})}"/>
- <action application="sleep" data="2000"/>
- </condition>
- </extension>
- <extension name="intercept-ext">
- <condition field="destination_number" expression="^\*\*(\d+)$">
- <action application="answer"/>
- <action application="intercept" data="${hash(select/${domain_name}-last_dial_ext/$1)}"/>
- <action application="sleep" data="2000"/>
- </condition>
- </extension>
- <extension name="redial">
- <condition field="destination_number" expression="^(redial|870)$">
- <action application="transfer" data="${hash(select/${domain_name}-last_dial/${caller_id_number})}"/>
- </condition>
- </extension>
- <extension name="global" continue="true">
- <condition field="${call_debug}" expression="^true$" break="never">
- <action application="info"/>
- </condition>
- <condition field="${default_password}" expression="^1234$" break="never">
- <action application="log" data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "/>
- <action application="log" data="CRIT Open C:/Program Files/FreeSWITCH/conf/vars.xml and change the default_password."/>
- <action application="log" data="CRIT Once changed type 'reloadxml' at the console."/>
- <action application="log" data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "/>
- <action application="sleep" data="10000"/>
- </condition>
- <!--
- This is an example of how to auto detect if telephone-event is missing and activate inband detection
- -->
- <!--
- <condition field="${switch_r_sdp}" expression="a=rtpmap:(\d+)\stelephone-event/8000" break="never">
- <action application="set" data="rtp_payload_number=$1"/>
- <anti-action application="start_dtmf"/>
- </condition>
- -->
- <condition field="${rtp_has_crypto}" expression="^(AEAD_AES_256_GCM_8|AEAD_AES_128_GCM_8|AES_CM_256_HMAC_SHA1_80|AES_CM_192_HMAC_SHA1_80|AES_CM_128_HMAC_SHA1_80|AES_CM_256_HMAC_SHA1_32|AES_CM_192_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_32|AES_CM_128_NULL_AUTH)$" break="never">
- <action application="set" data="rtp_secure_media=true"/>
- <!-- Offer SRTP on outbound legs if we have it on inbound. -->
- <!-- <action application="export" data="rtp_secure_media=true"/> -->
- </condition>
- <!--
- Since we have inbound-late-negotation on by default now the
- above behavior isn't the same so you have to do one extra step.
- -->
- <condition field="${endpoint_disposition}" expression="^(DELAYED NEGOTIATION)"/>
- <condition field="${switch_r_sdp}" expression="(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)" break="never">
- <action application="set" data="rtp_secure_media=true"/>
- <!-- Offer SRTP on outbound legs if we have it on inbound. -->
- <!-- <action application="export" data="rtp_secure_media=true"/> -->
- </condition>
- <condition>
- <action application="hash" data="insert/${domain_name}-spymap/${caller_id_number}/${uuid}"/>
- <action application="hash" data="insert/${domain_name}-last_dial/${caller_id_number}/${destination_number}"/>
- <action application="hash" data="insert/${domain_name}-last_dial/global/${uuid}"/>
- <action application="export" data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"/>
- </condition>
- </extension>
- <!-- If sip_req_host is not a local domain then this has to be an external sip uri -->
- <!--
- <extension name="external_sip_uri" continue="true">
- <condition field="source" expression="mod_sofia"/>
- <condition field="${outside_call}" expression="^$"/>
- <condition field="${domain_exists(${sip_req_host})}" expression="true">
- <anti-action application="bridge" data="sofia/${use_profile}/${sip_to_uri}"/>
- </condition>
- </extension>
- -->
- <!--
- Snom button demo, call 9000 to make button 2 mapped to transfer the current call to a conference
- -->
- <extension name="snom-demo-2">
- <condition field="destination_number" expression="^9001$">
- <action application="eval" data="${snom_bind_key(2 off DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message notused)}"/>
- <action application="transfer" data="3000"/>
- </condition>
- </extension>
- <extension name="snom-demo-1">
- <condition field="destination_number" expression="^9000$">
- <!--<key> <light> <label> <user> <host> <profile> <action_name> <action>-->
- <action application="eval" data="${snom_bind_key(2 on DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message api+uuid_transfer ${uuid} 9001)}"/>
- <action application="playback" data="local_stream://moh"/>
- </condition>
- </extension>
- <extension name="eavesdrop">
- <condition field="destination_number" expression="^88(\d{4})$|^\*0(.*)$">
- <action application="answer"/>
- <action application="eavesdrop" data="${hash(select/${domain_name}-spymap/$1$2)}"/>
- </condition>
- </extension>
- <extension name="eavesdrop">
- <condition field="destination_number" expression="^779$">
- <action application="answer"/>
- <action application="set" data="eavesdrop_indicate_failed=tone_stream://%(500, 0, 320)"/>
- <action application="set" data="eavesdrop_indicate_new=tone_stream://%(500, 0, 620)"/>
- <action application="set" data="eavesdrop_indicate_idle=tone_stream://%(250, 0, 920)"/>
- <action application="eavesdrop" data="all"/>
- </condition>
- </extension>
- <extension name="call_return">
- <condition field="destination_number" expression="^\*69$|^869$|^lcr$">
- <action application="transfer" data="${hash(select/${domain_name}-call_return/${caller_id_number})}"/>
- </condition>
- </extension>
- <extension name="del-group">
- <condition field="destination_number" expression="^80(\d{2})$">
- <action application="answer"/>
- <action application="group" data="delete:$1@${domain_name}:${sofia_contact(${sip_from_user}@${domain_name})}"/>
- <action application="gentones" data="%(1000, 0, 320)"/>
- </condition>
- </extension>
- <extension name="add-group">
- <condition field="destination_number" expression="^81(\d{2})$">
- <action application="answer"/>
- <action application="group" data="insert:$1@${domain_name}:${sofia_contact(${sip_from_user}@${domain_name})}"/>
- <action application="gentones" data="%(1000, 0, 640)"/>
- </condition>
- </extension>
- <extension name="call-group-simo">
- <condition field="destination_number" expression="^82(\d{2})$">
- <action application="bridge" data="{leg_timeout=15,ignore_early_media=true}${group(call:$1@${domain_name})}"/>
- </condition>
- </extension>
- <extension name="call-group-order">
- <condition field="destination_number" expression="^83(\d{2})$">
- <action application="bridge" data="{leg_timeout=15,ignore_early_media=true}${group(call:$1@${domain_name}:order)}"/>
- </condition>
- </extension>
- <extension name="extension-intercom">
- <condition field="destination_number" expression="^8(10[01][0-9])$">
- <action application="set" data="dialed_extension=$1"/>
- <action application="export" data="sip_auto_answer=true"/>
- <action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
- </condition>
- </extension>
- <!--
- dial the extension (1000-1019) for 30 seconds and go to voicemail if the
- call fails (continue_on_fail=true), otherwise hang up after a successful
- bridge (hangup_after_bridge=true)
- -->
- <extension name="Local_Extension">
- <condition field="destination_number" expression="^(10[01][0-9])$">
- <action application="export" data="dialed_extension=$1"/>
- <!-- bind_meta_app can have these args <key> [a|b|ab] [a|b|o|s] <app> -->
- <action application="bind_meta_app" data="1 b s execute_extension::dx XML features"/>
- <action application="bind_meta_app" data="2 b s record_session::C:/Program Files/FreeSWITCH/recordings/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
- <action application="bind_meta_app" data="3 b s execute_extension::cf XML features"/>
- <action application="bind_meta_app" data="4 b s execute_extension::att_xfer XML features"/>
- <action application="set" data="ringback=${us-ring}"/>
- <action application="set" data="transfer_ringback=local_stream://moh"/>
- <action application="set" data="call_timeout=30"/>
- <!-- <action application="set" data="sip_exclude_contact=${network_addr}"/> -->
- <action application="set" data="hangup_after_bridge=true"/>
- <!--<action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,USER_BUSY,NO_ANSWER,TIMEOUT,NO_ROUTE_DESTINATION"/> -->
- <action application="set" data="continue_on_fail=true"/>
- <action application="hash" data="insert/${domain_name}-call_return/${dialed_extension}/${caller_id_number}"/>
- <action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/>
- <action application="set" data="called_party_callgroup=${user_data(${dialed_extension}@${domain_name} var callgroup)}"/>
- <action application="hash" data="insert/${domain_name}-last_dial_ext/${called_party_callgroup}/${uuid}"/>
- <action application="hash" data="insert/${domain_name}-last_dial_ext/global/${uuid}"/>
- <!--<action application="export" data="nolocal:rtp_secure_media=${user_data(${dialed_extension}@${domain_name} var rtp_secure_media)}"/>-->
- <action application="hash" data="insert/${domain_name}-last_dial/${called_party_callgroup}/${uuid}"/>
- <action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
- <action application="answer"/>
- <action application="sleep" data="1000"/>
- <action application="bridge" data="loopback/app=voicemail:default ${domain_name} ${dialed_extension}"/>
- </condition>
- </extension>
- <extension name="Local_Extension_Skinny">
- <condition field="destination_number" expression="^(11[01][0-9])$">
- <action application="set" data="dialed_extension=$1"/>
- <action application="export" data="dialed_extension=$1"/>
- <action application="set" data="call_timeout=30"/>
- <action application="set" data="hangup_after_bridge=true"/>
- <action application="set" data="continue_on_fail=true"/>
- <action application="bridge" data="skinny/internal/${destination_number}"/>
- <action application="answer"/>
- <action application="sleep" data="1000"/>
- <action application="bridge" data="loopback/app=voicemail:default ${domain_name} ${dialed_extension}"/>
- </condition>
- </extension>
- <extension name="group_dial_sales">
- <condition field="destination_number" expression="^2000$">
- <action application="bridge" data="${group_call(sales@${domain_name})}"/>
- </condition>
- </extension>
- <extension name="group_dial_support">
- <condition field="destination_number" expression="^2001$">
- <action application="bridge" data="group/support@${domain_name}"/>
- </condition>
- </extension>
- <extension name="group_dial_billing">
- <condition field="destination_number" expression="^2002$">
- <action application="bridge" data="group/billing@${domain_name}"/>
- </condition>
- </extension>
- <!-- voicemail operator extension -->
- <extension name="operator">
- <condition field="destination_number" expression="^(operator|0)$">
- <action application="set" data="transfer_ringback=local_stream://moh"/>
- <action application="transfer" data="1000 XML features"/>
- </condition>
- </extension>
- <!-- voicemail main extension -->
- <extension name="vmain">
- <condition field="destination_number" expression="^vmain$|^4000$|^\*98$">
- <action application="answer"/>
- <action application="sleep" data="1000"/>
- <action application="voicemail" data="check default ${domain_name}"/>
- </condition>
- </extension>
- <!--
- This extension is used by mod_portaudio so you can pa call sip:someone@example.com
- mod_portaudio will pass the entire string to the dialplan for routing.
- -->
- <extension name="sip_uri">
- <condition field="destination_number" expression="^sip:(.*)$">
- <action application="bridge" data="sofia/${use_profile}/$1"/>
- </condition>
- </extension>
- <!--
- start a dynamic conference with the settings of the "default" conference profile in conference.conf.xml
- -->
- <extension name="nb_conferences">
- <condition field="destination_number" expression="^(30\d{2})$">
- <action application="answer"/>
- <action application="conference" data="$1-${domain_name}@default"/>
- </condition>
- </extension>
- <extension name="wb_conferences">
- <condition field="destination_number" expression="^(31\d{2})$">
- <action application="answer"/>
- <action application="conference" data="$1-${domain_name}@wideband"/>
- </condition>
- </extension>
- <extension name="uwb_conferences">
- <condition field="destination_number" expression="^(32\d{2})$">
- <action application="answer"/>
- <action application="conference" data="$1-${domain_name}@ultrawideband"/>
- </condition>
- </extension>
- <!-- MONO 48kHz conferences -->
- <extension name="cdquality_conferences">
- <condition field="destination_number" expression="^(33\d{2})$">
- <action application="answer"/>
- <action application="conference" data="$1-${domain_name}@cdquality"/>
- </condition>
- </extension>
- <!-- dial the FreeSWITCH conference via SIP-->
- <extension name="freeswitch_public_conf_via_sip">
- <condition field="destination_number" expression="^9(888|8888|1616|3232)$">
- <action application="export" data="hold_music=silence"/>
- <!--
- This will take the SAS from the b-leg and send it to the display on the a-leg phone.
- Known working with Polycom and Snom maybe others.
- -->
- <!--
- <action application="set" data="exec_after_bridge_app=${sched_api(+4 zrtp expand uuid_display ${uuid} \${uuid_getvar(\${uuid_getvar(${uuid} signal_bond)} zrtp_sas1_string )} \${uuid_getvar(\${uuid_getvar(${uuid} signal_bond)} zrtp_sas2_string )} )}"/>
- <action application="export" data="nolocal:zrtp_secure_media=true"/>
- -->
- <action application="bridge" data="sofia/${use_profile}/$1@conference.freeswitch.org"/>
- </condition>
- </extension>
- <!--
- This extension will start a conference and invite a group.
- At anytime the participant can dial *2 to bridge directly to the boss.
- All other callers are then hung up on.
- -->
- <extension name="mad_boss_intercom">
- <condition field="destination_number" expression="^0911$">
- <action application="set" data="conference_auto_outcall_caller_id_name=Mad Boss1"/>
- <action application="set" data="conference_auto_outcall_caller_id_number=0911"/>
- <action application="set" data="conference_auto_outcall_timeout=60"/>
- <action application="set" data="conference_auto_outcall_flags=mute"/>
- <action application="set" data="conference_auto_outcall_prefix={sip_auto_answer=true,execute_on_answer='bind_meta_app 2 a s1 transfer::intercept:${uuid} inline'}"/>
- <action application="set" data="sip_exclude_contact=${network_addr}"/>
- <action application="conference_set_auto_outcall" data="${group_call(sales)}"/>
- <action application="conference" data="madboss_intercom1@default+flags{endconf|deaf}"/>
- </condition>
- </extension>
- <!--
- This extension will start a conference and invite a few of people.
- At anytime the participant can dial *2 to bridge directly to the boss.
- All other callers are then hung up on.
- -->
- <extension name="mad_boss_intercom">
- <condition field="destination_number" expression="^0912$">
- <action application="set" data="conference_auto_outcall_caller_id_name=Mad Boss2"/>
- <action application="set" data="conference_auto_outcall_caller_id_number=0912"/>
- <action application="set" data="conference_auto_outcall_timeout=60"/>
- <action application="set" data="conference_auto_outcall_flags=mute"/>
- <action application="set" data="conference_auto_outcall_prefix={sip_auto_answer=true,execute_on_answer='bind_meta_app 2 a s1 transfer::intercept:${uuid} inline'}"/>
- <action application="set" data="sip_exclude_contact=${network_addr}"/>
- <action application="conference_set_auto_outcall" data="loopback/9664"/>
- <action application="conference" data="madboss_intercom2@default+flags{endconf|deaf}"/>
- </condition>
- </extension>
- <!--This extension will start a conference and invite several people upon entering -->
- <extension name="mad_boss">
- <condition field="destination_number" expression="^0913$">
- <!--These params effect the outcalls made once you join-->
- <action application="set" data="conference_auto_outcall_caller_id_name=Mad Boss"/>
- <action application="set" data="conference_auto_outcall_caller_id_number=0911"/>
- <action application="set" data="conference_auto_outcall_timeout=60"/>
- <action application="set" data="conference_auto_outcall_flags=none"/>
- <!--<action application="set" data="conference_auto_outcall_announce=say:You have been called into an emergency conference"/>-->
- <!--Add as many of these as you need, These are the people you are going to call-->
- <action application="conference_set_auto_outcall" data="loopback/9664"/>
- <action application="conference" data="madboss3@default"/>
- </condition>
- </extension>
- <!-- a sample IVR -->
- <extension name="ivr_demo">
- <condition field="destination_number" expression="^5000$">
- <action application="answer"/>
- <action application="sleep" data="2000"/>
- <action application="ivr" data="demo_ivr"/>
- </condition>
- </extension>
- <!-- Create a conference on the fly and pull someone in at the same time. -->
- <extension name="dynamic_conference">
- <condition field="destination_number" expression="^5001$">
- <action application="conference" data="bridge:mydynaconf:sofia/${use_profile}/1234@conference.freeswitch.org"/>
- </condition>
- </extension>
- <extension name="rtp_multicast_page">
- <condition field="destination_number" expression="^pagegroup$|^7243$">
- <action application="answer"/>
- <action application="esf_page_group"/>
- </condition>
- </extension>
- <!--
- Parking extensions... transferring calls to 5900 will park them in a queue.
- -->
- <extension name="park">
- <condition field="destination_number" expression="^5900$">
- <action application="set" data="fifo_music=local_stream://moh"/>
- <action application="fifo" data="5900@${domain_name} in"/>
- </condition>
- </extension>
- <!--
- Parking pickup extension. Calling 5901 will pickup the call.
- -->
- <extension name="unpark">
- <condition field="destination_number" expression="^5901$">
- <action application="answer"/>
- <action application="fifo" data="5900@${domain_name} out nowait"/>
- </condition>
- </extension>
- <!--
- Valet park retrieval, works with valet_park extension below.
- Retrieve a valet parked call by dialing 6000 + park number + #
- -->
- <extension name="valet_park">
- <condition field="destination_number" expression="^(6000)$">
- <action application="answer"/>
- <action application="valet_park" data="valet_parking_lot ask 1 11 10000 ivr/ivr-enter_ext_pound.wav"/>
- </condition>
- </extension>
- <!--
- Valet park 6001-6099. Blind x-fer to 6001, 6002, etc. to valet park the call.
- Dial 6001, 6002, etc. to retrieve a call that is already valet parked.
- After call is retrieved, park extension is free for another call.
- -->
- <extension name="valet_park">
- <condition field="destination_number" expression="^((?!6000)60\d{2})$">
- <action application="answer"/>
- <action application="valet_park" data="valet_parking_lot $1"/>
- </condition>
- </extension>
- <!--
- This extension is used with Snom phones.
- Set a function key to park+lot (lot being a number or name.)
- Set type to Park+Orbit. You can then park and pickup using
- the softkey on the phone. Should work with other phones.
- -->
- <extension name="park">
- <condition field="source" expression="mod_sofia"/>
- <condition field="destination_number" expression="park\+(\d+)">
- <action application="fifo" data="$1@${domain_name} in undef local_stream://moh"/>
- </condition>
- </extension>
- <!--
- The extension is parking pickup with a to param of the fifo we are calling
- Some phones send things like orbit= and you can extract that info.
- -->
- <extension name="unpark">
- <condition field="source" expression="mod_sofia"/>
- <condition field="destination_number" expression="^parking$"/>
- <condition field="${sip_to_params}" expression="fifo\=(\d+)">
- <action application="answer"/>
- <action application="fifo" data="$1@${domain_name} out nowait"/>
- </condition>
- </extension>
- <!--
- This extension is used with Linksys phones.
- Set a Phone tab option Call Park Serv to yes. You can park and
- pickup using soft keys "park" and "unpark" found during
- active call when moving navigation button. The other option
- is to use phone's star codes (defaults to *38 and *39).
- -->
- <extension name="park">
- <condition field="source" expression="mod_sofia"/>
- <condition field="destination_number" expression="callpark"/>
- <condition field="${sip_refer_to}">
- <expression><![CDATA[<sip:callpark@${domain_name};orbit=(\d+)>]]></expression>
- <action application="fifo" data="$1@${domain_name} in undef local_stream://moh"/>
- </condition>
- </extension>
- <!--
- This extension is used with Linksys phones.
- The extension is parking pickup with a to param of the fifo
- we are calling. Linksys sends orbit=<parkingslotnumber>
- and we extract that info.
- -->
- <extension name="unpark">
- <condition field="source" expression="mod_sofia"/>
- <condition field="destination_number" expression="pickup"/>
- <condition field="${sip_to_params}" expression="orbit\=(\d+)">
- <action application="answer"/>
- <action application="fifo" data="$1@${domain_name} out nowait"/>
- </condition>
- </extension>
- <!--
- Here are some examples of how to override the ringback heard by the
- far end. You have two variables that you can use to override this.
- ringback - used when a call isn't answered. (early media)
- transfer_ringback - used when the call is already answered. (post answer)
- -->
- <!-- Demonstration of how to override the ringback in various situations -->
- <extension name="wait">
- <condition field="destination_number" expression="^wait$">
- <action application="pre_answer"/>
- <action application="sleep" data="20000"/>
- <action application="answer"/>
- <action application="sleep" data="1000"/>
- <action application="playback" data="voicemail/vm-goodbye.wav"/>
- <action application="hangup"/>
- </condition>
- </extension>
- <extension name="fax_receive">
- <condition field="destination_number" expression="^9178$">
- <action application="answer" />
- <action application="playback" data="silence_stream://2000"/>
- <action application="rxfax" data="C:/Users/Madhuri/AppData/Local/Temp/rxfax.tif"/>
- <action application="hangup"/>
- </condition>
- </extension>
- <extension name="fax_transmit">
- <condition field="destination_number" expression="^9179$">
- <action application="txfax" data="C:/Users/Madhuri/AppData/Local/Temp/txfax.tif"/>
- <action application="hangup"/>
- </condition>
- </extension>
- <!-- Send a 180 and let the far end generate ringback. -->
- <extension name="ringback_180">
- <condition field="destination_number" expression="^9180$">
- <action application="ring_ready"/>
- <action application="sleep" data="20000"/>
- <action application="answer"/>
- <action application="sleep" data="1000"/>
- <action application="playback" data="voicemail/vm-goodbye.wav"/>
- <action application="hangup"/>
- </condition>
- </extension>
- <!-- Send a 183 and send uk-ring as the ringtone. (early media) -->
- <extension name="ringback_183_uk_ring">
- <condition field="destination_number" expression="^9181$">
- <action application="set" data="ringback=%(400,200,400,450);%(400,2000,400,450)"/>
- <action application="bridge" data="{ignore_early_media=true}loopback/wait"/>
- </condition>
- </extension>
- <!-- Send a 183 and use music as the ringtone. (early media) -->
- <extension name="ringback_183_music_ring">
- <condition field="destination_number" expression="^9182$">
- <action application="set" data="ringback=local_stream://moh"/>
- <action application="bridge" data="{ignore_early_media=true}loopback/wait"/>
- </condition>
- </extension>
- <!-- Answer the call and use music as the ringtone. (post answer) -->
- <extension name="ringback_post_answer_uk_ring">
- <condition field="destination_number" expression="^9183$">
- <action application="set" data="transfer_ringback=%(400,200,400,450);%(400,2000,400,450)"/>
- <action application="answer"/>
- <action application="bridge" data="{ignore_early_media=true}loopback/wait"/>
- </condition>
- </extension>
- <!-- Answer the call and use music as the ringtone. (post answer) -->
- <extension name="ringback_post_answer_music">
- <condition field="destination_number" expression="^9184$">
- <action application="set" data="transfer_ringback=local_stream://moh"/>
- <action application="answer"/>
- <action application="bridge" data="{ignore_early_media=true}loopback/wait"/>
- </condition>
- </extension>
- <extension name="ClueCon">
- <condition field="destination_number" expression="^9191$">
- <action application="set" data="effective_caller_id_name=ClueCon IVR"/>
- <action application="bridge" data="sofia/192.168.0.103/2000@bkw.org"/>
- </condition>
- </extension>
- <extension name="show_info">
- <condition field="destination_number" expression="^9192$">
- <action application="answer"/>
- <action application="info"/>
- <action application="sleep" data="250"/>
- <action application="hangup"/>
- </condition>
- </extension>
- <extension name="video_record">
- <condition field="destination_number" expression="^9193$">
- <action application="answer"/>
- <action application="record_fsv" data="C:/Users/Madhuri/AppData/Local/Temp/testrecord.fsv"/>
- </condition>
- </extension>
- <extension name="video_playback">
- <condition field="destination_number" expression="^9194$">
- <action application="answer"/>
- <action application="play_fsv" data="C:/Users/Madhuri/AppData/Local/Temp/testrecord.fsv"/>
- </condition>
- </extension>
- <extension name="delay_echo">
- <condition field="destination_number" expression="^9195$">
- <action application="answer"/>
- <action application="delay_echo" data="5000"/>
- </condition>
- </extension>
- <extension name="echo">
- <condition field="destination_number" expression="^9196$">
- <action application="answer"/>
- <action application="echo"/>
- </condition>
- </extension>
- <extension name="milliwatt">
- <condition field="destination_number" expression="^9197$">
- <action application="answer"/>
- <action application="playback" data="{loops=-1}tone_stream://%(251,0,1004)"/>
- </condition>
- </extension>
- <extension name="tone_stream">
- <condition field="destination_number" expression="^9198$">
- <action application="answer"/>
- <action application="playback" data="{loops=10}tone_stream://path=${conf_dir}/tetris.ttml"/>
- </condition>
- </extension>
- <!-- install zrtp_agent.lua into scripts (ZRTP == 9787) -->
- <extension name="zrtp_enrollement">
- <condition field="destination_number" expression="^9787$">
- <action application="lua" data="zrtp_agent.lua"/>
- </condition>
- </extension>
- <!--
- You will no longer hear the bong tone. The wav file is playing stating the call is secure.
- The file will not play unless you have both TLS and SRTP active.
- -->
- <extension name="hold_music">
- <condition field="destination_number" expression="^9664$"/>
- <condition field="${rtp_has_crypto}" expression="^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$">
- <action application="answer"/>
- <action application="execute_extension" data="is_secure XML features"/>
- <action application="playback" data="local_stream://moh"/>
- <anti-action application="set" data="zrtp_secure_media=true"/>
- <anti-action application="answer"/>
- <anti-action application="playback" data="silence_stream://2000"/>
- <anti-action application="execute_extension" data="is_zrtp_secure XML features"/>
- <anti-action application="playback" data="local_stream://moh"/>
- </condition>
- </extension>
- <extension name="laugh break">
- <condition field="destination_number" expression="^9386$">
- <action application="answer"/>
- <action application="sleep" data="1500"/>
- <action application="playback" data="phrase:funny_prompts"/>
- <action application="hangup"/>
- </condition>
- </extension>
- <!--
- You can place files in the default directory to get included.
- -->
- <extension name="101">
- <condition field="destination_number" expression="^101$">
- <!-- AUTOTALENT DEFAULTS -->
- <!--
- <action application="set" data="AT_TUNE=440"/>
- <action application="set" data="AT_FIXED=0"/>
- <action application="set" data="AT_PULL=0"/>
- <action application="set" data="AT_A=0"/>
- <action application="set" data="AT_Bb=-1"/>
- <action application="set" data="AT_B=0"/>
- <action application="set" data="AT_C=0"/>
- <action application="set" data="AT_Db=-1"/>
- <action application="set" data="AT_D=0"/>
- <action application="set" data="AT_Eb=-1"/>
- <action application="set" data="AT_E=0"/>
- <action application="set" data="AT_F=0"/>
- <action application="set" data="AT_Gb=-1"/>
- <action application="set" data="AT_G=0"/>
- <action application="set" data="AT_Ab=-1"/>
- <action application="set" data="AT_AMOUNT=1"/>
- <action application="set" data="AT_SMOOTH=0"/>
- <action application="set" data="AT_SHIFT=0"/>
- <action application="set" data="AT_OUTSCALE=0"/>
- <action application="set" data="AT_LFODEPTH=0"/>
- <action application="set" data="AT_LFORATE=5"/>
- <action application="set" data="AT_LFOSHAPE=0"/>
- <action application="set" data="AT_LFOSYMM=0"/>
- <action application="set" data="AT_LFOQUANT=0"/>
- <action application="set" data="AT_FCORR=0"/>
- <action application="set" data="AT_FWARP=0"/>
- <action application="set" data="AT_MIX=1"/>
- -->
- <action application="set" data="AT_TUNE=440"/>
- <action application="set" data="AT_FIXED=0"/>
- <action application="set" data="AT_PULL=0"/>
- <action application="set" data="AT_AMOUNT=1"/>
- <action application="set" data="AT_SMOOTH=0"/>
- <action application="set" data="AT_SHIFT=1"/>
- <action application="set" data="AT_OUTSCALE=0"/>
- <action application="set" data="AT_LFODEPTH=0"/>
- <action application="set" data="AT_LFORATE=5"/>
- <action application="set" data="AT_LFOSHAPE=0"/>
- <action application="set" data="AT_LFOSYMM=0"/>
- <action application="set" data="AT_LFOQUANT=0"/>
- <action application="set" data="AT_FCORR=0"/>
- <action application="set" data="AT_FWARP=0"/>
- <action application="set" data="AT_MIX=1"/>
- <!-- you have to download the ladspa package and the desired plugins from their desired site -->
- <action application="set"><![CDATA[ladspa_params=${AT_TUNE} ${AT_FIXED} ${AT_PULL} ${AT_EPENT2} ${AT_AMOUNT} ${AT_SMOOTH} ${AT_SHIFT} ${AT_OUTSCALE} ${AT_LFODEPTH} ${AT_LFORATE} ${AT_LFOSHAPE} ${AT_LFOSYMM} ${AT_LFOQUANT} ${AT_FCORR} ${AT_FWARP} ${AT_MIX}]]></action>
- <action application="ladspa_run" data="r|autotalent||${ladspa_params}"/>
- <action application="ladspa_run" data="r|tap_chorusflanger||"/>
- <action application="ladspa_run" data="r|phasers_1217.so|autoPhaser|"/>
- <action application="bridge" data="sofia/internal/888@conference.freeswitch.org"/>
- </condition>
- </extension>
- <extension name="pizza_demo">
- <condition field="destination_number" expression="^(pizza|74992)$"/>
- <condition field="${module_exists(mod_v8)}" expression="true"/>
- <condition field="${module_exists(mod_pocketsphinx)}" expression="true">
- <action application="javascript" data="ps_pizza.js"/>
- </condition>
- </extension>
- <extension name="Talking Clock Time" ><!--e.g. 10:56pm-->
- <condition field="destination_number" expression="^9170$">
- <action application="answer"/>
- <action application="sleep" data="1000"/>
- <action application="say" data="en CURRENT_TIME pronounced
- ${strepoch()}"/>
- <action application="hangup"/>
- </condition>
- </extension>
- <extension name="Talking Clock Date" ><!--e.g. March 8, 2011-->
- <condition field="destination_number" expression="^9171$">
- <action application="answer"/>
- <action application="sleep" data="1000"/>
- <action application="say" data="en CURRENT_DATE pronounced
- ${strepoch()}"/>
- <action application="hangup"/>
- </condition>
- </extension>
- <extension name="Talking Clock Date and Time" ><!--e.g. March 8, 2011
- 10:56pm-->
- <condition field="destination_number" expression="^9172$">
- <action application="answer"/>
- <action application="sleep" data="1000"/>
- <action application="say" data="en CURRENT_DATE_TIME pronounced
- ${strepoch()}"/>
- <action application="hangup"/>
- </condition>
- </extension>
- <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{10,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>
- <!--
- <extension name="refer">
- <condition field="${sip_refer_to}">
- <expression><![CDATA[<sip:${destination_number}@${domain_name}>]]></expression>
- </condition>
- <condition field="${sip_refer_to}">
- <expression><![CDATA[<sip:(.*)@(.*)>]]></expression>
- <action application="set" data="refer_user=$1"/>
- <action application="set" data="refer_domain=$2"/>
- <action application="info"/>
- <action application="bridge" data="sofia/${use_profile}/${refer_user}@${refer_domain}"/>
- </condition>
- </extension>
- -->
- <!--
- This is an example of how to override the RURI on an outgoing invite to a registered contact.
- -->
- <!--
- <extension name="ruri">
- <condition field="destination_number" expression="^ruri$">
- <action application="bridge" data="sofia/${ruri_profile}/${ruri_user}${regex(${sofia_contact(${ruri_contact})}|^[^\@]+(.*)|%1)}"/>
- </condition>
- </extension>
- <extension name="7004">
- <condition field="destination_number" expression="^7004$">
- <action application="set" data="ruri_profile=default"/>
- <action application="set" data="ruri_user=2000"/>
- <action application="set" data="ruri_contact=1001@${domain_name}"/>
- <action application="execute_extension" data="ruri"/>
- </condition>
- </extension>
- -->
- <extension name="enum">
- <condition field="${module_exists(mod_enum)}" expression="true"/>
- <condition field="destination_number" expression="^(.*)$">
- <action application="transfer" data="$1 enum"/>
- </condition>
- </extension>
- </context>
- <!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
- <context name="features">
- <!-- In call Transfer for phones without a transfer button -->
- <extension name="dx">
- <condition field="destination_number" expression="^dx$">
- <action application="answer"/>
- <action application="read" data="11 11 'tone_stream://%(10000,0,350,440)' digits 5000 #"/>
- <action application="execute_extension" data="is_transfer XML features"/>
- </condition>
- </extension>
- <extension name="att_xfer">
- <condition field="destination_number" expression="^att_xfer$">
- <action application="read" data="3 4 'tone_stream://%(10000,0,350,440)' digits 30000 #"/>
- <action application="set" data="origination_cancel_key=#"/>
- <action application="att_xfer" data="user/${digits}@192.168.0.103"/>
- </condition>
- </extension>
- <extension name="is_transfer">
- <condition field="destination_number" expression="^is_transfer$"/>
- <condition field="${digits}" expression="^(\d+)$">
- <action application="transfer" data="-bleg ${digits} XML default"/>
- <anti-action application="eval" data="cancel transfer"/>
- </condition>
- </extension>
- <!-- Used to transfer both legs into a conference -->
- <extension name="cf">
- <condition field="destination_number" expression="^cf$">
- <action application="answer"/>
- <action application="transfer" data="-both 30${dialed_extension:2} XML default"/>
- </condition>
- </extension>
- <extension name="please_hold">
- <condition field="destination_number" expression="^(10[01][0-9])$">
- <action application="set" data="transfer_ringback=local_stream://moh"/>
- <action application="answer"/>
- <action application="sleep" data="1500"/>
- <action application="playback" data="ivr/ivr-hold_connect_call.wav"/>
- <action application="transfer" data="$1 XML default"/>
- </condition>
- </extension>
- <extension name="is_zrtp_secure" continue="true">
- <condition field="${zrtp_secure_media_confirmed}" expression="^true$">
- <action application="sleep" data="1000"/>
- <action application="playback" data="misc/call_secured.wav"/>
- <anti-action application="eval" data="not_secure"/>
- </condition>
- </extension>
- <extension name="is_secure" continue="true">
- <!-- Only Truly consider it secure if its TLS and SRTP -->
- <condition field="${sip_via_protocol}" expression="tls"/>
- <condition field="${rtp_secure_media_confirmed}" expression="^true$">
- <action application="sleep" data="1000"/>
- <action application="playback" data="misc/call_secured.wav"/>
- <anti-action application="eval" data="not_secure"/>
- </condition>
- </extension>
- </context>
- <!--
- NOTICE:
- This context is usually accessed via the external sip profile listening on port 5080.
- It is recommended to have separate inbound and outbound contexts. Not only for security
- but clearing up why you would need to do such a thing. You don't want outside un-authenticated
- callers hitting your default context which allows dialing calls thru your providers and results
- in Toll Fraud.
- -->
- <!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
- <context name="public">
- <extension name="unloop">
- <condition field="${unroll_loops}" expression="^true$"/>
- <condition field="${sip_looped_call}" expression="^true$">
- <action application="deflect" data="${destination_number}"/>
- </condition>
- </extension>
- <!--
- Tag anything pass thru here as an outside_call so you can make sure not
- to create any routing loops based on the conditions that it came from
- the outside of the switch.
- -->
- <extension name="outside_call" continue="true">
- <condition>
- <action application="set" data="outside_call=true"/>
- <action application="export" data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"/>
- </condition>
- </extension>
- <extension name="call_debug" continue="true">
- <condition field="${call_debug}" expression="^true$" break="never">
- <action application="info"/>
- </condition>
- </extension>
- <extension name="public_extensions">
- <condition field="destination_number" expression="^(10[01][0-9])$">
- <action application="transfer" data="$1 XML default"/>
- </condition>
- </extension>
- <!--
- You can place files in the public directory to get included.
- -->
- <extension name="public_did">
- <condition field="destination_number" expression="^(5551212)$">
- <!--
- If you're hosting multiple domains you will want to set the
- target_domain on these calls so they hit the proper domain after you
- transfer the caller into the default context.
- 192.168.0.103 is the default domain set from vars.xml but you can set it
- to any domain you have setup in your user directory.
- -->
- <action application="set" data="domain_name=192.168.0.103"/>
- <!-- This example maps the DID 5551212 to ring 1000 in the default context -->
- <action application="transfer" data="1004 XML default"/>
- </condition>
- </extension>
- <extension name="inbound-test">
- <condition field="destination_number" expression="^1001$">
- <action application="set" data="call_timeout=10"/>
- <action application="set" data="continue_on_fail=true"/>
- <action application="set" data="continue_on_fail=NO_ANSWER,USER_BUSY"/>
- <action application="set" data="hangup_after_bridge=true"/>
- <action application="bridge" data="${group_call(sales@${domain_name})}" />
- <action application="bridge" data="group/support@${domain_name}" />
- <action application="bridge" data="group/billing@${domain_name}" />
- <action application="bridge" data="sofia/external/9322306212"/>
- </condition>
- </extension>
- <!--
- If you have made it this far lets challenge the caller and if they authenticate
- lets try what they dialed in the default context. (commented out by default)
- -->
- <!--
- <extension name="check_auth" continue="true">
- <condition field="${sip_authorized}" expression="^true$" break="never">
- <anti-action application="respond" data="407"/>
- </condition>
- </extension>
- <extension name="transfer_to_default">
- <condition>
- <action application="transfer" data="${destination_number} XML default"/>
- </condition>
- </extension>
- -->
- </context>
- <!--
- NOTICE:
- This context is used for skinny to match dialed number
- The special applications:
- - skinny-process tells skinny to process the call (route, set call forwarding, ...)
- - skinny-drop tells skinny to drop the call
- - skinny-wait tells skinny to wait 'data' seconds for more numbers before drop
- -->
- <!-- http://wiki.freeswitch.org/wiki/Mod_skinny -->
- <context name="skinny-patterns">
- <!--
- Wait 10 seconds for another digit by default, if data not specified, uses profile default
- -->
- <extension name="Default">
- <condition>
- <action application="skinny-wait" data="10"/>
- </condition>
- </extension>
- <!--
- You can place files in the skinny-patterns directory to get included.
- -->
- <extension name="Demo">
- <condition field="destination_number" expression="^(9[0-9]{3})$">
- <action application="skinny-process"/>
- </condition>
- </extension>
- <extension name="Local_Extension">
- <condition field="destination_number" expression="^(10[01][0-9])$">
- <action application="skinny-process"/>
- </condition>
- </extension>
- <extension name="Local_Extension_Skinny">
- <condition field="destination_number" expression="^(11[01][0-9])$">
- <action application="skinny-process"/>
- </condition>
- </extension>
- <extension name="External">
- <condition field="destination_number" expression="^(0[0-9]{10,})$">
- <action application="skinny-process"/>
- </condition>
- </extension>
- <!-- drop long dialed number -->
- <extension name="Default_Drop">
- <condition field="destination_number" expression="^(.{14,})$">
- <action application="skinny-drop"/>
- </condition>
- </extension>
- </context>
- </section>
- <section name="chatplan" description="Regex/XML Chatplan">
- <context name="default">
- <extension name="demo">
- <condition field="to" expression="^(.*)$">
- <!-- <action application="lua" data="test.lua"/> -->
- <action application="reply" data="Hello, you said: ${_body}"/>
- </condition>
- </extension>
- </context>
- </section>
- <!-- mod_dingaling is reliant on the vcard data in the "directory" section. -->
- <!-- mod_sofia is reliant on the user data for authorization -->
- <section name="directory" description="User Directory">
- <!--
- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
- FreeSWITCH works off the concept of users and domains just like email.
- You have users that are in domains for example 1000@domain.com.
- When freeswitch gets a register packet it looks for the user in the directory
- based on the from or to domain in the packet depending on how your sofia profile
- is configured. Out of the box the default domain will be the IP address of the
- machine running FreeSWITCH. This IP can be found by typing "sofia status" at the
- CLI. You will register your phones to the IP and not the hostname by default.
- If you wish to register using the domain please open vars.xml in the root conf
- directory and set the default domain to the hostname you desire. Then you would
- use the domain name in the client instead of the IP address to register
- with FreeSWITCH.
- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
- -->
- <!--the domain or ip (the right hand side of the @ in the addr-->
- <domain name="192.168.0.103">
- <params>
- <param name="dial-string" value="{^^:sip_invite_domain=${dialed_domain}:presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(*/${dialed_user}@${dialed_domain})}"/>
- <!-- These are required for Verto to function properly -->
- <!-- <param name="jsonrpc-allowed-methods" value="verto"/> -->
- <!-- <param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/> -->
- </params>
- <variables>
- <variable name="record_stereo" value="true"/>
- <variable name="default_gateway" value="dinstar"/>
- <variable name="default_areacode" value="918"/>
- <variable name="transfer_fallback_extension" value="operator"/>
- </variables>
- <groups>
- <group name="default">
- <users>
- <user id="1000">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1000"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1000"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1000"/>
- <variable name="effective_caller_id_number" value="1000"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1001">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1001"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1001"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1001"/>
- <variable name="effective_caller_id_number" value="1001"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1002">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1002"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1002"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1002"/>
- <variable name="effective_caller_id_number" value="1002"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1003">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1003"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1003"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1003"/>
- <variable name="effective_caller_id_number" value="1003"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1004">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1004"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1004"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1004"/>
- <variable name="effective_caller_id_number" value="1004"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1005">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1005"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1005"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1005"/>
- <variable name="effective_caller_id_number" value="1005"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1006">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1006"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1006"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1006"/>
- <variable name="effective_caller_id_number" value="1006"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1007">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1007"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1007"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1007"/>
- <variable name="effective_caller_id_number" value="1007"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1008">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1008"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1008"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1008"/>
- <variable name="effective_caller_id_number" value="1008"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1009">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1009"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1009"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1009"/>
- <variable name="effective_caller_id_number" value="1009"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1010">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1010"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1010"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1010"/>
- <variable name="effective_caller_id_number" value="1010"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1011">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1011"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1011"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1011"/>
- <variable name="effective_caller_id_number" value="1011"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1012">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1012"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1012"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1012"/>
- <variable name="effective_caller_id_number" value="1012"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1013">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1013"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1013"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1013"/>
- <variable name="effective_caller_id_number" value="1013"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1014">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1014"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1014"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1014"/>
- <variable name="effective_caller_id_number" value="1014"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1015">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1015"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1015"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1015"/>
- <variable name="effective_caller_id_number" value="1015"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1016">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1016"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1016"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1016"/>
- <variable name="effective_caller_id_number" value="1016"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1017">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1017"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1017"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1017"/>
- <variable name="effective_caller_id_number" value="1017"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1018">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1018"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1018"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1018"/>
- <variable name="effective_caller_id_number" value="1018"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <user id="1019">
- <params>
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="1019"/>
- </params>
- <variables>
- <variable name="toll_allow" value="domestic,international,local"/>
- <variable name="accountcode" value="1019"/>
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Extension 1019"/>
- <variable name="effective_caller_id_number" value="1019"/>
- <variable name="outbound_caller_id_name" value="FreeSWITCH"/>
- <variable name="outbound_caller_id_number" value="0000000000"/>
- <variable name="callgroup" value="techsupport"/>
- </variables>
- </user>
- <!--
- ipauth if you have an cidr= in the user attributes ie cidr="1.2.3.4/32"
- see <node type="allow" domain="192.168.0.103"/> in default acl.conf.xml
- -->
- <user id="brian" cidr="192.0.2.0/24">
- <!-- Outbound Registrations Related to this user -->
- <gateways>
- <!--<gateway name="asterlink.com">-->
- <!--/// account username *required* ///-->
- <!--<param name="username" value="cluecon"/>-->
- <!--/// auth realm: *optional* same as gateway name, if blank ///-->
- <!--<param name="realm" value="asterlink.com"/>-->
- <!--/// username to use in from: *optional* same as username, if blank ///-->
- <!--<param name="from-user" value="cluecon"/>-->
- <!--/// domain to use in from: *optional* same as realm, if blank ///-->
- <!--<param name="from-domain" value="asterlink.com"/>-->
- <!--/// account password *required* ///-->
- <!--<param name="password" value="2007"/>-->
- <!--/// replace the INVITE from user with the channel's caller-id ///-->
- <!--<param name="caller-id-in-from" value="false"/>-->
- <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
- <!--<param name="extension" value="cluecon"/>-->
- <!--/// proxy host: *optional* same as realm, if blank ///-->
- <!--<param name="proxy" value="asterlink.com"/>-->
- <!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
- <!--<param name="register-proxy" value="mysbc.com"/>-->
- <!--/// expire in seconds: *optional* 3600, if blank ///-->
- <!--<param name="expire-seconds" value="60"/>-->
- <!--/// do not register ///-->
- <!--<param name="register" value="false"/>-->
- <!-- which transport to use for register -->
- <!--<param name="register-transport" value="udp"/>-->
- <!--How many seconds before a retry when a failure or timeout occurs -->
- <!--<param name="retry-seconds" value="30"/>-->
- <!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
- <!--<param name="caller-id-in-from" value="false"/>-->
- <!--extra sip params to send in the contact-->
- <!--<param name="contact-params" value=""/>-->
- <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
- <!--<param name="ping" value="25"/>-->
- <!--</gateway>-->
- </gateways>
- <params>
- <!-- omit password for authless registration -->
- <param name="password" value="klk34dsfjdjf79798"/>
- <param name="vm-password" value="9999"/><!--if vm-password is omitted password param is used-->
- <!--<param name="email-addr" value="me@mydomain.com"/>-->
- <!--<param name="vm-delete-file" value="true"/>-->
- <!--<param name="vm-attach-file" value="true"/>-->
- <!--<param name="vm-mailto" value="me@mydomain.com"/>-->
- <!--<param name="vm-email-all-messages" value="true"/>-->
- <!-- optionally use this instead if you want to store the hash of user:domain:pass-->
- <!--<param name="a1-hash" value="c6440e5de50b403206989679159de89a"/>-->
- <!-- What this user is allowed to acces -->
- <!--<param name="http-allowed-api" value="jsapi,voicemail,status"/> -->
- </params>
- <variables>
- <!--all variables here will be set on all inbound calls that originate from this user -->
- <variable name="user_context" value="default"/>
- <variable name="effective_caller_id_name" value="Brian West"/>
- <variable name="effective_caller_id_number" value="1000"/>
- <!-- Don't write a CDR if this is false valid values are: true, false, a_leg and b_leg -->
- <variable name="process_cdr" value="true"/>
- <!-- rtp_secure_media will offer mandatory SRTP on invite AES_CM_128_HMAC_SHA1_32, AES_CM_128_HMAC_SHA1_80 or true-->
- <variable name="rtp_secure_media" value="true"/>
- <!-- limit the max number of outgoing calls for this user -->
- <!--<variable name="max_calls" value="2"/>-->
- <!-- send presence information if FS is configured to do so -->
- <!--<variable name="presence_id" value="1000@192.168.0.103"/>-->
- <!-- set these to take advantage of a dialplan localized to this user -->
- <!--<variable name="numbering_plan" value="US"/>-->
- <!--<variable name="default_area_code" value="434"/>-->
- <!--<variable name="default_gateway" value="asterlink.com"/>-->
- <!--
- NDLB-connectile-dysfunction - Rewrite contact ip and port
- NDLB-tls-connectile-dysfunction - Rewrite contact port only.
- -->
- <!--<variable name="sip-force-contact" value="NDLB-connectile-dysfunction"/>-->
- <!--<variable name="sip-force-expires" value="10"/>-->
- <!--<variable name="sip-register-gateway" value="cluecon.com"/>-->
- <!-- Set the file format for a specific user -->
- <!--<variable name="vm_message_ext" value="mp3"/> -->
- </variables>
- <vcard>
- <!-- insert optional compliant vcard xml here-->
- </vcard>
- </user>
- <user id="default"> <!--if id is numeric mailbox param is not necessary-->
- <!--
- ATTENTION PLEASE READ THIS... (I know you won't but you've been warned)
- Let it be known that this user can register without a password but since we do not assign
- this user a user_context and we don't authenticate this user they will be put in context 'public'.
- This isn't a security issue as the endpoint would be put into the same context 'public' as the
- sofia profile that starts on 5080 by default. If you're paranoid just remove this file and
- remove the external profile also.
- If you're this paranoid you might wanna go buy some more tinfoil and disconnect from the internets.
- Cuz we all know the internets is for pr0n anyway.
- -->
- <variables>
- <!--all variables here will be set on all inbound calls that originate from this user -->
- <!-- set these to take advantage of a dialplan localized to this user -->
- <variable name="numbering_plan" value="US"/>
- <variable name="default_areacode" value="918"/>
- <variable name="default_gateway" value="dinstar"/>
- </variables>
- </user>
- <user id="SEP001120AABBCC">
- <params>
- <!-- for devices requesting firmware via SCCP, like ATA186
- <param name="skinny-firmware-version" value="ATA030101SCCP04"
- <param name="skinny-soft-key-set-set" value="default"
- -->
- <param name="foo" value="bar"/>
- </params>
- <skinny>
- <buttons>
- <!--
- position: 1..
- type: one of line, speed-dial
- label: button label
- -->
- <!--
- value is the directory number (or user)
- caller-name is shown to the calling party during call
- -->
- <button position="1" type="Line" label="Line 1" value="1101" caller-name="Calling as 1101"/>
- <button position="3" type="Line" label="Shared Line 10" value="1110" caller-name="Calling as 1110"/>
- <!--
- value is the directory number to call
- -->
- <button position="5" type="SpeedDial" label="Call 1001" value="1001"/>
- <!--
- value is the URL
- -->
- <button position="6" type="ServiceUrl" label="Some URL" value="http://phone-xml.berbee.com/menu.xml"/>
- </buttons>
- </skinny>
- </user>
- </users>
- </group>
- <group name="sales">
- <users>
- <!--
- type="pointer" is a pointer so you can have the
- same user in multiple groups. It basically means
- to keep searching for the user in the directory.
- -->
- <user id="1000" type="pointer"/>
- <user id="1001" type="pointer"/>
- <user id="1002" type="pointer"/>
- <user id="1003" type="pointer"/>
- <user id="1004" type="pointer"/>
- </users>
- </group>
- <group name="billing">
- <users>
- <user id="1005" type="pointer"/>
- <user id="1006" type="pointer"/>
- <user id="1007" type="pointer"/>
- <user id="1008" type="pointer"/>
- <user id="1009" type="pointer"/>
- </users>
- </group>
- <group name="support">
- <users>
- <user id="1010" type="pointer"/>
- <user id="1011" type="pointer"/>
- <user id="1012" type="pointer"/>
- <user id="1013" type="pointer"/>
- <user id="1014" type="pointer"/>
- </users>
- </group>
- </groups>
- </domain>
- </section>
- <!-- languages section (under development still) -->
- <section name="languages" description="Language Management">
- <language name="de" sound-prefix="/snds" tts-engine="cepstral" tts-voice="david">
- <phrases>
- <macros>
- <macro name="msgcount">
- <input pattern="(.*)">
- <match>
- <action function="execute" data="sleep(1000)"/>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- <!-- or -->
- <!--<action function="speak-text" data="Sie haben $1 Nachrichten"/>-->
- </match>
- </input>
- </macro>
- <macro name="saydate">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="timespec">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="time_measurement"/>
- </match>
- </input>
- </macro>
- <macro name="ip-addr">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="iterated" type="ip_address"/>
- <action function="say" data="$1" method="pronounced" type="ip_address"/>
- </match>
- </input>
- </macro>
- <macro name="spell">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="spell-phonetic">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="tts-timeleft">
- <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
- <!-- If the function "break" is encountered all parsing will cease -->
- <input pattern="(\d+):(\d+)">
- <match>
- <action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
- <action function="break"/>
- </match>
- <nomatch>
- <action function="speak-text" data="Die Eingabe war ungültig."/>
- </nomatch>
- </input>
- <input pattern="(\d+) min (\d+) sek">
- <match>
- <action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
- </match>
- <nomatch>
- <action function="speak-text" data="Die Eingabe war ungültig."/>
- </nomatch>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <!--voicemail_de_tts is purely implemented with tts, we need a files based implementation too -->
- <macro name="voicemail_enter_id">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Bitte geben Sie Ihren Benutzernamen ein, gefolgt von $1."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_enter_pass">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Bitte geben Sie Ihr Passwort ein, gefolgt von $1."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_fail_auth">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Falsche Benutzerdaten."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_hello">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Willkommen in Ihrem Postfach."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_goodbye">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Auf Wiedersehen."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_abort">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Zu viele Fehlversuche."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_message_count">
- <input pattern="^1:(.*)$">
- <match>
- <action function="speak-text" data="Sie haben 1 $2 Nachricht im Ordner ${voicemail_current_folder}."/>
- </match>
- </input>
- <input pattern="^([0,2-9]+):(.*)$">
- <match>
- <action function="speak-text" data="Sie haben $1 $2 Nachrichten im Ordner ${voicemail_current_folder}."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Um neue Nachrichten zu hören, drücken Sie $1. Um gespeicherte Nachrichten zu hören, drücken Sie $2, Für erweiterte Optionen, drücken Sie $3. Zum beenden drücken Sie $4."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_config_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Um eine Ansage aufzunehmen, drücken Sie $1. Um eine Ansage auszuwählen, drücken Sie $2. Um ihren Namen aufzunehmen, drücken Sie $3. Um zum Hauptmenü zurückzukehren, drücken Sie $4."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_name">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="Sprechen Sie Ihren Namen nach dem Ton, drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Um die Aufzeichnung anzuhören, drücken Sie $1. Um die Aufzeichnung zu speichern, drücken Sie $2. Für eine erneute Aufnahme drücken Sie $3."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_urgent_check">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Drücken Sie $1 um diese Nachricht als wichtig zu markieren. Um fortzufahren drücken Sie $2."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_listen_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Drücken Sie $1 um die Nachricht erneut zu hören. Um die Nachricht zu speichern, drücken Sie $2. Zum löschen der Nachricht drücken Sie $3. Für die Weiterleitung als Email, drücken Sie $4."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="Wählen Sie eine Ansage zwischen 1 und 3."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting_fail">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="Ungültige Eingabe."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="Zeichnen Sie Ihre Ansage nach dem Ton auf. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_message">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="Sprechen Sie nach dem Ton. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_greeting_selected">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="Ansage $1 ausgewählt."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_play_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$1 ist nicht verfügbar."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_number">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$1"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_message_number">
- <input pattern="^([a-z]+):(.*)$">
- <match>
- <action function="speak-text" data="$1 Nachricht Nummer $2."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_phone_number">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$1."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$1."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_ack">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="Nachricht $1"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_date">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$strftime($1|%A, %B %d %Y, %I %M %p)"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- </macros>
- </phrases>
- </language>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <language name="en" say-module="en" sound-prefix="C:/Program Files/FreeSWITCH/sounds/en/us/callie" tts-engine="cepstral" tts-voice="callie">
- <phrases>
- <macros>
- <macro name="demo_ivr_count">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- </match>
- </input>
- </macro>
- <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
- <input pattern="(.*)">
- <match>
- <!-- string together several existing sound files to create one long greeting -->
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
- <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
- <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
- <action function="play-file" data="silence_stream://1500"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Register for ClueCon -->
- <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 6: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/6.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_main_menu_short" pause="100">
- <input pattern="(.*)">
- <match>
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="silence_stream://1000"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
- <macro name="demo_ivr_sub_menu">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_sub_menu_short">
- <input pattern="(.*)">
- <match>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <macro name="msgcount">
- <input pattern="(.*)">
- <match>
- <action function="execute" data="sleep(1000)"/>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- <!-- or -->
- <!--<action function="speak-text" data="you have $1 messages"/>-->
- </match>
- </input>
- </macro>
- <macro name="saydate">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="timespec">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="time_measurement"/>
- </match>
- </input>
- </macro>
- <macro name="ip-addr">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="iterated" type="ip_address"/>
- <action function="say" data="$1" method="pronounced" type="ip_address"/>
- </match>
- </input>
- </macro>
- <macro name="spell">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="spell-phonetic">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="tts-timeleft">
- <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
- <!-- If the function "break" is encountered all parsing will cease -->
- <input pattern="(\d+):(\d+)">
- <match>
- <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
- <action function="break"/>
- </match>
- <nomatch>
- <action function="speak-text" data="That input was invalid."/>
- </nomatch>
- </input>
- <input pattern="(\d+) min (\d+) sec">
- <match>
- <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
- </match>
- <nomatch>
- <action function="speak-text" data="That input was invalid."/>
- </nomatch>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <macro name="funny_prompts" pause="750">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="ivr/ivr-wakey_wakey_sunshine.wav"/>
- <action function="play-file" data="ivr/ivr-no_no_no.wav"/>
- <action function="play-file" data="ivr/ivr-did_you_mean_to_press_key.wav"/>
- <action function="play-file" data="ivr/ivr-seriously_mean_to_press_key.wav"/>
- <action function="play-file" data="ivr/ivr-oh_whatever.wav"/>
- <action function="play-file" data="ivr/ivr-one_more_mistake.wav"/>
- <action function="play-file" data="ivr/ivr-congratulations_you_pressed_star.wav"/>
- <action function="play-file" data="ivr/ivr-engineers_busy_assisting_other_sales.wav"/>
- <action function="play-file" data="ivr/ivr-message_self_destruct.wav"/>
- <action function="play-file" data="ivr/ivr-all_your_call_are_belong_to_us.wav"/>
- <action function="play-file" data="ivr/ivr-love_those_touch_tones.wav"/>
- <action function="play-file" data="ivr/ivr-yes_we_have_no_bananas.wav"/>
- <action function="play-file" data="ivr/ivr-dude_you_suck.wav"/>
- <action function="play-file" data="ivr/ivr-on_hold_indefinitely.wav"/>
- <action function="play-file" data="ivr/ivr-youre_doing_it_wrong.wav"/>
- <action function="play-file" data="ivr/ivr-were_asterisk_free.wav"/>
- <action function="play-file" data="ivr/ivr-douche_telecom.wav"/>
- <action function="play-file" data="ivr/ivr-asterisk_like_syphilis.wav"/>
- <action function="play-file" data="ivr/ivr-freeguipy.wav"/>
- <action function="play-file" data="ivr/ivr-terribly_wrong_awkward.wav"/>
- <action function="play-file" data="ivr/ivr-it_was_that_bug.wav"/>
- <action function="play-file" data="ivr/ivr-concentrate.wav"/>
- <action function="play-file" data="ivr/ivr-founder_of_freesource.wav"/>
- <action function="play-file" data="ivr/ivr-cold_foolish.wav"/>
- <action function="play-file" data="ivr/ivr-trollover_minutes.wav"/>
- <action function="play-file" data="ivr/ivr-yuno_silent_drill.wav"/>
- <action function="play-file" data="ivr/ivr-beacuase.wav"/>
- </match>
- </input>
- </macro>
- <macro name="new_demo_ivr_main_menu" pause="100"> <!-- See conf/ivr_menus/ivr.conf.xml for an example on how to use this macro in an IVR -->
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="silence_stream://500"/>
- <!-- Menu option 1: For information about FreeSWITCH... -->
- <action function="play-file" data="misc/misc-information_about_freeswitch.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: To learn more about FreeSWITCH Solutions... -->
- <action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: To hear about ClueCon -->
- <action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: For other options -->
- <action function="play-file" data="ivr/ivr-for_other_options.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as new_demo_ivr_main_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="new_demo_ivr_main_menu_short" pause="100">
- <input pattern="(.*)">
- <match>
- <!-- Menu option 1: For information about FreeSWITCH... -->
- <action function="play-file" data="misc/misc-information_about_freeswitch.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: To learn more about FreeSWITCH Solutions... -->
- <action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: To hear about ClueCon -->
- <action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: For other options -->
- <action function="play-file" data="ivr/ivr-for_other_options.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- More information about FreeSWITCH... -->
- <macro name="learn_about_freeswitch_sub_menu">
- <input pattern="(.*)">
- <match>
- <!-- Information about FreeSWITCH and OSTAG... -->
- <action function="play-file" data="misc-freeswitch_is_state_of_the_art.wav"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="misc-it_is_stable_scalable_extensible.wav"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="misc-free_to_download.wav"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="misc-freeswitch_sponsored_by_ostag.wav"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="misc-ostag_learn_more.wav"/>
- <action function="play-file" data="silence_stream://50"/>
- <!-- Menu option 9: Repeat this information -->
- <action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!-- More information about FreeSWITCH Solutions... -->
- <macro name="learn_about_freeswitch_solutions_sub_menu">
- <input pattern="(.*)">
- <match>
- <!-- Information about FreeSWITCH Solutions... -->
- <action function="play-file" data="[[sounds from tony/brian]]"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="[[sounds from tony/brian]]"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="[[sounds from tony/brian]]"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="[[sounds from tony/brian]]"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="[[sounds from tony/brian]]"/>
- <action function="play-file" data="silence_stream://50"/>
- <!-- Menu option 9: Repeat this information -->
- <action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!-- More information about ClueCon -->
- <macro name="learn_about_cluecon_sub_menu">
- <input pattern="(.*)">
- <match>
- <!-- Information about ClueCon... -->
- <action function="play-file" data="misc-cluecon_is_premier_conference.wav"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="misc-chicago_each_summer.wav"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="misc-wide_range_of_persons.wav"/>
- <action function="play-file" data="silence_stream://50"/>
- <action function="play-file" data="misc-support_open_source_by_attending.wav"/>
- <action function="play-file" data="silence_stream://500"/>
- <action function="play-file" data="ivr-register_for_cluecon.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <action function="play-file" data="silence_stream://500"/>
- <!-- Menu option 9: Repeat this information -->
- <action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!-- voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
- <macro name="voicemail_enter_id">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_id.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_enter_pass">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_fail_auth">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_change_pass_success">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-password_has_been_changed.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_change_pass_fail">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-password_not_valid.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_hello">
- <input pattern="(.*)">
- <match>
- <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
- </match>
- </input>
- </macro>
- <macro name="voicemail_goodbye">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-goodbye.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_abort">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-abort.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_message_count">
- <input pattern="^(1):(.*)$" break_on_match="true">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-$2.wav"/>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- </match>
- </input>
- <input pattern="^(\d+):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-$2.wav"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <!-- To listen to new messages -->
- <action function="play-file" data="voicemail/vm-listen_new.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To listen to saved messages -->
- <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- For advanced options -->
- <action function="play-file" data="voicemail/vm-advanced.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To exit -->
- <action function="play-file" data="voicemail/vm-to_exit.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_config_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <!-- To record a greeting -->
- <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To choose greeting -->
- <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To record your name -->
- <action function="play-file" data="voicemail/vm-record_name2.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To change password -->
- <action function="play-file" data="voicemail/vm-change_password.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To return to main menu -->
- <action function="play-file" data="voicemail/vm-main_menu.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_name">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_name1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-rerecord.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_urgent_check">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-continue.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_prepend">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_message_enter_extension">
- <input pattern="^([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
- <action function="play-file" data="voicemail/vm-followed_by.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_invalid_extension">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_listen_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting_fail">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_message">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_message.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_greeting_selected">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-greeting.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-selected.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_play_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-person.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-not_available.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_number">
- <input pattern="^(\d+)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_message_number">
- <input pattern="^([a-z]+):(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- <action function="play-file" data="voicemail/vm-message_number.wav"/>
- <action function="say" data="$2" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_phone_number">
- <input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
- <match>
- <action function="play-file" data="voicemail/vm-message_from.wav"/>
- <action function="execute" data="sleep(100)"/>
- <action function="play-file" data="ivr/ivr-anonymous_caller.wav"/>
- <action function="execute" data="sleep(500)"/>
- </match>
- </input>
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-message_from.wav"/>
- <action function="execute" data="sleep(100)"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(500)"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
- <macro name="voicemail_ack">
- <input pattern="^(too-small)$">
- <match>
- <action function="play-file" data="voicemail/vm-too-small.wav"/>
- </match>
- </input>
- <input pattern="^(deleted)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(saved)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(emailed)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(marked-urgent)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_date">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="short_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_disk_quota_exceeded">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
- </match>
- </input>
- </macro>
- <macro name="valet_announce_ext">
- <input pattern="^([^\:]+):(.*)$">
- <match>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="valet_lot_full">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
- </match>
- </input>
- </macro>
- <macro name="valet_lot_empty">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <macro name="directory_intro">
- <input pattern="^(last_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter_person.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- </match>
- </input>
- <input pattern="^(first_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter_person.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- </match>
- </input>
- <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_min_search_digits">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-specify_mininum.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count">
- <input pattern="^0$" break_on_match="true">
- <match>
- <action function="play-file" data="directory/dir-no_matching_results.wav"/>
- </match>
- </input>
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-result_match.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count_too_large">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-too_many_result.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_last">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-no_more_results.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_item">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-result_number.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_at">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-at_extension.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_menu">
- <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
- <match>
- <action function="play-file" data="directory/dir-to_select_entry.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_next.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_prev.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-start_new_search.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <macro name="fifo_position">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="ivr/ivr-you_are_number.wav"/>
- <action function="say" data="${fifo_position}" method="pronounced" type="items"/>
- <action function="play-file" data="ivr/ivr-in_line.wav"/>
- </match>
- </input>
- </macro>
- <macro name="queue_position">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="ivr/ivr-you_are_number.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="ivr/ivr-in_line.wav"/>
- </match>
- </input>
- </macro>
- <macro name="has_called_conf">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="$1"/>
- <action function="sleep" data="100"/>
- <action function="play-file" data="conference/conf-has_joined.wav"/>
- </match>
- </input>
- </macro>
- <macro name="has_left_conf">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="$1"/>
- <action function="sleep" data="100"/>
- <action function="play-file" data="conference/conf-has_left.wav"/>
- </match>
- </input>
- </macro>
- <macro name="callers_in_conf">
- <input pattern="^1$" break_on_match="true">
- <match>
- <action function="sleep" data="500"/>
- <!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
- <action function="play-file" data="digits/1.wav"/>
- <action function="sleep" data="100"/>
- <action function="play-file" data="conference/conf-listener_in_conference.wav"/>
- </match>
- </input>
- <input pattern="^(\d+)$">
- <match>
- <action function="sleep" data="500"/>
- <action function="play-file" data="ivr/ivr-there_are.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="sleep" data="100"/>
- <action function="play-file" data="conference/conf-members_in_conference.wav"/>
- </match>
- <nomatch>
- <action function="sleep" data="500"/>
- <action function="play-file" data="ivr/ivr-there_are.wav"/>
- <action function="play-file" data="digits/0.wav"/>
- <action function="sleep" data="100"/>
- <action function="play-file" data="conference/conf-members_in_conference.wav"/>
- </nomatch>
- </input>
- </macro>
- <macro name="enter_dest_number">
- <input pattern="^(.*)$">
- <match>
- <action function="sleep" data="1000"/>
- <action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
- <action function="sleep" data="1000"/>
- </match>
- </input>
- </macro>
- <macro name="enter_src_number">
- <input pattern="^(.*)$">
- <match>
- <action function="sleep" data="1000"/>
- <action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
- <action function="sleep" data="1000"/>
- </match>
- </input>
- </macro>
- <macro name="call_forward_set">
- <input pattern="^(\d+):(\d+)$">
- <match>
- <action function="sleep" data="1000"/>
- <action function="play-file" data="ivr/ivr-extension_number.wav"/>
- <action function="sleep" data="400"/>
- <action function="say" data="$1" method="iterated" type="number"/>
- <action function="sleep" data="400"/>
- <action function="play-file" data="digits/2.wav"/>
- <action function="sleep" data="1000"/>
- <action function="play-file" data="ivr/ivr-extension_number.wav"/>
- <action function="sleep" data="400"/>
- <action function="say" data="$2" method="iterated" type="number"/>
- <action function="sleep" data="1000"/>
- <action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
- <action function="sleep" data="1500"/>
- </match>
- </input>
- </macro>
- <macro name="call_forward_cancel">
- <input pattern="^(\d+)$">
- <match>
- <action function="sleep" data="1000"/>
- <action function="play-file" data="ivr/ivr-extension_number.wav"/>
- <action function="sleep" data="400"/>
- <action function="say" data="$1" method="iterated" type="number"/>
- <action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
- <action function="sleep" data="1500"/>
- </match>
- </input>
- </macro>
- <macro name="screen_confirm">
- <input pattern="^(.*)$">
- <match>
- <action function="sleep" data="500"/>
- <action function="play-file" data="ivr/ivr-call_from.wav"/>
- <action function="sleep" data="250"/>
- <!-- Note, be sure to pass in the full path to the file or else!! -->
- <action function="play-file" data="$1"/>
- <action function="sleep" data="500"/>
- <action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
- <action function="sleep" data="500"/>
- <action function="play-file" data="ivr/ivr-to_reject.wav"/>
- <action function="sleep" data="50"/>
- <action function="play-file" data="ivr/ivr-hang_up.wav"/>
- <action function="sleep" data="1500"/>
- <action function="play-file" data="ivr/ivr-call_from.wav"/>
- <action function="sleep" data="250"/>
- <action function="play-file" data="$1"/>
- <action function="sleep" data="500"/>
- <action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
- <action function="sleep" data="500"/>
- <action function="play-file" data="ivr/ivr-to_reject.wav"/>
- <action function="sleep" data="50"/>
- <action function="play-file" data="ivr/ivr-hang_up.wav"/>
- <action function="sleep" data="1500"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- </macros>
- <macros name="voicemail_ivr">
- <macro name="press_key">
- <input pattern="^(.*):(.*)$">
- <match>
- <action function="play-file" data="$2"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="plural_msg">
- <input pattern="^[1]:(.*):(.*)$" break_on_match="true">
- <match>
- <action function="play-file" data="$1"/>
- </match>
- </input>
- <input pattern="^.*:(.*):(.*)$" break_on_match="true">
- <match>
- <action function="play-file" data="$2"/>
- </match>
- </input>
- </macro>
- <macro name="enter_id">
- <input pattern="(.+)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_id.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- <nomatch>
- <action function="play-file" data="voicemail/vm-enter_id.wav"/>
- <action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
- </nomatch>
- </input>
- </macro>
- <macro name="enter_pass">
- <input pattern="(.+)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- <nomatch>
- <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
- <action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
- </nomatch>
- </input>
- </macro>
- <macro name="fail_auth">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
- </match>
- </input>
- </macro>
- <macro name="hello">
- <input>
- <match>
- <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
- </match>
- </input>
- </macro>
- <macro name="goodbye">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-goodbye.wav"/>
- </match>
- </input>
- </macro>
- <macro name="abort">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-abort.wav"/>
- </match>
- </input>
- </macro>
- <macro name="message_count">
- <input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
- <nomatch>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-urgent-new.wav"/>
- <action function="phrase" phrase="plural_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
- </nomatch>
- </input>
- <input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-new.wav"/>
- <action function="phrase" phrase="plural_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
- </match>
- </input>
- <input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
- <nomatch>
- <action function="play-file" data="currency/and.wav"/>
- <action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-saved.wav"/>
- <action function="phrase" phrase="plural_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
- </nomatch>
- </input>
- </macro>
- <macro name="menu">
- <input field="${VM-Total-New-Messages}" pattern="^(0)$">
- <nomatch>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
- </nomatch>
- </input>
- <input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
- <nomatch>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
- </nomatch>
- </input>
- <input>
- <match>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
- </match>
- </input>
- </macro>
- <macro name="config_menu">
- <input>
- <match>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
- </match>
- </input>
- </macro>
- <macro name="record_name">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-record_name1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="forward_ask_prepend">
- <input>
- <match>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
- </match>
- </input>
- </macro>
- <macro name="forward_ask_extension">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
- <!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
- <!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
- </match>
- </input>
- </macro>
- <macro name="record_file_check">
- <input>
- <match>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
- </match>
- </input>
- </macro>
- <macro name="record_urgent_check">
- <input>
- <match>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
- </match>
- </input>
- </macro>
- <macro name="forward_prepend">
- <input>
- <match>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
- </match>
- </input>
- </macro>
- <macro name="forward_message_enter_extension">
- <input pattern="^([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
- <action function="play-file" data="voicemail/vm-followed_by.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="invalid_extension">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
- </match>
- </input>
- </macro>
- <macro name="listen_file_check">
- <input>
- <match>
- <!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
- </match>
- </input>
- <input field="${VM-Message-Email}" pattern="^$">
- <nomatch>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
- </nomatch>
- </input>
- <input>
- <match>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
- <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
- </match>
- </input>
- </macro>
- <macro name="choose_greeting">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
- </match>
- </input>
- </macro>
- <macro name="choose_greeting_fail">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
- </match>
- </input>
- </macro>
- <macro name="record_greeting">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
- </match>
- </input>
- </macro>
- <macro name="record_message">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-record_message.wav"/>
- </match>
- </input>
- </macro>
- <macro name="greeting_selected">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="${VM-Preference-Greeting-File-Path}"/>
- <action function="play-file" data="voicemail/vm-greeting.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-selected.wav"/>
- </match>
- </input>
- </macro>
- <macro name="play_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-person.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-not_available.wav"/>
- </match>
- </input>
- </macro>
- <macro name="say_number">
- <input pattern="^(\d+)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="say_message_number">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
- <action function="play-file" data="voicemail/vm-message_number.wav"/>
- <action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="say_phone_number">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
- <macro name="ack">
- <input pattern="^(too-small)$">
- <match>
- <action function="play-file" data="voicemail/vm-too-small.wav"/>
- </match>
- </input>
- <input pattern="^(undeleted)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(deleted)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(saved)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(emailed)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(marked-urgent)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="say_date">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="short_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="say_date_event">
- <input>
- <match>
- <action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="play_message">
- <input>
- <match>
- <action function="play-file" data="${VM-Message-File-Path}"/>
- </match>
- </input>
- </macro>
- <macro name="play_recording">
- <input>
- <match>
- <action function="play-file" data="${VM-Record-File-Path}"/>
- </match>
- </input>
- </macro>
- <macro name="disk_quota_exceeded">
- <input>
- <match>
- <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
- </match>
- </input>
- </macro>
- </macros>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- </phrases>
- </language>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <language name="fr" say-module="fr" sound-prefix="C:/Program Files/FreeSWITCH/sounds/fr/ca/june" tts-engine="cepstral" tts-voice="david">
- <phrases>
- <macros>
- <macro name="msgcount">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="tuas.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="messages.wav"/>
- </match>
- </input>
- </macro>
- <macro name="timeleft">
- <input pattern="(\d+):(\d+)">
- <match>
- <action function="speak-text" data="il reste $1 minutes et $2 secondes"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <!-- voicemail_fr_tts is purely implemented with tts, we need a files based implementation too -->
- <macro name="voicemail_enter_id">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Entrez votre Identification, suivi par $1."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_enter_pass">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Entrez votre code, suivi par $1."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_fail_auth">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Identification incorrecte."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_hello">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Bienvenue sur votre répondeur."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_goodbye">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Au revoir."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_abort">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Trop de tentatives ont échouées."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_message_count">
- <input pattern="^([^:]+):urgent-new">
- <match>
- <action function="speak-text" data="Vous avez $1 nouveaux messages urgents dans le répertoire ${voicemail_current_folder}."/>
- </match>
- </input>
- <input pattern="^([^:]+):new">
- <match>
- <action function="speak-text" data="Vous avez $1 nouveaux messages dans le répertoire ${voicemail_current_folder}."/>
- </match>
- </input>
- <input pattern="^([^:]+):saved">
- <match>
- <action function="speak-text" data="Vous avez $1 messages sauvegardés dans le répertoire ${voicemail_current_folder}."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Pour écouter les nouveaux messages, tapez $1, Pour écouter les messages enregistrés, tapez $2, Pour les options avancées, tapez $3, pour sortir, tapez $4."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_config_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="pour enregistrer un message d'accueil, tapez $1, Pour choisir votre message d'accueil, tapez $2, Pour enregistrer votre nom, tapez $3, Pour changer votre mot de passe, tapez $4, Pour retourner au menu principal, tapez $5."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_name">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="enregistrez votre nom après le bip, puis tapez une touche, ou arrêtez de parler pour arrêter l'enregistrement."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Pour écouter l'enregistrement, tapez $1, pour sauvegarder l'enregistrement, tapez $2, Pour réenregistrer, tapez $3."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_urgent_check">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Pour indiquer que ce message est urgent, tapez $1, Pour continuer, tapez $2."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_listen_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])(:(.*))?$">
- <match>
- <action function="speak-text"
- data="Pour réécouter l'enregistrement à nouveau, tapez $1, Pour sauvegarder l'enregistrement, tapez $2, Pour supprimer l'enregistrement, tapez $3, pour transférer l'enregistrement à votre email $8, tapez $4, Pour appeler l'auteur du message, tapez $5, Pour transférer ce message à un autre numéro, tapez $6."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="choisissez un message d'accueil entre 1 et 3."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting_fail">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="valeur incorrecte."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="enregistrez votre message d'accueil après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_message">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="enregistrez votre message après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_greeting_selected">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="message d'accueil numéro $1 sélectionné."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_play_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$1 n'est pas disponible."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_number">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$1"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_message_number">
- <input pattern="^new:(.*)$">
- <match>
- <action function="speak-text" data="nouveau message numéro $1."/>
- </match>
- </input>
- <input pattern="^saved:(.*)$">
- <match>
- <action function="speak-text" data="message sauvegardé numéro $1."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_phone_number">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$1."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$1."/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_ack">
- <input pattern="^(too-small)$">
- <match>
- <action function="speak-text" data="message trop court"/>
- </match>
- </input>
- <input pattern="^(deleted)$">
- <match>
- <action function="speak-text" data="message supprimé"/>
- </match>
- </input>
- <input pattern="^(saved)$">
- <match>
- <action function="speak-text" data="message sauvegardé"/>
- </match>
- </input>
- <input pattern="^(emailed)$">
- <match>
- <action function="speak-text" data="message envoyé"/>
- </match>
- </input>
- <input pattern="^(marked-urgent)$">
- <match>
- <action function="speak-text" data="message marqué urgent"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_date">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="${strftime($1|%e/%m/%Y, %H heures %M)}"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <macro name="directory_intro">
- <input pattern="^(last_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter-person.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- </match>
- </input>
- <input pattern="^(first_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter-person.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- </match>
- </input>
- <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_min_search_digits">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-specify_mininum_first.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count">
- <input pattern="^0$" break_on_match="true">
- <match>
- <action function="play-file" data="directory/dir-no_match_entry.wav"/>
- </match>
- </input>
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-result_match.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count_too_large">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-to_many_result.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_last">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-no_more_result.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_item">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-result_number.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_at">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-at_extension.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_menu">
- <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
- <match>
- <action function="play-file" data="directory/dir-to_select_entry.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_next.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_prev.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-to_make_new_search.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- </macros>
- </phrases>
- </language>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <!--тестовые файлы Вы звуковые файлы можно взять тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/ -->
- <language name="ru" sound-prefix="C:/Program Files/FreeSWITCH/sounds/ru/RU/elena" tts-engine="cepstral" tts-voice="elena">
- <phrases>
- <macros>
- <macro name="demo_ivr_count">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- </match>
- </input>
- </macro>
- <macro name="demo_ivr_main_menu" pause="250"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
- <input pattern="(.*)">
- <match>
- <!-- string together several existing sound files to create one long greeting -->
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
- <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
- <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
- <action function="execute" data="sleep(1500)"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="execute" data="sleep(2000)"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_main_menu_short" pause="250">
- <input pattern="(.*)">
- <match>
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="execute" data="sleep(1000)"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="execute" data="sleep(2000)"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
- <macro name="demo_ivr_sub_menu">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_sub_menu_short">
- <input pattern="(.*)">
- <match>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <macro name="saymoney">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="currency"/>
- </match>
- </input>
- </macro>
- <macro name="msgcount">
- <input pattern="(.*)">
- <match>
- <action function="execute" data="sleep(1000)"/>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- <!-- or -->
- <!--<action function="speak-text" data="you have $1 messages"/>-->
- </match>
- </input>
- </macro>
- <macro name="saydate">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="saydatetime">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="timespec">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="time_measurement"/>
- </match>
- </input>
- </macro>
- <macro name="timespec2">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="CURRENT_DATE_TIME"/>
- </match>
- </input>
- </macro>
- <macro name="ip-addr-interated">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="iterated" type="ip_address"/>
- </match>
- </input>
- </macro>
- <macro name="ip-addr">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="ip_address"/>
- </match>
- </input>
- </macro>
- <macro name="spell">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="spell-phonetic">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="tts-timeleft">
- <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
- <!-- If the function "break" is encountered all parsing will cease -->
- <input pattern="(\d+):(\d+)">
- <match>
- <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
- <action function="break"/>
- </match>
- <nomatch>
- <action function="speak-text" data="That input was invalid."/>
- </nomatch>
- </input>
- <input pattern="(\d+) min (\d+) sec">
- <match>
- <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
- </match>
- <nomatch>
- <action function="speak-text" data="That input was invalid."/>
- </nomatch>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
- <macro name="voicemail_enter_id">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_id.wav"/>
- <!--<action function="say" data="$1" method="pronounced" type="name_spelled"/>-->
- </match>
- </input>
- </macro>
- <macro name="voicemail_enter_pass">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
- <!-- лишнее и так долго <action function="say" data="$1" method="pronounced" type="name_spelled"/>-->
- </match>
- </input>
- </macro>
- <macro name="voicemail_fail_auth">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_hello">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-hello.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_goodbye">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-goodbye.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_abort">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-abort.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_message_count">
- <input pattern="^(\d+[0,2-9]1|[2-9]1|1):(.*)$"> <!--1, и всё что больше 20-ти 21,31,41 .. -->
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
- <action function="play-file" data="voicemail/vm-$2.wav"/>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <!--<action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
- </match>
- </input>
- <!-- от 10 до 19 и ноль --> <!-- от 5до 9 и больше 20-ти 25-29 -->
- <input pattern="^(\d+1[0-9]|1[0-9]|0|\d+[0-9][0,5-9]|[2-9][0,5-9]|[0,5-9]):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
- <action function="play-file" data="voicemail/vm-$2x.wav"/>
- <action function="play-file" data="voicemail/vm-messagex.wav"/>
- <!--<action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
- </match>
- </input>
- <input pattern="^(\d+[0,2-9][2-4]|[2-9][2-4]|[2-4]):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
- <action function="play-file" data="voicemail/vm-$2x.wav"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- <action function="play-file" data="voicemail/vm-in_folder.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-listen_new.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-advanced.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
- <action function="play-file" data="voicemail/vm-to_exit.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_config_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-record_name2.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-change_password.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-main_menu.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_name">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_name1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-rerecord.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_urgent_check">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-continue.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_prepend">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_message_enter_extension">
- <input pattern="^([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
- <action function="play-file" data="voicemail/vm-followed_by.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_invalid_extension">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_listen_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting_fail">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_message">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_message.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_greeting_selected">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-greeting.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-selected.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_play_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-person.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-not_available.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_number">
- <input pattern="^(\d+)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_message_number">
- <input pattern="^([a-z]+):(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- <action function="play-file" data="voicemail/vm-message_number.wav"/>
- <action function="say" data="$2" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_phone_number">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
- <macro name="voicemail_ack">
- <input pattern="^(too-small)$">
- <match>
- <action function="play-file" data="voicemail/vm-too-small.wav"/>
- </match>
- </input>
- <input pattern="^(deleted)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(saved)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(emailed)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(marked-urgent)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_date">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- </macros>
- </phrases>
- </language>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <language name="he" sound-prefix="C:/Program Files/FreeSWITCH/sounds/he/daniel" tts-engine="cepstral" tts-voice="daniel">
- <phrases>
- <macros>
- <macro name="demo_ivr_count">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- </match>
- </input>
- </macro>
- <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
- <input pattern="(.*)">
- <match>
- <!-- string together several existing sound files to create one long greeting -->
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
- <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
- <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
- <action function="play-file" data="silence_stream://1500"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Register for ClueCon -->
- <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 6: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/6.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_main_menu_short" pause="100">
- <input pattern="(.*)">
- <match>
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="silence_stream://1000"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
- <macro name="demo_ivr_sub_menu">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_sub_menu_short">
- <input pattern="(.*)">
- <match>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <macro name="msgcount">
- <input pattern="(.*)">
- <match>
- <action function="execute" data="sleep(1000)"/>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- <!-- or -->
- <!--<action function="speak-text" data="you have $1 messages"/>-->
- </match>
- </input>
- </macro>
- <macro name="saydate">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="timespec">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="time_measurement"/>
- </match>
- </input>
- </macro>
- <macro name="ip-addr">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="iterated" type="ip_address"/>
- <action function="say" data="$1" method="pronounced" type="ip_address"/>
- </match>
- </input>
- </macro>
- <macro name="spell">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="spell-phonetic">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="tts-timeleft">
- <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
- <!-- If the function "break" is encountered all parsing will cease -->
- <input pattern="(\d+):(\d+)">
- <match>
- <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
- <action function="break"/>
- </match>
- <nomatch>
- <action function="speak-text" data="That input was invalid."/>
- </nomatch>
- </input>
- <input pattern="(\d+) min (\d+) sec">
- <match>
- <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
- </match>
- <nomatch>
- <action function="speak-text" data="That input was invalid."/>
- </nomatch>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <macro name="voicemail_enter_id">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_id.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_enter_pass">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_fail_auth">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_hello">
- <input pattern="(.*)">
- <match>
- <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
- </match>
- </input>
- </macro>
- <macro name="voicemail_goodbye">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-goodbye.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_abort">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-abort.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_message_count">
- <input pattern="^(1):(.*)$" break_on_match="true">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-$2.wav"/>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- </match>
- </input>
- <input pattern="^(\d+):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-$2.wav"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <!-- To listen to new messages -->
- <action function="play-file" data="voicemail/vm-listen_new.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To listen to saved messages -->
- <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- For advanced options -->
- <action function="play-file" data="voicemail/vm-advanced.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To exit -->
- <action function="play-file" data="voicemail/vm-to_exit.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_config_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <!-- To record a greeting -->
- <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To choose greeting -->
- <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To record your name -->
- <action function="play-file" data="voicemail/vm-record_name2.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To change password -->
- <action function="play-file" data="voicemail/vm-change_password.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To return to main menu -->
- <action function="play-file" data="voicemail/vm-main_menu.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_name">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_name1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-rerecord.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_urgent_check">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-continue.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_prepend">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_message_enter_extension">
- <input pattern="^([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
- <action function="play-file" data="voicemail/vm-followed_by.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_invalid_extension">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_listen_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting_fail">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_message">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_message.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_greeting_selected">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-greeting.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-selected.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_play_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-person.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-not_available.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_number">
- <input pattern="^(\d+)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_message_number">
- <input pattern="^([a-z]+):(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- <action function="play-file" data="voicemail/vm-message_number.wav"/>
- <action function="say" data="$2" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_phone_number">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
- <macro name="voicemail_ack">
- <input pattern="^(too-small)$">
- <match>
- <action function="play-file" data="voicemail/vm-too-small.wav"/>
- </match>
- </input>
- <input pattern="^(deleted)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(saved)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(emailed)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(marked-urgent)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_date">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_disk_quota_exceeded">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
- </match>
- </input>
- </macro>
- <macro name="valet_announce_ext">
- <input pattern="^([^\:]+):(.*)$">
- <match>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="valet_lot_full">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
- </match>
- </input>
- </macro>
- <macro name="valet_lot_empty">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <macro name="directory_intro">
- <input pattern="^(last_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter_person.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- </match>
- </input>
- <input pattern="^(first_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter_person.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- </match>
- </input>
- <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_min_search_digits">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-specify_mininum.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count">
- <input pattern="^0$" break_on_match="true">
- <match>
- <action function="play-file" data="directory/dir-no_matching_results.wav"/>
- </match>
- </input>
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-result_match.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count_too_large">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-too_many_result.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_last">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-no_more_results.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_item">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-result_number.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_at">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-at_extension.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_menu">
- <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
- <match>
- <action function="play-file" data="directory/dir-to_select_entry.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_next.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_prev.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-start_new_search.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- </macros>
- </phrases>
- </language>
- <!--
- For Emacs:
- Local Variables:
- mode:xml
- indent-tabs-mode:nil
- tab-width:2
- c-basic-offset:2
- End:
- For VIM:
- vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
- -->
- <language name="es" sound-path="C:/Program Files/FreeSWITCH/sounds/es/ES/cristina" tts-engine="cepstral" tts-voice="marta">
- <macro name="msgcount">
- <input pattern="(.*)">
- <match>
- <action function="execute" data="sleep(1000)"/>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- <!-- or -->
- <!--<action function="speak-text" data="Usted tiene $1 mensajes"/>-->
- </match>
- </input>
- </macro>
- <macro name="saydate">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="timespec">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="time_measurement"/>
- </match>
- </input>
- </macro>
- <macro name="ip-addr">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="iterated" type="ip_address"/>
- <action function="say" data="$1" method="pronounced" type="ip_address"/>
- </match>
- </input>
- </macro>
- <macro name="spell">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="spell-phonetic">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="tts-timeleft">
- <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
- <!-- If the function "break" is encountered all parsing will cease -->
- <input pattern="(\d+):(\d+)">
- <match>
- <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
- <action function="break"/>
- </match>
- <nomatch>
- <action function="speak-text" data="Esa fue una entrada inválida."/>
- </nomatch>
- </input>
- <input pattern="(\d+) min (\d+) sec">
- <match>
- <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
- </match>
- <nomatch>
- <action function="speak-text" data="Esa fue una entrada inválida."/>
- </nomatch>
- </input>
- </macro>
- <macro name="demo_ivr_count">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- </match>
- </input>
- </macro>
- <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
- <input pattern="(.*)">
- <match>
- <!-- string together several existing sound files to create one long greeting -->
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
- <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
- <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
- <action function="play-file" data="silence_stream://1500"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Register for ClueCon -->
- <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 6: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/6.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_main_menu_short" pause="100">
- <input pattern="(.*)">
- <match>
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="silence_stream://1000"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
- <macro name="demo_ivr_sub_menu">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_sub_menu_short">
- <input pattern="(.*)">
- <match>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!--voicemail_es_ES_tts is purely implemented with tts, we have the files based one that is the default. -->
- <macro name="voicemail_enter_id">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_id.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_enter_pass">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_fail_auth">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_hello">
- <input pattern="(.*)">
- <match>
- <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
- </match>
- </input>
- </macro>
- <macro name="voicemail_goodbye">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-goodbye.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_abort">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-abort.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_message_count">
- <input pattern="^(1):(.*)$" break_on_match="true">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="play-file" data="digits/un.wav"/>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$2.wav"/>
- </match>
- </input>
- <input pattern="^(\d+):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- <action function="play-file" data="voicemail/vm-$2_s.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <!-- To listen to new messages -->
- <action function="play-file" data="voicemail/vm-listen_new.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To listen to saved messages -->
- <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- For advanced options -->
- <action function="play-file" data="voicemail/vm-advanced.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To exit -->
- <action function="play-file" data="voicemail/vm-to_exit.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_config_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <!-- To record a greeting -->
- <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To choose greeting -->
- <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To record your name -->
- <action function="play-file" data="voicemail/vm-record_name2.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To change password -->
- <action function="play-file" data="voicemail/vm-change_password.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To return to main menu -->
- <action function="play-file" data="voicemail/vm-main_menu.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_name">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_name1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-rerecord.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_urgent_check">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-continue.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_prepend">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_message_enter_extension">
- <input pattern="^([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
- <action function="play-file" data="voicemail/vm-followed_by.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_invalid_extension">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_listen_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting_fail">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_message">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_message.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_greeting_selected">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-greeting.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-selected.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_play_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-person.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-not_available.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_number">
- <input pattern="^(\d+)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_message_number">
- <input pattern="^([a-z]+):(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- <action function="play-file" data="voicemail/vm-message_number.wav"/>
- <action function="say" data="$2" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_phone_number">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
- <macro name="voicemail_ack">
- <input pattern="^(too-small)$">
- <match>
- <action function="play-file" data="voicemail/vm-too-small.wav"/>
- </match>
- </input>
- <input pattern="^(deleted)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(saved)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(emailed)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(marked-urgent)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_date">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_disk_quota_exceeded">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
- </match>
- </input>
- </macro>
- <macro name="valet_announce_ext">
- <input pattern="^([^\:]+):(.*)$">
- <match>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="valet_lot_full">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
- </match>
- </input>
- </macro>
- <macro name="valet_lot_empty">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
- </match>
- </input>
- </macro>
- <macro name="directory_intro">
- <input pattern="^(last_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter_person.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- </match>
- </input>
- <input pattern="^(first_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter_person.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- </match>
- </input>
- <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_min_search_digits">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-specify_mininum.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count">
- <input pattern="^0$" break_on_match="true">
- <match>
- <action function="play-file" data="directory/dir-no_matching_results.wav"/>
- </match>
- </input>
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-result_match.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count_too_large">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-too_many_result.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_last">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-no_more_results.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_item">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-result_number.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_at">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-at_extension.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_menu">
- <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
- <match>
- <action function="play-file" data="directory/dir-to_select_entry.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_next.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_prev.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-start_new_search.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- </language>
- <X-NO-PRE-PROCESS cmd="include" data="lang/es/es_MX.xml"/>
- <language name="pt" sound-path="C:/Program Files/FreeSWITCH/sounds/pt/BR/karina" tts-engine="cepstral" tts-voice="marta">
- <macro name="demo_ivr_count">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- </match>
- </input>
- </macro>
- <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
- <input pattern="(.*)">
- <match>
- <!-- string together several existing sound files to create one long greeting -->
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
- <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
- <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
- <action function="play-file" data="silence_stream://1500"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Register for ClueCon -->
- <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 6: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/6.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_main_menu_short" pause="100">
- <input pattern="(.*)">
- <match>
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="silence_stream://1000"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/1.wav"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/2.wav"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/3.wav"/>
- <!-- Menu option 4: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/4.wav"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/5.wav"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/9.wav"/>
- <action function="play-file" data="silence_stream://2000"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
- <macro name="demo_ivr_sub_menu">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
- <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
- <!-- The short version has all the options but not the initial greeting -->
- <macro name="demo_ivr_sub_menu_short">
- <input pattern="(.*)">
- <match>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="play-file" data="ivr/ivr-please.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="play-file" data="digits/star.wav"/>
- </match>
- </input>
- </macro>
- <macro name="msgcount">
- <input pattern="(.*)">
- <match>
- <action function="execute" data="sleep(1000)"/>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- <!-- or -->
- <!--<action function="speak-text" data="you have $1 messages"/>-->
- </match>
- </input>
- </macro>
- <macro name="saydate">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="timespec">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="time_measurement"/>
- </match>
- </input>
- </macro>
- <macro name="ip-addr">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="iterated" type="ip_address"/>
- <action function="say" data="$1" method="pronounced" type="ip_address"/>
- </match>
- </input>
- </macro>
- <macro name="spell">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="spell-phonetic">
- <input pattern="(.*)">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="tts-timeleft">
- <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
- <!-- If the function "break" is encountered all parsing will cease -->
- <input pattern="(\d+):(\d+)">
- <match>
- <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
- <action function="break"/>
- </match>
- <nomatch>
- <action function="speak-text" data="Essa opção não é valida."/>
- </nomatch>
- </input>
- <input pattern="(\d+) min (\d+) sec">
- <match>
- <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
- </match>
- <nomatch>
- <action function="speak-text" data="Essa opção não é valida."/>
- </nomatch>
- </input>
- </macro>
- <!--voicemail_pt_BR_tts is purely implemented with tts, we have the files based one that is the default. -->
- <macro name="voicemail_enter_id">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_id.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_enter_pass">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_fail_auth">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_hello">
- <input pattern="(.*)">
- <match>
- <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
- </match>
- </input>
- </macro>
- <macro name="voicemail_goodbye">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-goodbye.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_abort">
- <input pattern="(.*)">
- <match>
- <action function="play-file" data="voicemail/vm-abort.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_message_count">
- <input pattern="^(1):(.*)$" break_on_match="true">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="play-file" data="digits/uma.wav"/>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$2.wav"/>
- </match>
- </input>
- <input pattern="^(\d+):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-you_have.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-messages.wav"/>
- <action function="play-file" data="voicemail/vm-$2_s.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <!-- To listen to new messages -->
- <action function="play-file" data="voicemail/vm-listen_new.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To listen to saved messages -->
- <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- For advanced options -->
- <action function="play-file" data="voicemail/vm-advanced.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To exit -->
- <action function="play-file" data="voicemail/vm-to_exit.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_config_menu">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <!-- To record a greeting -->
- <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To choose greeting -->
- <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To record your name -->
- <action function="play-file" data="voicemail/vm-record_name2.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To change password -->
- <action function="play-file" data="voicemail/vm-change_password.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="execute" data="sleep(100)"/>
- <!-- To return to main menu -->
- <action function="play-file" data="voicemail/vm-main_menu.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_name">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_name1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-rerecord.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_urgent_check">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-continue.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_prepend">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_forward_message_enter_extension">
- <input pattern="^([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
- <action function="play-file" data="voicemail/vm-followed_by.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_invalid_extension">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_listen_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-save_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-return_call.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$5" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-to_forward.wav"/>
- <action function="play-file" data="voicemail/vm-press.wav"/>
- <action function="say" data="$6" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_choose_greeting_fail">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_record_message">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-record_message.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_greeting_selected">
- <input pattern="^(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-greeting.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="voicemail/vm-selected.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_play_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-person.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="voicemail/vm-not_available.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_number">
- <input pattern="^(\d+)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_message_number">
- <input pattern="^([a-z]+):(\d+)$">
- <match>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- <action function="play-file" data="voicemail/vm-message_number.wav"/>
- <action function="say" data="$2" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_phone_number">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
- <macro name="voicemail_ack">
- <input pattern="^(too-small)$">
- <match>
- <action function="play-file" data="voicemail/vm-too-small.wav"/>
- </match>
- </input>
- <input pattern="^(deleted)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(saved)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(emailed)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- <input pattern="^(marked-urgent)$">
- <match>
- <action function="play-file" data="voicemail/vm-message.wav"/>
- <action function="play-file" data="voicemail/vm-$1.wav"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_say_date">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="current_date_time"/>
- </match>
- </input>
- </macro>
- <macro name="voicemail_disk_quota_exceeded">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
- </match>
- </input>
- </macro>
- <macro name="valet_announce_ext">
- <input pattern="^([^\:]+):(.*)$">
- <match>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="valet_lot_full">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
- </match>
- </input>
- </macro>
- <macro name="valet_lot_empty">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
- </match>
- </input>
- </macro>
- <macro name="directory_intro">
- <input pattern="^(last_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter_person.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- </match>
- </input>
- <input pattern="^(first_name)" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-enter_person.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- </match>
- </input>
- <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-first_name.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
- <match>
- <action function="play-file" data="directory/dir-to_search_by.wav"/>
- <action function="play-file" data="directory/dir-last_name.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_min_search_digits">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-specify_mininum.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count">
- <input pattern="^0$" break_on_match="true">
- <match>
- <action function="play-file" data="directory/dir-no_matching_results.wav"/>
- </match>
- </input>
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="items"/>
- <action function="play-file" data="directory/dir-result_match.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_count_too_large">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-too_many_result.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_last">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-no_more_results.wav"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_item">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-result_number.wav"/>
- <action function="say" data="$1" method="pronounced" type="items"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_at">
- <input pattern="^(.*)$">
- <match>
- <action function="play-file" data="directory/dir-at_extension.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_menu">
- <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
- <match>
- <action function="play-file" data="directory/dir-to_select_entry.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_next.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$2" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-for_prev.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$3" method="pronounced" type="name_spelled"/>
- <action function="play-file" data="directory/dir-start_new_search.wav"/>
- <action function="play-file" data="directory/dir-press.wav"/>
- <action function="say" data="$4" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- <macro name="directory_result_say_name">
- <input pattern="^(.*)$">
- <match>
- <action function="say" data="$1" method="pronounced" type="name_spelled"/>
- </match>
- </input>
- </macro>
- </language>
- <X-NO-PRE-PROCESS cmd="include" data="lang/pt/pt_PT.xml"/>
- <X-NO-PRE-PROCESS cmd="include" data="lang/sv/*.xml"/>
- </section>
- </document>