From 1d0761b97a75508e7a97c96525cfd82f062e9554 Mon Sep 17 00:00:00 2001 From: Leif Jackson <ljackson@jjcons.com> Date: Thu, 15 Jul 2010 04:17:00 +0000 Subject: [PATCH] Example minimal freeswitch config handling auto created conf numbers ^8{4}$ e.g. 85115 which seems to be the default. Thus 80000 thru 89999. --- bbb-voice-conference/config/freeswitch/README | 28 + .../conf.orig/autoload_configs/acl.conf.xml | 29 + .../autoload_configs/cdr_csv.conf.xml | 22 + .../autoload_configs/cdr_pg_csv.conf.xml | 23 + .../autoload_configs/cidlookup.conf.xml | 33 + .../autoload_configs/conference.conf.xml | 189 ++++ .../autoload_configs/console.conf.xml | 58 ++ .../dialplan_directory.conf.xml | 9 + .../autoload_configs/dingaling.conf.xml | 9 + .../autoload_configs/directory.conf.xml | 19 + .../autoload_configs/distributor.conf.xml | 10 + .../autoload_configs/easyroute.conf.xml | 25 + .../conf.orig/autoload_configs/enum.conf.xml | 13 + .../autoload_configs/erlang_event.conf.xml | 14 + .../autoload_configs/event_multicast.conf.xml | 13 + .../autoload_configs/event_socket.conf.xml | 9 + .../conf.orig/autoload_configs/fax.conf.xml | 12 + .../conf.orig/autoload_configs/fifo.conf.xml | 10 + .../conf.orig/autoload_configs/ivr.conf.xml | 5 + .../conf.orig/autoload_configs/java.conf.xml | 13 + .../conf.orig/autoload_configs/lcr.conf.xml | 62 ++ .../conf.orig/autoload_configs/limit.conf.xml | 5 + .../autoload_configs/local_stream.conf.xml | 49 + .../autoload_configs/logfile.conf.xml | 26 + .../conf.orig/autoload_configs/lua.conf.xml | 30 + .../autoload_configs/memcache.conf.xml | 6 + .../autoload_configs/modules.conf.xml | 110 ++ .../autoload_configs/nibblebill.conf.xml | 50 + .../conf.orig/autoload_configs/opal.conf.xml | 18 + .../conf.orig/autoload_configs/osp.conf.xml | 55 + .../conf.orig/autoload_configs/perl.conf.xml | 16 + .../autoload_configs/pocketsphinx.conf.xml | 12 + .../autoload_configs/portaudio.conf.xml | 35 + .../post_load_modules.conf.xml | 4 + .../autoload_configs/python.conf.xml | 16 + .../conf.orig/autoload_configs/rss.conf.xml | 7 + .../autoload_configs/sangoma_codec.conf.xml | 32 + .../conf.orig/autoload_configs/shout.conf.xml | 8 + .../autoload_configs/skinny.conf.xml | 6 + .../conf.orig/autoload_configs/sofia.conf.xml | 18 + .../autoload_configs/spandsp.conf.xml | 73 ++ .../autoload_configs/spidermonkey.conf.xml | 8 + .../autoload_configs/switch.conf.xml | 85 ++ .../autoload_configs/syslog.conf.xml | 18 + .../autoload_configs/timezones.conf.xml | 551 ++++++++++ .../autoload_configs/tts_commandline.conf.xml | 15 + .../autoload_configs/unicall.conf.xml | 25 + .../autoload_configs/unimrcp.conf.xml | 22 + .../autoload_configs/voicemail.conf.xml | 67 ++ .../autoload_configs/xml_cdr.conf.xml | 71 ++ .../autoload_configs/xml_curl.conf.xml | 47 + .../autoload_configs/xml_rpc.conf.xml | 10 + .../autoload_configs/zeroconf.conf.xml | 6 + .../freeswitch/conf.orig/dialplan/default.xml | 773 ++++++++++++++ .../dialplan/default/00_pizza_demo.xml | 9 + .../dialplan/default/01_example.com.xml | 30 + .../conf.orig/dialplan/default/99999_enum.xml | 8 + .../conf.orig/dialplan/features.xml | 59 ++ .../freeswitch/conf.orig/dialplan/public.xml | 67 ++ .../dialplan/public/00_inbound_did.xml | 18 + .../conf.orig/dialplan/skinny-patterns.xml | 30 + .../dialplan/skinny-patterns/20-Demo.xml | 8 + .../skinny-patterns/20-Local_extension.xml | 13 + .../dialplan/skinny-patterns/90-External.xml | 8 + .../skinny-patterns/99-Default_Drop.xml | 9 + .../conf.orig/directory/default.xml | 78 ++ .../conf.orig/directory/default/1000.xml | 18 + .../conf.orig/directory/default/1001.xml | 18 + .../conf.orig/directory/default/1002.xml | 18 + .../conf.orig/directory/default/1003.xml | 18 + .../conf.orig/directory/default/1004.xml | 18 + .../conf.orig/directory/default/1005.xml | 18 + .../conf.orig/directory/default/1006.xml | 18 + .../conf.orig/directory/default/1007.xml | 18 + .../conf.orig/directory/default/1008.xml | 18 + .../conf.orig/directory/default/1009.xml | 18 + .../conf.orig/directory/default/1010.xml | 18 + .../conf.orig/directory/default/1011.xml | 18 + .../conf.orig/directory/default/1012.xml | 18 + .../conf.orig/directory/default/1013.xml | 18 + .../conf.orig/directory/default/1014.xml | 18 + .../conf.orig/directory/default/1015.xml | 18 + .../conf.orig/directory/default/1016.xml | 18 + .../conf.orig/directory/default/1017.xml | 18 + .../conf.orig/directory/default/1018.xml | 18 + .../conf.orig/directory/default/1019.xml | 18 + .../conf.orig/directory/default/bbbuser.xml | 28 + .../conf.orig/directory/default/brian.xml | 92 ++ .../conf.orig/directory/default/default.xml | 26 + .../directory/default/example.com.xml | 26 + .../directory/default/skinny-example.xml | 34 + .../freeswitch/conf.orig/extensions.conf | 21 + .../freeswitch/conf.orig/freeswitch.serial | Bin 0 -> 13 bytes .../freeswitch/conf.orig/freeswitch.xml | 67 ++ .../freeswitch/conf.orig/fur_elise.ttml | 83 ++ .../conf.orig/ivr_menus/demo_ivr.xml | 64 ++ .../conf.orig/jingle_profiles/client.xml | 32 + .../conf.orig/jingle_profiles/server.xml | 21 + .../freeswitch/conf.orig/lang/de/de.xml | 7 + .../conf.orig/lang/de/demo/demo.xml | 71 ++ .../freeswitch/conf.orig/lang/de/vm/tts.xml | 214 ++++ .../conf.orig/lang/en/demo/demo-ivr.xml | 148 +++ .../conf.orig/lang/en/demo/demo.xml | 71 ++ .../conf.orig/lang/en/dir/sounds.xml | 121 +++ .../freeswitch/conf.orig/lang/en/dir/tts.xml | 96 ++ .../freeswitch/conf.orig/lang/en/en.xml | 8 + .../conf.orig/lang/en/vm/sounds.xml | 404 +++++++ .../freeswitch/conf.orig/lang/en/vm/tts.xml | 239 +++++ .../conf.orig/lang/fr/demo/demo.xml | 18 + .../conf.orig/lang/fr/dir/sounds.xml | 121 +++ .../freeswitch/conf.orig/lang/fr/dir/tts.xml | 101 ++ .../freeswitch/conf.orig/lang/fr/fr.xml | 8 + .../conf.orig/lang/fr/vm/sounds.xml | 246 +++++ .../conf.orig/lang/ru/demo/demo-ivr.xml | 145 +++ .../conf.orig/lang/ru/demo/demo.xml | 100 ++ .../conf.orig/lang/ru/dir/sounds.xml | 121 +++ .../freeswitch/conf.orig/lang/ru/dir/tts.xml | 96 ++ .../freeswitch/conf.orig/lang/ru/ru.xml | 9 + .../conf.orig/lang/ru/vm/sounds.xml | 365 +++++++ .../freeswitch/conf.orig/lang/ru/vm/tts.xml | 239 +++++ .../config/freeswitch/conf.orig/mime.types | 983 ++++++++++++++++++ .../mrcp_profiles/loquendo-7-mrcp-v2.xml | 32 + .../mrcp_profiles/nuance-1.0.0-mrcp-v1.xml | 39 + .../mrcp_profiles/nuance-5.0-mrcp-v1.xml | 39 + .../mrcp_profiles/nuance-5.0-mrcp-v2.xml | 43 + .../mrcp_profiles/unimrcpserver-mrcp-v1.xml | 27 + .../voxeo-prophecy-8.0-mrcp-v1.xml | 27 + .../freeswitch/conf.orig/notify-voicemail.tpl | 42 + .../conf.orig/sip_profiles/external.xml | 78 ++ .../sip_profiles/external/example.xml | 34 + .../conf.orig/sip_profiles/internal-ipv6.xml | 129 +++ .../conf.orig/sip_profiles/internal.xml | 313 ++++++ .../sip_profiles/internal/example.xml | 37 + .../conf.orig/skinny_profiles/internal.xml | 21 + .../config/freeswitch/conf.orig/tetris.ttml | 69 ++ .../config/freeswitch/conf.orig/vars.xml | 241 +++++ .../config/freeswitch/conf.orig/voicemail.tpl | 42 + .../config/freeswitch/conf.orig/web-vm.tpl | 13 + .../conf/autoload_configs/acl.conf.xml | 29 + .../conf/autoload_configs/cdr_csv.conf.xml | 22 + .../conf/autoload_configs/conference.conf.xml | 189 ++++ .../conf/autoload_configs/console.conf.xml | 58 ++ .../conf/autoload_configs/enum.conf.xml | 13 + .../autoload_configs/event_socket.conf.xml | 9 + .../autoload_configs/local_stream.conf.xml | 49 + .../conf/autoload_configs/logfile.conf.xml | 26 + .../conf/autoload_configs/modules.conf.xml | 110 ++ .../post_load_modules.conf.xml | 4 + .../conf/autoload_configs/sofia.conf.xml | 18 + .../autoload_configs/spidermonkey.conf.xml | 9 + .../conf/autoload_configs/switch.conf.xml | 85 ++ .../conf/autoload_configs/syslog.conf.xml | 18 + .../conf/autoload_configs/timezones.conf.xml | 551 ++++++++++ .../conf/autoload_configs/zeroconf.conf.xml | 6 + .../freeswitch/conf/dialplan/default.xml | 122 +++ .../conf/dialplan/default/99999_enum.xml | 8 + .../freeswitch/conf/dialplan/features.xml | 59 ++ .../freeswitch/conf/dialplan/public.xml | 67 ++ .../conf/dialplan/public/00_inbound_did.xml | 18 + .../freeswitch/conf/directory/default.xml | 44 + .../conf/directory/default/1000.xml | 18 + .../conf/directory/default/1001.xml | 18 + .../conf/directory/default/1002.xml | 18 + .../conf/directory/default/1003.xml | 18 + .../conf/directory/default/1004.xml | 18 + .../conf/directory/default/1005.xml | 18 + .../conf/directory/default/1006.xml | 18 + .../conf/directory/default/1007.xml | 18 + .../conf/directory/default/1008.xml | 18 + .../conf/directory/default/1009.xml | 18 + .../conf/directory/default/1010.xml | 18 + .../conf/directory/default/1011.xml | 18 + .../conf/directory/default/1012.xml | 18 + .../conf/directory/default/1013.xml | 18 + .../conf/directory/default/1014.xml | 18 + .../conf/directory/default/1015.xml | 18 + .../conf/directory/default/1016.xml | 18 + .../conf/directory/default/1017.xml | 18 + .../conf/directory/default/1018.xml | 18 + .../conf/directory/default/1019.xml | 18 + .../conf/directory/default/bbbuser.xml | 28 + .../config/freeswitch/conf/extensions.conf | 21 + .../config/freeswitch/conf/freeswitch.serial | Bin 0 -> 13 bytes .../config/freeswitch/conf/freeswitch.xml | 67 ++ .../config/freeswitch/conf/fur_elise.ttml | 83 ++ .../config/freeswitch/conf/lang/de/de.xml | 7 + .../freeswitch/conf/lang/de/demo/demo.xml | 71 ++ .../config/freeswitch/conf/lang/de/vm/tts.xml | 214 ++++ .../freeswitch/conf/lang/en/demo/demo-ivr.xml | 148 +++ .../freeswitch/conf/lang/en/demo/demo.xml | 71 ++ .../freeswitch/conf/lang/en/dir/sounds.xml | 121 +++ .../freeswitch/conf/lang/en/dir/tts.xml | 96 ++ .../config/freeswitch/conf/lang/en/en.xml | 8 + .../freeswitch/conf/lang/en/vm/sounds.xml | 404 +++++++ .../config/freeswitch/conf/lang/en/vm/tts.xml | 239 +++++ .../freeswitch/conf/lang/fr/demo/demo.xml | 18 + .../freeswitch/conf/lang/fr/dir/sounds.xml | 121 +++ .../freeswitch/conf/lang/fr/dir/tts.xml | 101 ++ .../config/freeswitch/conf/lang/fr/fr.xml | 8 + .../freeswitch/conf/lang/fr/vm/sounds.xml | 246 +++++ .../freeswitch/conf/lang/ru/demo/demo-ivr.xml | 145 +++ .../freeswitch/conf/lang/ru/demo/demo.xml | 100 ++ .../freeswitch/conf/lang/ru/dir/sounds.xml | 121 +++ .../freeswitch/conf/lang/ru/dir/tts.xml | 96 ++ .../config/freeswitch/conf/lang/ru/ru.xml | 9 + .../freeswitch/conf/lang/ru/vm/sounds.xml | 365 +++++++ .../config/freeswitch/conf/lang/ru/vm/tts.xml | 239 +++++ .../config/freeswitch/conf/mime.types | 983 ++++++++++++++++++ .../freeswitch/conf/sip_profiles/external.xml | 78 ++ .../conf/sip_profiles/external/example.xml | 34 + .../conf/sip_profiles/internal-ipv6.xml | 129 +++ .../freeswitch/conf/sip_profiles/internal.xml | 313 ++++++ .../conf/sip_profiles/internal/example.xml | 37 + .../config/freeswitch/conf/tetris.ttml | 69 ++ .../config/freeswitch/conf/vars.xml | 241 +++++ .../config/freeswitch/conf/voicemail.tpl | 42 + .../config/freeswitch/conf/web-vm.tpl | 13 + 217 files changed, 16187 insertions(+) create mode 100644 bbb-voice-conference/config/freeswitch/README create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/acl.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cdr_csv.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cdr_pg_csv.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cidlookup.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/conference.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/console.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/dialplan_directory.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/dingaling.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/directory.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/distributor.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/easyroute.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/enum.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/erlang_event.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/event_multicast.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/event_socket.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/fax.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/fifo.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/ivr.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/java.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/lcr.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/limit.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/local_stream.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/logfile.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/lua.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/memcache.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/modules.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/nibblebill.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/opal.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/osp.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/perl.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/pocketsphinx.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/portaudio.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/post_load_modules.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/python.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/rss.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/sangoma_codec.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/shout.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/skinny.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/sofia.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/spandsp.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/spidermonkey.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/switch.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/syslog.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/timezones.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/tts_commandline.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/unicall.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/unimrcp.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/voicemail.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_cdr.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_curl.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_rpc.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/zeroconf.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/00_pizza_demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/01_example.com.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/99999_enum.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/features.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/public.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/public/00_inbound_did.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/20-Demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/20-Local_extension.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/90-External.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/99-Default_Drop.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1000.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1001.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1002.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1003.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1004.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1005.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1006.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1007.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1008.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1009.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1010.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1011.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1012.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1013.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1014.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1015.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1016.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1017.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1018.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1019.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/bbbuser.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/brian.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/default.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/example.com.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/directory/default/skinny-example.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/extensions.conf create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/freeswitch.serial create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/freeswitch.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/fur_elise.ttml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/ivr_menus/demo_ivr.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/jingle_profiles/client.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/jingle_profiles/server.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/de/de.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/de/demo/demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/de/vm/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/en/demo/demo-ivr.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/en/demo/demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/en/dir/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/en/dir/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/en/en.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/en/vm/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/en/vm/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/demo/demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/dir/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/dir/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/fr.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/vm/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/demo/demo-ivr.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/demo/demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/dir/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/dir/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/ru.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/vm/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/vm/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/mime.types create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/loquendo-7-mrcp-v2.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-1.0.0-mrcp-v1.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-5.0-mrcp-v1.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-5.0-mrcp-v2.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/unimrcpserver-mrcp-v1.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/voxeo-prophecy-8.0-mrcp-v1.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/notify-voicemail.tpl create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/external.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/external/example.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal-ipv6.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal/example.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/skinny_profiles/internal.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/tetris.ttml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/vars.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/voicemail.tpl create mode 100644 bbb-voice-conference/config/freeswitch/conf.orig/web-vm.tpl create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/acl.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_csv.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/console.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/enum.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_socket.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/local_stream.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/logfile.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/modules.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/post_load_modules.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/sofia.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/spidermonkey.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/switch.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/syslog.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/timezones.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/autoload_configs/zeroconf.conf.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/dialplan/default.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/dialplan/default/99999_enum.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/dialplan/features.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/dialplan/public.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/dialplan/public/00_inbound_did.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1000.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1001.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1002.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1003.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1004.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1005.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1006.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1007.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1008.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1009.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1010.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1011.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1012.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1013.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1014.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1015.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1016.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1017.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1018.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/1019.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/directory/default/bbbuser.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/extensions.conf create mode 100644 bbb-voice-conference/config/freeswitch/conf/freeswitch.serial create mode 100644 bbb-voice-conference/config/freeswitch/conf/freeswitch.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/fur_elise.ttml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/de/de.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/de/demo/demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/de/vm/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo-ivr.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/en/dir/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/en/dir/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/en/en.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/en/vm/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/en/vm/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/fr/demo/demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/fr/fr.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/fr/vm/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo-ivr.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/ru/ru.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/sounds.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/tts.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/mime.types create mode 100644 bbb-voice-conference/config/freeswitch/conf/sip_profiles/external.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/sip_profiles/external/example.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal-ipv6.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal/example.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/tetris.ttml create mode 100644 bbb-voice-conference/config/freeswitch/conf/vars.xml create mode 100644 bbb-voice-conference/config/freeswitch/conf/voicemail.tpl create mode 100644 bbb-voice-conference/config/freeswitch/conf/web-vm.tpl diff --git a/bbb-voice-conference/config/freeswitch/README b/bbb-voice-conference/config/freeswitch/README new file mode 100644 index 0000000000..da93b0673a --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/README @@ -0,0 +1,28 @@ +Version 1.0.6 of Freeswitch or greater tested on the git master + commit 1eb4b79c15feb81e4eb5370c911267c4f11e3d52 + Date: Wed Jun 16 01:12:47 2010 +0200 + +this conf dir is the freeswitch config setup for a bbbuser and + auto created conferences dialed via sip from the regex ^8{4}$ + meaning that you can use this for auto generated confrence + handling for confrence ids between 80000 and 89999 + +To install this config you would move /usr/local/freeswitch/conf to /usr/local/freeswitch/conf.dist +mv /usr/local/freeswitch/conf /usr/local/freeswitch/conf.dist +and +cp -a conf /usr/local/freeswitch/ + +conf.orig dir is what was installed by freeswitch by default + with my mods to support just 85{3} conf ids but also includes + all the extra demo and example stuff. + +NOTE: you must double check this config if you intend to have + the freeswitch server on a public facing interface. + It defaults to localhost for the event socket inteface. + + I run my server in a test environment with + /usr/local/freeswitch/bin/freeswitch -hp -nc + and then interact with it via + /usr/local/freeswitch/bin/fs_cli + + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/acl.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/acl.conf.xml new file mode 100644 index 0000000000..a1708a55f3 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/acl.conf.xml @@ -0,0 +1,29 @@ +<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"> + <node type="allow" domain="$${domain}"/> + </list> + + </network-lists> +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cdr_csv.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cdr_csv.conf.xml new file mode 100644 index 0000000000..bcefd460b4 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cdr_csv.conf.xml @@ -0,0 +1,22 @@ +<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> + </templates> +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cdr_pg_csv.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cdr_pg_csv.conf.xml new file mode 100644 index 0000000000..ec62053190 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cdr_pg_csv.conf.xml @@ -0,0 +1,23 @@ +<configuration name="cdr_pg_csv.conf" description="CDR PG CSV Format"> + <settings> + <!-- 'cdr-pg-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"/> + <param name="debug" value="true"/> + <!-- The parameters for pqconnectdb(), see there --> + <param name="db-info" value="host=localhost dbname=cdr connect_timeout=10" /> + </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">"${local_ip_v4}","${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_hangup_disposition}","${ani}"</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> + </templates> +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cidlookup.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cidlookup.conf.xml new file mode 100644 index 0000000000..a30f9f5c10 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/cidlookup.conf.xml @@ -0,0 +1,33 @@ +<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/conference.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/conference.conf.xml new file mode 100644 index 0000000000..fa3e87a139 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/conference.conf.xml @@ -0,0 +1,189 @@ +<!-- 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@$${domain}" 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"> + <!-- Domain (for presence) --> + <param name="domain" value="$${domain}"/> + <!-- 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="mute"/> + + <!-- Name of the caller control group to use for this profile --> + <!-- <param name="caller-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 --> + <!-- Set a default path here so you can use relative paths in the other sound params--> + <param name="sound-prefix" value="$${sounds_dir}/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="$${hold_music}"/> + <!-- 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 ae 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"/>--> + <!-- Default Caller ID Name for outbound calls --> + <param name="caller-id-name" value="$${outbound_caller_name}"/> + <!-- Default Caller ID Number for outbound calls --> + <param name="caller-id-number" value="$${outbound_caller_id}"/> + <!-- 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="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/> + --> + </profile> + + <profile name="wideband"> + <param name="domain" value="$${domain}"/> + <param name="rate" value="16000"/> + <param name="interval" value="20"/> + <param name="energy-level" value="300"/> + <param name="member-flags" value="mute"/> + <param name="sound-prefix" value="$${sounds_dir}/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="$${hold_music}"/> + <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="$${outbound_caller_name}"/> + <param name="caller-id-number" value="$${outbound_caller_id}"/> + <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="$${domain}"/> + <param name="rate" value="32000"/> + <param name="interval" value="20"/> + <param name="energy-level" value="300"/> + <param name="sound-prefix" value="$${sounds_dir}/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="$${hold_music}"/> + <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="$${outbound_caller_name}"/> + <param name="caller-id-number" value="$${outbound_caller_id}"/> + <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="$${domain}"/> + <param name="rate" value="48000"/> + <param name="interval" value="10"/> + <param name="energy-level" value="300"/> + <param name="sound-prefix" value="$${sounds_dir}/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="$${hold_music}"/> + <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="$${outbound_caller_name}"/> + <param name="caller-id-number" value="$${outbound_caller_id}"/> + <param name="comfort-noise" value="true"/> + </profile> + + <profile name="sla"> + <param name="domain" value="$${domain}"/> + <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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/console.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/console.conf.xml new file mode 100644 index 0000000000..95d42e4ec0 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/console.conf.xml @@ -0,0 +1,58 @@ +<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"/> + <map name="sofia.c" value="notice"/> + <map name="switch_core_state_machine.c" value="notice"/> + + <!-- + 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 OpenZAP, 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_openzap" 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="$${console_loglevel}"/> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/dialplan_directory.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/dialplan_directory.conf.xml new file mode 100644 index 0000000000..e4edcd6b15 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/dialplan_directory.conf.xml @@ -0,0 +1,9 @@ +<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/dingaling.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/dingaling.conf.xml new file mode 100644 index 0000000000..e68c8b4b44 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/dingaling.conf.xml @@ -0,0 +1,9 @@ +<configuration name="dingaling.conf" description="XMPP Jingle Endpoint"> + <settings> + <param name="debug" value="0"/> + <param name="codec-prefs" value="PCMU"/> + </settings> + + <X-PRE-PROCESS cmd="include" data="../jingle_profiles/*.xml"/> + +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/directory.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/directory.conf.xml new file mode 100644 index 0000000000..7d99dc1e71 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/directory.conf.xml @@ -0,0 +1,19 @@ +<configuration name="directory.conf" description="Directory"> + <settings> + </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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/distributor.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/distributor.conf.xml new file mode 100644 index 0000000000..a03b1ee810 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/distributor.conf.xml @@ -0,0 +1,10 @@ +<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" total-weight="10"> + <node name="foo1" weight="1"/> + <node name="foo2" weight="9"/> + </list> + </lists> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/easyroute.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/easyroute.conf.xml new file mode 100644 index 0000000000..7cd490942f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/easyroute.conf.xml @@ -0,0 +1,25 @@ +<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"/> + + <!-- 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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/enum.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/enum.conf.xml new file mode 100644 index 0000000000..0304d0dacd --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/enum.conf.xml @@ -0,0 +1,13 @@ +<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="query-timeout" value="10"/> + <param name="auto-reload" value="true"/> + </settings> + + <routes> + <route service="E2U+SIP" regex="sip:(.*)" replace="sofia/${use_profile}/$1"/> + <!--<route service="E2U+XMPP" regex="XMPP:(.*)" replace="dingaling/$${xmpp_server_profile}/$1"/>--> + </routes> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/erlang_event.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/erlang_event.conf.xml new file mode 100644 index 0000000000..ec14e21a25 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/erlang_event.conf.xml @@ -0,0 +1,14 @@ +<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"/> + <param name="cookie" value="ClueCon"/> + <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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/event_multicast.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/event_multicast.conf.xml new file mode 100644 index 0000000000..b362ebc459 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/event_multicast.conf.xml @@ -0,0 +1,13 @@ +<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"/> + <!-- 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> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/event_socket.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/event_socket.conf.xml new file mode 100644 index 0000000000..7f1de2abd0 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/event_socket.conf.xml @@ -0,0 +1,9 @@ +<configuration name="event_socket.conf" description="Socket Client"> + <settings> + <param name="nat-map" value="false"/> + <param name="listen-ip" value="0.0.0.0"/> + <param name="listen-port" value="8021"/> + <param name="password" value="ClueCon"/> + <param name="apply-inbound-acl" value="localnet.auto"/> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/fax.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/fax.conf.xml new file mode 100644 index 0000000000..c7d825665e --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/fax.conf.xml @@ -0,0 +1,12 @@ +<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="/tmp"/> + <param name="file-prefix" value="faxrx"/> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/fifo.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/fifo.conf.xml new file mode 100644 index 0000000000..b1db4dd2bd --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/fifo.conf.xml @@ -0,0 +1,10 @@ +<configuration name="fifo.conf" description="FIFO Configuration"> + <settings> + <param name="delete-all-outbound-member-on-startup" value="false"/> + </settings> + <fifos> + <fifo name="cool_fifo@$${domain}" importance="0"> + <!--<member timeout="60" simo="1" lag="20">{member_wait=nowait}user/1005@$${domain}</member>--> + </fifo> + </fifos> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/ivr.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/ivr.conf.xml new file mode 100644 index 0000000000..bd4e73dedf --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/ivr.conf.xml @@ -0,0 +1,5 @@ +<configuration name="ivr.conf" description="IVR menus"> + <menus> + <X-PRE-PROCESS cmd="include" data="../ivr_menus/*.xml"/> + </menus> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/java.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/java.conf.xml new file mode 100644 index 0000000000..3d1a3b5e5b --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/java.conf.xml @@ -0,0 +1,13 @@ +<configuration name="java.conf" description="Java Plug-Ins"> + <!-- Path to the Java 1.6 virtual machine to use --> + <javavm path="/usr/java/jdk1.6.0/jre/lib/i386/client/libjvm.so"/> + <!-- Options to pass to Java --> + <options> + <!-- Your class path (make sure freeswitch.jar is on it) --> + <option value="-Djava.class.path=$${base_dir}/scripts/freeswitch.jar"/> + <!-- Enable remote debugging --> + <option value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:8000"/> + </options> + <startup class="net/cog/fs/system/Control" method="startup" arg="start up arg"/> + <shutdown class="net/cog/fs/system/Control" method="shutdown" arg="shutdown arg"/> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/lcr.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/lcr.conf.xml new file mode 100644 index 0000000000..7ab710782f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/lcr.conf.xml @@ -0,0 +1,62 @@ +<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, c.carrier_name, l.rate, cg.prefix AS gw_prefix, cg.suffix AS gw_suffix, l.lead_strip, l.trail_strip, l.prefix, l.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, 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, c.carrier_name, l.rate, cg.prefix AS gw_prefix, cg.suffix AS gw_suffix, l.lead_strip, l.trail_strip, l.prefix, l.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, random(); + "/> + </profile> + + ============================================================= + Demonstrates use of computed inlist. + ============================================================= + <profile name="inlist"> + <param name="custom_sql" value=" +SELECT l.digits, c.carrier_name, l.rate, cg.prefix AS gw_prefix, cg.suffix AS gw_suffix, l.lead_strip, l.trail_strip, l.prefix, l.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, random(); + "/> + </profile> +--> + </profiles> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/limit.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/limit.conf.xml new file mode 100644 index 0000000000..26b0f8549a --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/limit.conf.xml @@ -0,0 +1,5 @@ +<configuration name="limit.conf" description="LIMIT Configuration"> + <settings> + <!--<param name="odbc-dsn" value="dsn:user:pass"/>--> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/local_stream.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/local_stream.conf.xml new file mode 100644 index 0000000000..94a5665392 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/local_stream.conf.xml @@ -0,0 +1,49 @@ +<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="$${sounds_dir}/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="$${sounds_dir}/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="$${sounds_dir}/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="$${sounds_dir}/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="$${sounds_dir}/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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/logfile.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/logfile.conf.xml new file mode 100644 index 0000000000..57f276c4ea --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/logfile.conf.xml @@ -0,0 +1,26 @@ +<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"/> + <!-- Uncomment to 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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/lua.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/lua.conf.xml new file mode 100644 index 0000000000..1eb594f0b5 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/lua.conf.xml @@ -0,0 +1,30 @@ +<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="$${base_dir}/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"/>--> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/memcache.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/memcache.conf.xml new file mode 100644 index 0000000000..dc0173f986 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/memcache.conf.xml @@ -0,0 +1,6 @@ +<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/modules.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/modules.conf.xml new file mode 100644 index 0000000000..47707192fc --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/modules.conf.xml @@ -0,0 +1,110 @@ +<configuration name="modules.conf" description="Modules"> + <modules> + + <!-- Loggers (I'd load these first) --> + <load module="mod_console"/> + <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"/> --> + + <!-- Event Handlers --> + <load module="mod_cdr_csv"/> + <!-- <load module="mod_event_multicast"/> --> + <load module="mod_event_socket"/> + <!-- <load module="mod_zeroconf"/> --> + + <!-- 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_openzap"/> --> + <!-- <load module="mod_unicall"/> --> + <!-- <load module="mod_skinny"/> --> + + <!-- Applications --> + <load module="mod_commands"/> + <load module="mod_conference"/> + <load module="mod_dptools"/> + <load module="mod_expr"/> + <load module="mod_fifo"/> + <load module="mod_voicemail"/> + <!--<load module="mod_directory"/>--> + <!--<load module="mod_lcr"/>--> + <load module="mod_limit"/> + <load module="mod_esf"/> + <load module="mod_fsv"/> + <load module="mod_cluechoo"/> + <load module="mod_valet_parking"/> + <!--<load module="mod_spy"/>--> + + <!-- SNOM Module --> + <!--<load module="mod_snom"/>--> + + <!-- 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_speex"/> + <load module="mod_h26x"/> + <load module="mod_siren"/> + <!--<load module="mod_celt"/>--> + + <!-- File Format Interfaces --> + <load module="mod_sndfile"/> + <load module="mod_native_file"/> + <!--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"/> + <load module="mod_file_string"/> + + <!-- Timers --> + + <!-- Languages --> + <load module="mod_spidermonkey"/> + <!-- <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"/> --> + + <!-- Third party modules --> + <!--<load module="mod_nibblebill"/>--> + + </modules> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/nibblebill.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/nibblebill.conf.xml new file mode 100644 index 0000000000..ed1c9332c8 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/nibblebill.conf.xml @@ -0,0 +1,50 @@ +<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="db_username" value="bandwidth.com"/> + <param name="db_password" value="password"/> + <param name="db_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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/opal.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/opal.conf.xml new file mode 100644 index 0000000000..1133227499 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/opal.conf.xml @@ -0,0 +1,18 @@ +<configuration name="opal.conf" description="Opal Endpoints"> + <settings> + <param name="trace-level" value="4"/> + <param name="context" value="default"/> + <param name="dialplan" value="XML"/> + <param name="codec-prefs" value="PCMU"/> + <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=""/> <!-- optional listener interface name --> + </settings> + <listeners> + <listener name="default"> + <param name="h323-ip" value="$${local_ip_v4}"/> + <param name="h323-port" value="1720"/> + </listener> + </listeners> +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/osp.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/osp.conf.xml new file mode 100644 index 0000000000..168490b3db --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/osp.conf.xml @@ -0,0 +1,55 @@ +<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 provider profile --> + <profile name="default"> + <!-- Service point URLs, up to 8 allowed --> + <!-- <param name="service-point-url" value="http://osptestserver.transnexus.com:1080/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:1080/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 service type, voice or npquery --> + <param name="service-type" value="voice"/> + <!-- Max number of destinations --> + <param name="max-destinations" value="5"/> + + <!-- SIP features --> + <!-- Add "user=phone" URI parameter in outbound SIP messages --> + <param name="user-phone" value="disabled"/> + </profile> + </profiles> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/perl.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/perl.conf.xml new file mode 100644 index 0000000000..b2435000ff --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/perl.conf.xml @@ -0,0 +1,16 @@ +<configuration name="perl.conf" description="PERL Configuration"> + <settings> + <!--<param name="xml-handler-script" value="/tmp/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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/pocketsphinx.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/pocketsphinx.conf.xml new file mode 100644 index 0000000000..3bf7d5e575 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/pocketsphinx.conf.xml @@ -0,0 +1,12 @@ +<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/portaudio.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/portaudio.conf.xml new file mode 100644 index 0000000000..1f758de896 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/portaudio.conf.xml @@ -0,0 +1,35 @@ +<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="$${hold_music}"/> + <!--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="$${outbound_caller_name}"/> + <param name="cid-num" value="$${outbound_caller_id}"/> + + <!--audio sample rate and interval --> + <param name="sample-rate" value="48000"/> + <param name="codec-ms" value="20"/> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/post_load_modules.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/post_load_modules.conf.xml new file mode 100644 index 0000000000..8f4e132fa4 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/post_load_modules.conf.xml @@ -0,0 +1,4 @@ +<configuration name="post_load_modules.conf" description="Modules"> + <modules> + </modules> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/python.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/python.conf.xml new file mode 100644 index 0000000000..d3a8fdc755 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/python.conf.xml @@ -0,0 +1,16 @@ +<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/rss.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/rss.conf.xml new file mode 100644 index 0000000000..f8c4f6d2b4 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/rss.conf.xml @@ -0,0 +1,7 @@ +<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/sangoma_codec.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/sangoma_codec.conf.xml new file mode 100644 index 0000000000..9176a41d3a --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/sangoma_codec.conf.xml @@ -0,0 +1,32 @@ +<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,L16,G729,G726-32,GSM + <param name="load" 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 + vocallo resources in codecs that are done well and fast in software. + <param name="noload" value="PCMU,PCMA"/> + --> + </settings> + + <vocallos> + + <!-- The name of the vocallo is the ethernet device name as displayed by ifconfig --> + <vocallo name="eth5"> + <!-- Starting UDP port for the vocallo --> + <param name="baseudp" value="5000"/> + <!-- Starting IP address to use for the vocallo modules --> + <param name="vocalloaddr" value="10.1.1.100"/> + </vocallo> + + </vocallos> + + +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/shout.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/shout.conf.xml new file mode 100644 index 0000000000..3f381e6278 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/shout.conf.xml @@ -0,0 +1,8 @@ +<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/skinny.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/skinny.conf.xml new file mode 100644 index 0000000000..6a878fcd71 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/skinny.conf.xml @@ -0,0 +1,6 @@ +<configuration name="skinny.conf" description="Skinny Endpoints"> + <profiles> + <X-PRE-PROCESS cmd="include" data="../skinny_profiles/*.xml"/> + </profiles> +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/sofia.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/sofia.conf.xml new file mode 100644 index 0000000000..24252d08ce --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/sofia.conf.xml @@ -0,0 +1,18 @@ +<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"/> + </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> + <X-PRE-PROCESS cmd="include" data="../sip_profiles/*.xml"/> + </profiles> + +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/spandsp.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/spandsp.conf.xml new file mode 100644 index 0000000000..aed847fe3d --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/spandsp.conf.xml @@ -0,0 +1,73 @@ +<configuration name="spandsp.conf" description="Tone detector descriptors"> + <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="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="480" freq2="620" min="224" max="272"/> + <element freq1="0" freq2="0" min="224" max="272"/> + </tone> + <tone name="BUSY_TONE"> + <element freq1="480" freq2="620" min="464" max="516"/> + <element freq1="0" freq2="0" min="464" max="516"/> + </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> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/spidermonkey.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/spidermonkey.conf.xml new file mode 100644 index 0000000000..2e6dc6a166 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/spidermonkey.conf.xml @@ -0,0 +1,8 @@ +<configuration name="spidermonkey.conf" description="Spider Monkey JavaScript Plug-Ins"> + <modules> + <load module="mod_spidermonkey_teletone"/> + <load module="mod_spidermonkey_core_db"/> + <load module="mod_spidermonkey_socket"/> + <!--<load module="mod_spidermonkey_odbc"/>--> + </modules> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/switch.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/switch.conf.xml new file mode 100644 index 0000000000..03bc993372 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/switch.conf.xml @@ -0,0 +1,85 @@ +<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> + + <settings> + <!--Colorize the Console --> + <param name="colorize-console" value="true"/> + <!--Most channels to allow at once --> + <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"/> + <!-- 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"/> + + Donot 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 dump every detail about a channel on every event --> + <!--<param name="verbose-channel-events" value="no"/>--> + <!--RTP port range --> + <!--<param name="rtp-start-port" value="16384"/>--> + <!--<param name="rtp-end-port" value="32768"/>--> + <param name="rtp-enable-zrtp" value="true"/> + <!-- <param name="core-db-dsn" value="dsn:username:password" /> --> + </settings> + +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/syslog.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/syslog.conf.xml new file mode 100644 index 0000000000..636a12c8c1 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/syslog.conf.xml @@ -0,0 +1,18 @@ +<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"/> + <!-- Uncomment the following line to log uuids in syslogs (when applicable) --> + <!-- <param name="uuid" value="true"/> --> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/timezones.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/timezones.conf.xml new file mode 100644 index 0000000000..85c805ff25 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/timezones.conf.xml @@ -0,0 +1,551 @@ +<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="WET0" /> + <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="WET0" /> + <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/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-1CEST,M3.5.0,M10.5.0/3" /> + <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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Catamarca" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/ComodRivadavia" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Cordoba" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Jujuy" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/La_Rioja" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Mendoza" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Rio_Gallegos" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/San_Juan" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/San_Luis" value="ART3" /> + <zone name="America/Argentina/Tucuman" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Ushuaia" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Aruba" value="AST4" /> + <zone name="America/Asuncion" value="PYT4PYST,M10.3.0/0,M3.2.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/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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" /> + <zone name="America/Campo_Grande" value="AMT4AMST,M10.2.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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Costa_Rica" value="CST6" /> + <zone name="America/Cuiaba" value="AMT4AMST,M10.2.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,M4.1.0,M10.5.0" /> + <zone name="America/Fortaleza" value="BRT3" /> + <zone name="America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" /> + <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/0:01,M11.1.0/0:01" /> + <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.3.0/0,M10.5.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/Indianapolis" 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/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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <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/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/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/Mazatlan" value="MST7MDT,M4.1.0,M10.5.0" /> + <zone name="America/Mendoza" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <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/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/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/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="EST5" /> + <zone name="America/Porto_Acre" value="ACT5" /> + <zone name="America/Port_of_Spain" value="AST4" /> + <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="EST5" /> + <zone name="America/Rio_Branco" value="ACT5" /> + <zone name="America/Rosario" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Santiago" value="CLST" /> + <zone name="America/Santo_Domingo" value="AST4" /> + <zone name="America/Sao_Paulo" value="BRT3BRST,M10.2.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/St_Barthelemy" value="AST4" /> + <zone name="America/St_Johns" value="NST3:30NDT,M3.2.0/0:01,M11.1.0/0:01" /> + <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,M4.1.0,M10.5.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/Mawson" value="MAWT-6" /> + <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/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="EET-2EEST,M3.5.4/0,M10.5.5/1" /> + <zone name="Asia/Anadyr" value="ANAT-12ANAST,M3.5.0,M10.5.0/3" /> + <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-9" /> + <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,M4.1.5/0,J274/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="EET-2EEST,J91/0,M9.2.4" /> + <zone name="Asia/Harbin" value="CST-8" /> + <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-8IRKST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" /> + <zone name="Asia/Jakarta" value="WIT-7" /> + <zone name="Asia/Jayapura" value="EIT-9" /> + <zone name="Asia/Jerusalem" value="IDDT" /> + <zone name="Asia/Kabul" value="AFT-4:30" /> + <zone name="Asia/Kamchatka" value="PETT-12PETST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Karachi" value="PKT-5" /> + <zone name="Asia/Kashgar" value="CST-8" /> + <zone name="Asia/Katmandu" value="NPT-5:45" /> + <zone name="Asia/Kolkata" value="IST-5:30" /> + <zone name="Asia/Krasnoyarsk" value="KRAT-7KRAST,M3.5.0,M10.5.0/3" /> + <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-11MAGST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Makassar" value="CIT-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/Novosibirsk" value="NOVT-6NOVST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Omsk" value="OMST-6OMSST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Oral" value="ORAT-5" /> + <zone name="Asia/Phnom_Penh" value="ICT-7" /> + <zone name="Asia/Pontianak" value="WIT-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/Riyadh87" value="zzz-3:07:04" /> + <zone name="Asia/Riyadh88" value="zzz-3:07:04" /> + <zone name="Asia/Riyadh89" value="zzz-3:07:04" /> + <zone name="Asia/Saigon" value="ICT-7" /> + <zone name="Asia/Sakhalin" value="SAKT-10SAKST,M3.5.0,M10.5.0/3" /> + <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="CIT-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/Vientiane" value="ICT-7" /> + <zone name="Asia/Vladivostok" value="VLAT-10VLAST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Yakutsk" value="YAKT-9YAKST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Yekaterinburg" value="YEKT-5YEKST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Yerevan" value="AMT-4AMST,M3.5.0,M10.5.0/3" /> + + <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/Stanley" value="FKT4FKST,M9.1.0,M4.3.0" /> + <zone name="Atlantic/St_Helena" value="GMT0" /> + + <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/North" value="CST-9:30" /> + <zone name="Australia/NSW" value="EST-10EST,M10.1.0,M4.1.0/3" /> + <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.2.0/0,M2.3.0/0" /> + <zone name="Brazil/West" value="AMT4" /> + + <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/Eastern" value="EST5EDT,M3.2.0,M11.1.0" /> + <zone name="Canada/East-Saskatchewan" value="CST6" /> + <zone name="Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" /> + <zone name="Canada/Newfoundland" value="NST3:30NDT,M3.2.0/0:01,M11.1.0/0:01" /> + <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="Etc/GMT" value="GMT0" /> + <zone name="Etc/GMT0" value="GMT0" /> + <zone name="Etc/GMT-0" value="GMT0" /> + <zone name="Etc/GMT+0" value="GMT0" /> + <zone name="Etc/GMT-1" value="GMT-1" /> + <zone name="Etc/GMT+1" value="GMT+1" /> + <zone name="Etc/GMT-10" value="GMT-10" /> + <zone name="Etc/GMT+10" value="GMT+10" /> + <zone name="Etc/GMT-11" value="GMT-11" /> + <zone name="Etc/GMT+11" value="GMT+11" /> + <zone name="Etc/GMT-12" value="GMT-12" /> + <zone name="Etc/GMT+12" value="GMT+12" /> + <zone name="Etc/GMT-13" value="GMT-13" /> + <zone name="Etc/GMT-14" value="GMT-14" /> + <zone name="Etc/GMT-2" value="GMT-2" /> + <zone name="Etc/GMT+2" value="GMT+2" /> + <zone name="Etc/GMT-3" value="GMT-3" /> + <zone name="Etc/GMT+3" value="GMT+3" /> + <zone name="Etc/GMT-4" value="GMT-4" /> + <zone name="Etc/GMT+4" value="GMT+4" /> + <zone name="Etc/GMT-5" value="GMT-5" /> + <zone name="Etc/GMT+5" value="GMT+5" /> + <zone name="Etc/GMT-6" value="GMT-6" /> + <zone name="Etc/GMT+6" value="GMT+6" /> + <zone name="Etc/GMT-7" value="GMT-7" /> + <zone name="Etc/GMT+7" value="GMT+7" /> + <zone name="Etc/GMT-8" value="GMT-8" /> + <zone name="Etc/GMT+8" value="GMT+8" /> + <zone name="Etc/GMT-9" value="GMT-9" /> + <zone name="Etc/GMT+9" value="GMT+9" /> + <zone name="Etc/Greenwich" value="GMT0" /> + <zone name="Etc/UCT" value="UCT0" /> + <zone name="Etc/Universal" value="UTC0" /> + <zone name="Etc/UTC" 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/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="EET-2EEST,M3.5.0,M10.5.0/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="EET-2EEST,M3.5.0,M10.5.0/3" /> + <zone name="Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" /> + <zone name="Europe/Moscow" value="MSK-3MSD,M3.5.0,M10.5.0/3" /> + <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-4SAMST,M3.5.0,M10.5.0/3" /> + <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="EET-2EEST,M3.5.0/3,M10.5.0/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-3VOLST,M3.5.0,M10.5.0/3" /> + <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="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="Mexico/BajaNorte" value="PST8PDT,M4.1.0,M10.5.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="Mideast/Riyadh87" value="zzz-3:07:04" /> + <zone name="Mideast/Riyadh88" value="zzz-3:07:04" /> + <zone name="Mideast/Riyadh89" value="zzz-3:07:04" /> + + <zone name="Pacific/Apia" value="WST11" /> + <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/Easter" value="EASST" /> + <zone name="Pacific/Efate" value="VUT-11" /> + <zone name="Pacific/Enderbury" value="PHOT-13" /> + <zone name="Pacific/Fakaofo" value="TKT10" /> + <zone name="Pacific/Fiji" value="FJT-12" /> + <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/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="TRUT-10" /> + <zone name="Pacific/Wake" value="WAKT-12" /> + <zone name="Pacific/Wallis" value="WFT-12" /> + <zone name="Pacific/Yap" value="TRUT-10" /> + + <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="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/Eastern" value="EST5EDT,M3.2.0,M11.1.0" /> + <zone name="US/East-Indiana" 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/Samoa" value="SST11" /> + </timezones> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/tts_commandline.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/tts_commandline.conf.xml new file mode 100644 index 0000000000..eb816431be --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/tts_commandline.conf.xml @@ -0,0 +1,15 @@ +<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/unicall.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/unicall.conf.xml new file mode 100644 index 0000000000..eeaa0782f7 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/unicall.conf.xml @@ -0,0 +1,25 @@ +<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/unimrcp.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/unimrcp.conf.xml new file mode 100644 index 0000000000..452936bf7c --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/unimrcp.conf.xml @@ -0,0 +1,22 @@ +<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"/> + </settings> + + <profiles> + <X-PRE-PROCESS cmd="include" data="../mrcp_profiles/*.xml"/> + </profiles> + +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/voicemail.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/voicemail.conf.xml new file mode 100644 index 0000000000..14ad98b41c --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/voicemail.conf.xml @@ -0,0 +1,67 @@ +<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"/> + <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=""/>--> + <!--<param name="next-message-key" value=""/>--> + <!--<param name="skip-info-key" value=""/>--> + <param name="record-silence-threshold" value="200"/> + <param name="record-silence-hits" value="2"/> + <param name="web-template-file" value="web-vm.tpl"/> + <!-- 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="/tmp"/>--> + <!--<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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_cdr.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_cdr.conf.xml new file mode 100644 index 0000000000..6f8ef0deb5 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_cdr.conf.xml @@ -0,0 +1,71 @@ +<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 or 'base64' for base64 encoding --> + <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="/tmp"/> --> + + <!-- 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="$${base_dir}/conf/certs/public_key.pem"/> --> + <!-- <param name="ssl-key-path" value="$${base_dir}/conf/certs/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="$${base_dir}/conf/certs/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="/tmp/cookie-mod_xml_curl.txt"/> --> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_curl.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_curl.conf.xml new file mode 100644 index 0000000000..21e0af6b68 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_curl.conf.xml @@ -0,0 +1,47 @@ +<configuration name="xml_curl.conf" description="cURL XML Gateway"> + <bindings> + <binding name="example"> + <!-- 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="$${base_dir}/conf/certs/public_key.pem"/> --> + <!-- <param name="ssl-key-path" value="$${base_dir}/conf/certs/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="$${base_dir}/conf/certs/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="/tmp/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> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_rpc.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_rpc.conf.xml new file mode 100644 index 0000000000..714a909907 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/xml_rpc.conf.xml @@ -0,0 +1,10 @@ +<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"/> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/zeroconf.conf.xml b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/zeroconf.conf.xml new file mode 100644 index 0000000000..84c1a46171 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/autoload_configs/zeroconf.conf.xml @@ -0,0 +1,6 @@ +<configuration name="zeroconf.conf" description="Zeroconf Event Handler"> + <settings> + <param name="publish" value="yes"/> + <param name="browse" value="_sip._udp"/> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default.xml new file mode 100644 index 0000000000..5e388ffdbb --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default.xml @@ -0,0 +1,773 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + 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 --> +<include> + <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> + + <!-- 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" mweek="1" mon="9"> + <!-- labor day is the 1st monday in september --> + <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/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/${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> + <!-- + 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="${sip_has_crypto}" expression="^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$" break="never"> + <action application="set" data="sip_secure_media=true"/> + <!-- Offer SRTP on outbound legs if we have it on inbound. --> + <!-- <action application="export" data="sip_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}"/> + </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="$${hold_music}"/> + </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)}"/> + </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="set" data="dialed_extension=$1"/> + <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::$${recordings_dir}/${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="set" data="ringback=${us-ring}"/> + <action application="set" data="transfer_ringback=$${hold_music}"/> + <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="export" data="nolocal:sip_secure_media=${user_data(${dialed_extension}@${domain_name} var sip_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="^(20[01][0-9])$"> + <action application="bridge" data="skinny/internal/${destination_number}"/> + </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=$${hold_music}"/> + <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> + + <!-- BBB testing --> + + <extension name="bbb_conferences"> + <condition field="destination_number" expression="^(85\d{3})$"> + <action application="answer"/> + <action application="conference" data="$1@wideband"/> + </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/9999"/> + <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/9999"/> + <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=$${hold_music}"/> + <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="^(60\d[1-9])$"> + <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 $${hold_music}"/> + </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 $${hold_music}"/> + </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="/tmp/rxfax.tif"/> + <action application="hangup"/> + </condition> + </extension> + + <extension name="fax_transmit"> + <condition field="destination_number" expression="^9179$"> + <action application="txfax" data="/tmp/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=$${uk-ring}"/> + <action application="bridge" data="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=$${hold_music}"/> + <action application="bridge" data="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=$${uk-ring}"/> + <action application="answer"/> + <action application="bridge" data="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=$${hold_music}"/> + <action application="answer"/> + <action application="bridge" data="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/$${domain}/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="/tmp/testrecord.fsv"/> + </condition> + </extension> + + <extension name="video_playback"> + <condition field="destination_number" expression="^9194$"> + <action application="answer"/> + <action application="play_fsv" data="/tmp/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="tone_stream://%(251,0,1004);loops=-1"/> + </condition> + </extension> + + <extension name="tone_stream"> + <condition field="destination_number" expression="^9198$"> + <action application="answer"/> + <action application="playback" data="tone_stream://path=${base_dir}/conf/tetris.ttml;loops=10"/> + </condition> + </extension> + + <!-- install zrtp_agent.lua into scripts (ZRTP == 9787) --> + <extension name="zrtp_enrollement"> + <condition field="destination_number" expression="^9787$"> + <action application="answer"/> + <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="${sip_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="$${hold_music}"/> + <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="$${hold_music}"/> + </condition> + </extension> + + <!-- + You can place files in the default directory to get included. + --> + <X-PRE-PROCESS cmd="include" data="default/*.xml"/> + + <!-- + WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + + Anything you put below this line will usually get ignored due to the file in + default/99999_enum.xml as it will transfer the call to the enum dialplan. + + WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + --> + + <!-- + <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> + --> + + <!-- SEE WARNING ABOVE IF YOU ARE TRYING TO ADD EXTENSIONS HERE! --> + + </context> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/00_pizza_demo.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/00_pizza_demo.xml new file mode 100644 index 0000000000..e7fcca204a --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/00_pizza_demo.xml @@ -0,0 +1,9 @@ +<include> + <extension name="pizza_demo"> + <condition field="destination_number" expression="^(pizza|74992)$"/> + <condition field="${module_exists(mod_spidermonkey)}" expression="true"/> + <condition field="${module_exists(mod_pocketsphinx)}" expression="true"> + <action application="javascript" data="ps_pizza.js"/> + </condition> + </extension> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/01_example.com.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/01_example.com.xml new file mode 100644 index 0000000000..bd61cd2788 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/01_example.com.xml @@ -0,0 +1,30 @@ +<include> + + <extension name="local.example.com"> + <condition field="${toll_allow}" expression="local"/> + <condition field="destination_number" expression="^(\d{7})$"> + <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/> + <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/> + <action application="bridge" data="sofia/gateway/${default_gateway}/1${default_areacode}$1"/> + </condition> + </extension> + + <extension name="domestic.example.com"> + <condition field="${toll_allow}" expression="domestic"/> + <condition field="destination_number" expression="^(\d{11})$"> + <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/> + <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/> + <action application="bridge" data="sofia/gateway/${default_gateway}/$1"/> + </condition> + </extension> + + <extension name="international.example.com"> + <condition field="${toll_allow}" expression="international"/> + <condition field="destination_number" expression="^(011\d+)$"> + <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/> + <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/> + <action application="bridge" data="sofia/gateway/${default_gateway}/$1"/> + </condition> + </extension> + +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/99999_enum.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/99999_enum.xml new file mode 100644 index 0000000000..6fd2151859 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/default/99999_enum.xml @@ -0,0 +1,8 @@ +<include> + <extension name="enum"> + <condition field="${module_exists(mod_enum)}" expression="true"/> + <condition field="destination_number" expression="^(.*)$"> + <action application="transfer" data="$1 enum"/> + </condition> + </extension> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/features.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/features.xml new file mode 100644 index 0000000000..901b3091b7 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/features.xml @@ -0,0 +1,59 @@ +<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML --> +<include> + <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="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=$${hold_music}"/> + <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="${sip_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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/public.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/public.xml new file mode 100644 index 0000000000..14e2e1a3d8 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/public.xml @@ -0,0 +1,67 @@ +<!-- + 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 --> +<include> + <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"/> + </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. + --> + <X-PRE-PROCESS cmd="include" data="public/*.xml"/> + <!-- + 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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/public/00_inbound_did.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/public/00_inbound_did.xml new file mode 100644 index 0000000000..d40b3ab2c9 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/public/00_inbound_did.xml @@ -0,0 +1,18 @@ +<include> + <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. + + $${domain} 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=$${domain}"/> + <!-- This example maps the DID 5551212 to ring 1000 in the default context --> + <action application="transfer" data="1000 XML default"/> + </condition> + </extension> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns.xml new file mode 100644 index 0000000000..a78b83bdc7 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + NOTICE: + + This context is used for skinny to match dialed number + + The special applications: + - skinny-route tells skinny to route the call + - 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 --> +<include> + <context name="skinny-patterns"> + <!-- + Wait 10 seconds for another digit by 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. + --> + <X-PRE-PROCESS cmd="include" data="skinny-patterns/*.xml"/> + + </context> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/20-Demo.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/20-Demo.xml new file mode 100644 index 0000000000..0246fe29a4 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/20-Demo.xml @@ -0,0 +1,8 @@ +<include> + <extension name="Demo"> + <condition field="destination_number" expression="^(9[0-9]{3})$"> + <action application="skinny-route"/> + </condition> + </extension> +</include> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/20-Local_extension.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/20-Local_extension.xml new file mode 100644 index 0000000000..7e8c51859b --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/20-Local_extension.xml @@ -0,0 +1,13 @@ +<include> + <extension name="Local_Extension"> + <condition field="destination_number" expression="^(10[01][0-9])$"> + <action application="skinny-route"/> + </condition> + </extension> + <extension name="Local_Extension_Skinny"> + <condition field="destination_number" expression="^(20[01][0-9])$"> + <action application="skinny-route"/> + </condition> + </extension> +</include> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/90-External.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/90-External.xml new file mode 100644 index 0000000000..706bf74027 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/90-External.xml @@ -0,0 +1,8 @@ +<include> + <extension name="External"> + <condition field="destination_number" expression="^(0[0-9]{10,})$"> + <action application="skinny-route"/> + </condition> + </extension> +</include> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/99-Default_Drop.xml b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/99-Default_Drop.xml new file mode 100644 index 0000000000..897fd8fb94 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/dialplan/skinny-patterns/99-Default_Drop.xml @@ -0,0 +1,9 @@ +<include> + <!-- drop long dialed number --> + <extension name="Default_Drop"> + <condition field="destination_number" expression="^(.{14,})$"> + <action application="skinny-drop"/> + </condition> + </extension> +</include> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default.xml new file mode 100644 index 0000000000..1e583033a9 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default.xml @@ -0,0 +1,78 @@ +<!-- + 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 +--> + +<include> + <!--the domain or ip (the right hand side of the @ in the addr--> + <domain name="$${domain}"> + <params> + <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/> + </params> + + <variables> + <variable name="record_stereo" value="true"/> + <variable name="default_gateway" value="$${default_provider}"/> + <variable name="default_areacode" value="$${default_areacode}"/> + <variable name="transfer_fallback_extension" value="operator"/> + </variables> + + <groups> + <group name="default"> + <users> + <X-PRE-PROCESS cmd="include" data="default/*.xml"/> + </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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1000.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1000.xml new file mode 100644 index 0000000000..9bee406ddf --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1000.xml @@ -0,0 +1,18 @@ +<include> + <user id="1000"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1001.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1001.xml new file mode 100644 index 0000000000..97c1931c51 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1001.xml @@ -0,0 +1,18 @@ +<include> + <user id="1001"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1002.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1002.xml new file mode 100644 index 0000000000..d33691d100 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1002.xml @@ -0,0 +1,18 @@ +<include> + <user id="1002"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1003.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1003.xml new file mode 100644 index 0000000000..f8b5926c9d --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1003.xml @@ -0,0 +1,18 @@ +<include> + <user id="1003"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1004.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1004.xml new file mode 100644 index 0000000000..c3e7da5722 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1004.xml @@ -0,0 +1,18 @@ +<include> + <user id="1004"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1005.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1005.xml new file mode 100644 index 0000000000..0e1165f43f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1005.xml @@ -0,0 +1,18 @@ +<include> + <user id="1005"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1006.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1006.xml new file mode 100644 index 0000000000..beaaa7e9fc --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1006.xml @@ -0,0 +1,18 @@ +<include> + <user id="1006"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1007.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1007.xml new file mode 100644 index 0000000000..10470a5045 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1007.xml @@ -0,0 +1,18 @@ +<include> + <user id="1007"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1008.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1008.xml new file mode 100644 index 0000000000..0e63fcfde0 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1008.xml @@ -0,0 +1,18 @@ +<include> + <user id="1008"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1009.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1009.xml new file mode 100644 index 0000000000..24db7f8152 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1009.xml @@ -0,0 +1,18 @@ +<include> + <user id="1009"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1010.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1010.xml new file mode 100644 index 0000000000..6d8e0c1bab --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1010.xml @@ -0,0 +1,18 @@ +<include> + <user id="1010"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1011.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1011.xml new file mode 100644 index 0000000000..79d731de5e --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1011.xml @@ -0,0 +1,18 @@ +<include> + <user id="1011"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1012.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1012.xml new file mode 100644 index 0000000000..3839824fbc --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1012.xml @@ -0,0 +1,18 @@ +<include> + <user id="1012"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1013.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1013.xml new file mode 100644 index 0000000000..6f9c8e4753 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1013.xml @@ -0,0 +1,18 @@ +<include> + <user id="1013"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1014.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1014.xml new file mode 100644 index 0000000000..6a554c0650 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1014.xml @@ -0,0 +1,18 @@ +<include> + <user id="1014"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1015.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1015.xml new file mode 100644 index 0000000000..e94b8886a0 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1015.xml @@ -0,0 +1,18 @@ +<include> + <user id="1015"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1016.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1016.xml new file mode 100644 index 0000000000..4f856fc7be --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1016.xml @@ -0,0 +1,18 @@ +<include> + <user id="1016"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1017.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1017.xml new file mode 100644 index 0000000000..b0e43a0238 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1017.xml @@ -0,0 +1,18 @@ +<include> + <user id="1017"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1018.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1018.xml new file mode 100644 index 0000000000..6d7071942d --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1018.xml @@ -0,0 +1,18 @@ +<include> + <user id="1018"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1019.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1019.xml new file mode 100644 index 0000000000..f23a95f4ba --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/1019.xml @@ -0,0 +1,18 @@ +<include> + <user id="1019"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/bbbuser.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/bbbuser.xml new file mode 100644 index 0000000000..f4781d7820 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/bbbuser.xml @@ -0,0 +1,28 @@ +<include> + <!-- + ipauth if you have an cidr= in the user attributes ie cidr="1.2.3.4/32" + see <node type="allow" domain="$${domain}"/> in default acl.conf.xml + --> + <user id="bbbuser" cidr="192.168.1.0/24"> + <params> + <!-- omit password for authless registration --> + <param name="password" value="secret"/> + <!-- 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="BigBlueButton"/> + <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"/> + <!-- sip_secure_media will offer mandatory SRTP on invite AES_CM_128_HMAC_SHA1_32, AES_CM_128_HMAC_SHA1_80 or true--> + <variable name="sip_secure_media" value="false"/> + </variables> + + <vcard> + <!-- insert optional compliant vcard xml here--> + </vcard> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/brian.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/brian.xml new file mode 100644 index 0000000000..05fe0c8324 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/brian.xml @@ -0,0 +1,92 @@ +<include> + <!-- + ipauth if you have an cidr= in the user attributes ie cidr="1.2.3.4/32" + see <node type="allow" domain="$${domain}"/> 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="tport=tcp"/>--> + <!--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="$${default_password}"/> + <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"/> + <!-- sip_secure_media will offer mandatory SRTP on invite AES_CM_128_HMAC_SHA1_32, AES_CM_128_HMAC_SHA1_80 or true--> + <variable name="sip_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@$${domain}"/>--> + + <!-- 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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/default.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/default.xml new file mode 100644 index 0000000000..5db60112dc --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/default.xml @@ -0,0 +1,26 @@ +<include> + <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 warrned) + + 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="$${default_country}"/> + <variable name="default_areacode" value="$${default_areacode}"/> + <variable name="default_gateway" value="$${default_provider}"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/example.com.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/example.com.xml new file mode 100644 index 0000000000..42a33ddbf3 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/example.com.xml @@ -0,0 +1,26 @@ +<!-- + Shell provider account should work with most providers. + +--> +<include> + <user id="$${default_provider}"> + <gateways> + <gateway name="$${default_provider}"> + <param name="username" value="$${default_provider_username}"/> + <param name="password" value="$${default_provider_password}"/> + <param name="from-user" value="$${default_provider_username}"/> + <param name="from-domain" value="$${default_provider_from_domain}"/> + <param name="expire-seconds" value="600"/> + <param name="register" value="$${default_provider_register}"/> + <param name="retry-seconds" value="30"/> + <param name="extension" value="$${default_provider_contact}"/> + <!--<param name="contact-params" value="domain_name=$${domain}"/>--> + <param name="context" value="public"/> + </gateway> + </gateways> + <params> + <param name="password" value="$${default_provider_password}"/> + </params> + </user> +</include> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/skinny-example.xml b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/skinny-example.xml new file mode 100644 index 0000000000..f99725976f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/directory/default/skinny-example.xml @@ -0,0 +1,34 @@ +<include> + <user id="SEP001120AABBCC"> + <params> + <!-- for devices requesting firmware via SCCP, like ATA186 + <param name="skinny-firmware-version" value="ATA030101SCCP04" + --> + <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="2001" caller-name="Calling as 2001"/> + <button position="3" type="Line" label="Shared Line 10" value="2010" caller-name="Calling as 2010"/> + <!-- + value is the directory number to call + --> + <button position="5" type="SpeedDial" label="Test" value="2011"/> + <!-- + value is the URL + --> + <button position="6" type="ServiceUrl" label="Some URL" value="http://phone-xml.berbee.com/menu.xml"/> + </buttons> + </skinny> + </user> +</include> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/extensions.conf b/bbb-voice-conference/config/freeswitch/conf.orig/extensions.conf new file mode 100644 index 0000000000..f2c922efce --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/extensions.conf @@ -0,0 +1,21 @@ +[default] + +; Things you're used to.... +exten => music,n,Dial(SIP/1234@conference.freeswitch.org|120) + +exten => _1XXXXX,n,set(cool=${EXTEN}) +exten => _1XXXXX,n,set(myvar=true) +exten => _1XXXXX,n,Goto(default|music) +exten => 2137991400/1000,n,Goto(default|music) + + +; Some new magic you can do.... +exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,enum($1) +exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,bridge(${enum_auto_route}) + +; instead of exten, put anything about the call you would rather match on. +; either the names of a field in caller_profile or a string of variables to expand. +caller_id_number => 2137991400,n,Goto(default|music) +${sip_from_user} => bill,n,Goto(default|music) + + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/freeswitch.serial b/bbb-voice-conference/config/freeswitch/conf.orig/freeswitch.serial new file mode 100644 index 0000000000000000000000000000000000000000..d72590a059566000bd7d5f646582fe46f9b3c2f5 GIT binary patch literal 13 UcmYc`NVG68G)PQLG%;cT02t;2M*si- literal 0 HcmV?d00001 diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/freeswitch.xml b/bbb-voice-conference/config/freeswitch/conf.orig/freeswitch.xml new file mode 100644 index 0000000000..80e7728e0d --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/freeswitch.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- + 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"> + <!--#comment + All comments starting with #command will be preprocessed and never sent to the xml parser + Valid instructions: + #include ==> Include another file to this exact point + (partial xml should be encased in <include></include> tags) + #set ==> Set a global variable (can be expanded during preprocessing with $$ variables) + (note the double $$ which denotes preprocessor variables) + #comment ==> A general comment such as this + + The preprocessor will compile the full xml document to ${prefix}/log/freeswitch.xml.fsxml + Don't modify it while freeswitch is running cos it is mem mapped in most cases =D + + The same can be achieved with the <X-PRE-PROCESS> tag where the attrs 'cmd' and 'data' are + parsed in the same way. + --> + <!--#comment + vars.xml contains all the #set directives for the preprocessor. + --> + <X-PRE-PROCESS cmd="include" data="vars.xml"/> + + <section name="configuration" description="Various Configuration"> + <X-PRE-PROCESS cmd="include" data="autoload_configs/*.xml"/> + </section> + + <section name="dialplan" description="Regex/XML Dialplan"> + <X-PRE-PROCESS cmd="include" data="dialplan/*.xml"/> + </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"> + <X-PRE-PROCESS cmd="include" data="directory/*.xml"/> + </section> + + <!-- phrases section (under development still) --> + <section name="phrases" description="Speech Phrase Management"> + <macros> + <X-PRE-PROCESS cmd="include" data="lang/de/*.xml"/> + <X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/> + <X-PRE-PROCESS cmd="include" data="lang/fr/*.xml"/> + <X-PRE-PROCESS cmd="include" data="lang/ru/*.xml"/> + </macros> + </section> + +</document> + + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/fur_elise.ttml b/bbb-voice-conference/config/freeswitch/conf.orig/fur_elise.ttml new file mode 100644 index 0000000000..6e6ef03724 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/fur_elise.ttml @@ -0,0 +1,83 @@ +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 494) +%(167, 0, 554) +%(167, 0, 523) +%(333, 0, 440) +%(167, 0, 0) +%(167, 0, 262) +%(167, 0, 330) +%(167, 0, 440) +%(333, 0, 494) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 415) +%(167, 0, 494) +%(333, 0, 523) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 494) +%(167, 0, 554) +%(167, 0, 523) +%(333, 0, 440) +%(167, 0, 0) +%(167, 0, 262) +%(167, 0, 330) +%(167, 0, 440) +%(333, 0, 494) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 523) +%(167, 0, 494) +%(167, 0, 440) +%(167, 0, 0) +%(167, 0, 494) +%(167, 0, 523) +%(167, 0, 587) +%(333, 0, 659) +%(167, 0, 0) +%(167, 0, 392) +%(167, 0, 698) +%(167, 0, 784) +%(333, 0, 587) +%(167, 0, 0) +%(167, 0, 349) +%(167, 0, 659) +%(167, 0, 587) +%(333, 0, 523) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 587) +%(167, 0, 523) +%(333, 0, 494) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 659) +%(167, 0, 330) +%(167, 0, 659) +%(167, 0, 659) +%(167, 0, 1319) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 494) +%(167, 0, 554) +%(167, 0, 523) +%(333, 0, 440) diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/ivr_menus/demo_ivr.xml b/bbb-voice-conference/config/freeswitch/conf.orig/ivr_menus/demo_ivr.xml new file mode 100644 index 0000000000..72deef78e4 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/ivr_menus/demo_ivr.xml @@ -0,0 +1,64 @@ +<include> + <!-- 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/$${domain}/888@conference.freeswitch.org"/> + <entry action="menu-exec-app" digits="2" param="transfer 9996 XML default"/> <!-- FS echo --> + <entry action="menu-exec-app" digits="3" param="transfer 9999 XML default"/> <!-- MOH --> + <entry action="menu-exec-app" digits="4" param="transfer 9991 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> +--> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/jingle_profiles/client.xml b/bbb-voice-conference/config/freeswitch/conf.orig/jingle_profiles/client.xml new file mode 100644 index 0000000000..66c34929a3 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/jingle_profiles/client.xml @@ -0,0 +1,32 @@ +<include> + <!-- 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="$${xmpp_client_profile}"/> + <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="$${bind_server_ip}"/> + <!-- <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"/> + </x-profile> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/jingle_profiles/server.xml b/bbb-voice-conference/config/freeswitch/conf.orig/jingle_profiles/server.xml new file mode 100644 index 0000000000..b60dc27ea6 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/jingle_profiles/server.xml @@ -0,0 +1,21 @@ +<include> + <!-- 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="$${xmpp_server_profile}"/> + <param name="password" value="secret"/> + <param name="dialplan" value="XML"/> + <param name="context" value="public"/> + <param name="rtp-ip" value="$${bind_server_ip}"/> + <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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/de/de.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/de/de.xml new file mode 100644 index 0000000000..5239489f75 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/de/de.xml @@ -0,0 +1,7 @@ +<include> + <language name="de" sound-path="/snds" tts-engine="cepstral" tts-voice="david"> + <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/> + <!--voicemail_de_tts is purely implemented with tts, we need a files based implementation too --> + <X-PRE-PROCESS cmd="include" data="vm/tts.xml"/> + </language> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/de/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/de/demo/demo.xml new file mode 100644 index 0000000000..61582b2052 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/de/demo/demo.xml @@ -0,0 +1,71 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/de/vm/tts.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/de/vm/tts.xml new file mode 100644 index 0000000000..7a8f18cf50 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/de/vm/tts.xml @@ -0,0 +1,214 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/demo/demo-ivr.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/demo/demo-ivr.xml new file mode 100644 index 0000000000..ec7d7bccd2 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/demo/demo-ivr.xml @@ -0,0 +1,148 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/demo/demo.xml new file mode 100644 index 0000000000..e3e6f02142 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/demo/demo.xml @@ -0,0 +1,71 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/dir/sounds.xml new file mode 100644 index 0000000000..02d6b3671f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/dir/sounds.xml @@ -0,0 +1,121 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/dir/tts.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/dir/tts.xml new file mode 100644 index 0000000000..67ae5ab265 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/dir/tts.xml @@ -0,0 +1,96 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + <macro name="directory_intro"> + <input pattern="^(last_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Please enter the first few digit of the person last name"/> + </match> + </input> + <input pattern="^(first_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Please enter the first few digit of the person first name"/> + </match> + </input> + <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="to search by first name, press $2"/> + </match> + </input> + <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="to search by last name, press $2"/> + </match> + </input> + </macro> + + <macro name="directory_min_search_digits"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/> + </match> + </input> + </macro> + + <macro name="directory_result_count"> + <input pattern="^0$" break_on_match="true"> + <match> + <action function="speak-text" data="Your search match no user on this system, try again."/> + </match> + </input> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 result match your search"/> + </match> + </input> + </macro> + + <macro name="directory_result_count_too_large"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Your search returned too many result, please try again"/> + </match> + </input> + + </macro> + + <macro name="directory_result_last"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="No more result"/> + </match> + </input> + + </macro> + + <macro name="directory_result_item"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Result number $1"/> + </match> + </input> + </macro> + + <macro name="directory_result_menu"> + <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$"> + <match> + <action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/> + </match> + </input> + </macro> + + <macro name="directory_result_at"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="at extension $1"/> + </match> + </input> + </macro> + <macro name="directory_result_say_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1"/> + </match> + </input> + </macro> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/en.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/en.xml new file mode 100644 index 0000000000..6bd5a7d5fb --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/en.xml @@ -0,0 +1,8 @@ +<include> + <language name="en" sound-path="$${sounds_dir}/en/us/callie" tts-engine="cepstral" tts-voice="callie"> + <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> + <!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. --> + <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral --> + <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral --> + </language> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/vm/sounds.xml new file mode 100644 index 0000000000..5a090411d7 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/vm/sounds.xml @@ -0,0 +1,404 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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-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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/vm/tts.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/vm/tts.xml new file mode 100644 index 0000000000..1fc877d50e --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/en/vm/tts.xml @@ -0,0 +1,239 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <macro name="voicemail_enter_id"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="please enter your i d, followed by $1."/> + </match> + </input> + </macro> + + <macro name="voicemail_enter_pass"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="please enter your password, followed by $1."/> + </match> + </input> + </macro> + + <macro name="voicemail_fail_auth"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="login incorrect."/> + </match> + </input> + </macro> + + <macro name="voicemail_hello"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="welcome to your voicemail."/> + </match> + </input> + </macro> + + <macro name="voicemail_goodbye"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="goodbye."/> + </match> + </input> + </macro> + + <macro name="voicemail_abort"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="too many failed attempts."/> + </match> + </input> + </macro> + + <macro name="voicemail_message_count"> + <input pattern="^1:(.*)$" break_on_match="true"> + <match> + <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/> + </match> + </input> + <input pattern="^(\d+):(.*)$"> + <match> + <action function="speak-text" data="you have $1 $2 messages in folder ${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="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $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="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/> + </match> + </input> + </macro> + + + <macro name="voicemail_record_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/> + + </match> + </input> + </macro> + + <macro name="voicemail_record_file_check"> + <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$"> + <match> + <action function="speak-text" + data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_urgent_check"> + <input pattern="^([0-9#*]):([0-9#*])$"> + <match> + <action function="speak-text" + data="To mark this message urgent, press $1, To continue, press $2."/> + </match> + </input> + </macro> + + <macro name="voicemail_invalid_extension"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="$1 is not a valid extension."/> + </match> + </input> + </macro> + + <macro name="voicemail_forward_message_enter_extension"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/> + </match> + </input> + </macro> + + <macro name="voicemail_forward_prepend"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="To record an announcement, press $1."/> + </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="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/> + </match> + </input> + </macro> + + <macro name="voicemail_choose_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="choose a greeting between 1 and 3."/> + </match> + </input> + </macro> + + <macro name="voicemail_choose_greeting_fail"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="invalid value."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_message"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/> + </match> + </input> + </macro> + + <macro name="voicemail_greeting_selected"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="greeting $1 selected."/> + </match> + </input> + </macro> + + <macro name="voicemail_play_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 is not available."/> + </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 message number $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="message $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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/demo/demo.xml new file mode 100644 index 0000000000..80660203a3 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/demo/demo.xml @@ -0,0 +1,18 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> +<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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/dir/sounds.xml new file mode 100644 index 0000000000..02d6b3671f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/dir/sounds.xml @@ -0,0 +1,121 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/dir/tts.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/dir/tts.xml new file mode 100644 index 0000000000..1f5b0caa63 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/dir/tts.xml @@ -0,0 +1,101 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + <macro name="directory_intro"> + <input pattern="^(last_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Veuillez entrer les premières lettres du nom de famille"/> + </match> + </input> + <input pattern="^(first_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Veuillez entrer les premières lettres du prénom"/> + </match> + </input> + <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="pour chercher par prénom, tapez $2"/> + </match> + </input> + <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="pour chercher par nom de famille, tapez $2"/> + </match> + </input> + </macro> + + <macro name="directory_min_search_digits"> + <input pattern="^(1)$"> + <match> + <action function="speak-text" data="Vous devez entrer au minimum une lettre du nom de la personne, essayez encore"/> + </match> + </input> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Vous devez entrer au minimum $1 lettres du nom de la personne, essayer encore"/> + </match> + </input> + </macro> + + <macro name="directory_result_count"> + <input pattern="^0$" break_on_match="true"> + <match> + <action function="speak-text" data="Votre recherche n'a retournée aucun résultat, essayez encore"/> + </match> + </input> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 résultats correspondent à votre recherche"/> + </match> + </input> + </macro> + + <macro name="directory_result_count_too_large"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Votre recherche retourne trop de résultats, essayer encore"/> + </match> + </input> + + </macro> + + <macro name="directory_result_last"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Fin des résultats."/> + </match> + </input> + + </macro> + + <macro name="directory_result_item"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Résultat numéro $1"/> + </match> + </input> + </macro> + + <macro name="directory_result_menu"> + <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$"> + <match> + <action function="speak-text" data="Pour sélectionner ce nom, tapez $1, pour le nom suivant tapez $2, pour le nom précédent, tapez $3, pour faire une nouvelle recherche, tapez $4"/> + </match> + </input> + </macro> + + <macro name="directory_result_at"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="au poste $1"/> + </match> + </input> + </macro> + <macro name="directory_result_say_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1"/> + </match> + </input> + </macro> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/fr.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/fr.xml new file mode 100644 index 0000000000..12bec06f20 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/fr.xml @@ -0,0 +1,8 @@ +<include> + <language name="fr" sound-path="/snds" tts-engine="cepstral" tts-voice="david"> + <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/> + <!--voicemail_fr_tts is purely implemented with tts, we need a files based implementation too --> + <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> + <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral --> + </language> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/vm/sounds.xml new file mode 100644 index 0000000000..55190a6bac --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/fr/vm/sounds.xml @@ -0,0 +1,246 @@ +<?xml version="1.0" encoding="utf-8"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> \ No newline at end of file diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/demo/demo-ivr.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/demo/demo-ivr.xml new file mode 100644 index 0000000000..8c6f3f8624 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/demo/demo-ivr.xml @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/demo/demo.xml new file mode 100644 index 0000000000..7e450fbc83 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/demo/demo.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + <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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/dir/sounds.xml new file mode 100644 index 0000000000..02d6b3671f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/dir/sounds.xml @@ -0,0 +1,121 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/dir/tts.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/dir/tts.xml new file mode 100644 index 0000000000..67ae5ab265 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/dir/tts.xml @@ -0,0 +1,96 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + <macro name="directory_intro"> + <input pattern="^(last_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Please enter the first few digit of the person last name"/> + </match> + </input> + <input pattern="^(first_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Please enter the first few digit of the person first name"/> + </match> + </input> + <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="to search by first name, press $2"/> + </match> + </input> + <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="to search by last name, press $2"/> + </match> + </input> + </macro> + + <macro name="directory_min_search_digits"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/> + </match> + </input> + </macro> + + <macro name="directory_result_count"> + <input pattern="^0$" break_on_match="true"> + <match> + <action function="speak-text" data="Your search match no user on this system, try again."/> + </match> + </input> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 result match your search"/> + </match> + </input> + </macro> + + <macro name="directory_result_count_too_large"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Your search returned too many result, please try again"/> + </match> + </input> + + </macro> + + <macro name="directory_result_last"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="No more result"/> + </match> + </input> + + </macro> + + <macro name="directory_result_item"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Result number $1"/> + </match> + </input> + </macro> + + <macro name="directory_result_menu"> + <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$"> + <match> + <action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/> + </match> + </input> + </macro> + + <macro name="directory_result_at"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="at extension $1"/> + </match> + </input> + </macro> + <macro name="directory_result_say_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1"/> + </match> + </input> + </macro> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/ru.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/ru.xml new file mode 100644 index 0000000000..25d63b6110 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/ru.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<!--теÑтовые файлы Ð’Ñ‹ звуковые файлы можно взÑÑ‚ÑŒ тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/ --> +<include> + <language name="ru" sound-path="$${sounds_dir}/ru/RU/elena" tts-engine="cepstral" tts-voice="elena"> + <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> + <!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. --> + <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral --> + </language> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/vm/sounds.xml new file mode 100644 index 0000000000..ffd9ec5d8c --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/vm/sounds.xml @@ -0,0 +1,365 @@ +<?xml version="1.0" encoding="utf-8"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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-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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/vm/tts.xml b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/vm/tts.xml new file mode 100644 index 0000000000..1fc877d50e --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/lang/ru/vm/tts.xml @@ -0,0 +1,239 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <macro name="voicemail_enter_id"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="please enter your i d, followed by $1."/> + </match> + </input> + </macro> + + <macro name="voicemail_enter_pass"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="please enter your password, followed by $1."/> + </match> + </input> + </macro> + + <macro name="voicemail_fail_auth"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="login incorrect."/> + </match> + </input> + </macro> + + <macro name="voicemail_hello"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="welcome to your voicemail."/> + </match> + </input> + </macro> + + <macro name="voicemail_goodbye"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="goodbye."/> + </match> + </input> + </macro> + + <macro name="voicemail_abort"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="too many failed attempts."/> + </match> + </input> + </macro> + + <macro name="voicemail_message_count"> + <input pattern="^1:(.*)$" break_on_match="true"> + <match> + <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/> + </match> + </input> + <input pattern="^(\d+):(.*)$"> + <match> + <action function="speak-text" data="you have $1 $2 messages in folder ${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="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $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="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/> + </match> + </input> + </macro> + + + <macro name="voicemail_record_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/> + + </match> + </input> + </macro> + + <macro name="voicemail_record_file_check"> + <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$"> + <match> + <action function="speak-text" + data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_urgent_check"> + <input pattern="^([0-9#*]):([0-9#*])$"> + <match> + <action function="speak-text" + data="To mark this message urgent, press $1, To continue, press $2."/> + </match> + </input> + </macro> + + <macro name="voicemail_invalid_extension"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="$1 is not a valid extension."/> + </match> + </input> + </macro> + + <macro name="voicemail_forward_message_enter_extension"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/> + </match> + </input> + </macro> + + <macro name="voicemail_forward_prepend"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="To record an announcement, press $1."/> + </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="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/> + </match> + </input> + </macro> + + <macro name="voicemail_choose_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="choose a greeting between 1 and 3."/> + </match> + </input> + </macro> + + <macro name="voicemail_choose_greeting_fail"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="invalid value."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_message"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/> + </match> + </input> + </macro> + + <macro name="voicemail_greeting_selected"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="greeting $1 selected."/> + </match> + </input> + </macro> + + <macro name="voicemail_play_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 is not available."/> + </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 message number $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="message $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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/mime.types b/bbb-voice-conference/config/freeswitch/conf.orig/mime.types new file mode 100644 index 0000000000..34d5fc9055 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/mime.types @@ -0,0 +1,983 @@ +# This is a comment. I love comments. + +# This file controls what Internet media types are sent to the client for +# given file extension(s). Sending the correct media type to the client +# is important so they know how to handle the content of the file. +# Extra types can either be added here or by using an AddType directive +# in your config files. For more information about Internet media types, +# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type +# registry is at <http://www.iana.org/assignments/media-types/>. + +# MIME type Extensions +application/activemessage +application/andrew-inset ez +application/applefile +application/atom+xml atom +application/atomcat+xml atomcat +application/atomicmail +application/atomsvc+xml atomsvc +application/auth-policy+xml +application/batch-smtp +application/beep+xml +application/cals-1840 +application/ccxml+xml ccxml +application/cellml+xml +application/cnrp+xml +application/commonground +application/conference-info+xml +application/cpl+xml +application/csta+xml +application/cstadata+xml +application/cybercash +application/davmount+xml davmount +application/dca-rft +application/dec-dx +application/dialog-info+xml +application/dicom +application/dns +application/dvcs +application/ecmascript ecma +application/edi-consent +application/edi-x12 +application/edifact +application/epp+xml +application/eshop +application/fastinfoset +application/fastsoap +application/fits +application/font-tdpfr pfr +application/h224 +application/http +application/hyperstudio stk +application/iges +application/im-iscomposing+xml +application/index +application/index.cmd +application/index.obj +application/index.response +application/index.vnd +application/iotp +application/ipp +application/isup +application/javascript js +application/json json +application/kpml-request+xml +application/kpml-response+xml +application/mac-binhex40 hqx +application/mac-compactpro cpt +application/macwriteii +application/marc mrc +application/mathematica ma nb mb +application/mathml+xml mathml +application/mbms-associated-procedure-description+xml +application/mbms-deregister+xml +application/mbms-envelope+xml +application/mbms-msk+xml +application/mbms-msk-response+xml +application/mbms-protection-description+xml +application/mbms-reception-report+xml +application/mbms-register+xml +application/mbms-register-response+xml +application/mbms-user-service-description+xml +application/mbox mbox +application/mediaservercontrol+xml mscml +application/mikey +application/mp4 mp4s +application/mpeg4-generic +application/mpeg4-iod +application/mpeg4-iod-xmt +application/msword doc dot +application/mxf mxf +application/nasdata +application/news-message-id +application/news-transmission +application/nss +application/ocsp-request +application/ocsp-response +application/octet-stream bin dms lha lzh class so iso dmg dist distz pkg bpk dump elc +application/oda oda +application/oebps-package+xml +application/ogg ogg +application/parityfec +application/pdf pdf +application/pgp-encrypted pgp +application/pgp-keys +application/pgp-signature asc sig +application/pics-rules prf +application/pidf+xml +application/pkcs10 p10 +application/pkcs7-mime p7m p7c +application/pkcs7-signature p7s +application/pkix-cert cer +application/pkix-crl crl +application/pkix-pkipath pkipath +application/pkixcmp pki +application/pls+xml pls +application/poc-settings+xml +application/postscript ai eps ps +application/prs.alvestrand.titrax-sheet +application/prs.cww cww +application/prs.nprend +application/prs.plucker +application/qsig +application/rdf+xml rdf +application/reginfo+xml rif +application/relax-ng-compact-syntax rnc +application/remote-printing +application/resource-lists+xml rl +application/riscos +application/rlmi+xml +application/rls-services+xml rs +application/rsd+xml rsd +application/rss+xml rss +application/rtf rtf +application/rtx +application/samlassertion+xml +application/samlmetadata+xml +application/sbml+xml sbml +application/sdp sdp +application/set-payment +application/set-payment-initiation setpay +application/set-registration +application/set-registration-initiation setreg +application/sgml +application/sgml-open-catalog +application/shf+xml shf +application/sieve +application/simple-filter+xml +application/simple-message-summary +application/simplesymbolcontainer +application/slate +application/smil +application/smil+xml smi smil +application/soap+fastinfoset +application/soap+xml +application/spirits-event+xml +application/srgs gram +application/srgs+xml grxml +application/ssml+xml ssml +application/timestamp-query +application/timestamp-reply +application/tve-trigger +application/vemmi +application/vividence.scriptfile +application/vnd.3gpp.bsf+xml +application/vnd.3gpp.pic-bw-large plb +application/vnd.3gpp.pic-bw-small psb +application/vnd.3gpp.pic-bw-var pvb +application/vnd.3gpp.sms +application/vnd.3gpp2.bcmcsinfo+xml +application/vnd.3gpp2.sms +application/vnd.3m.post-it-notes pwn +application/vnd.accpac.simply.aso aso +application/vnd.accpac.simply.imp imp +application/vnd.acucobol acu +application/vnd.acucorp atc acutc +application/vnd.adobe.xdp+xml xdp +application/vnd.adobe.xfdf xfdf +application/vnd.aether.imp +application/vnd.amiga.ami ami +application/vnd.anser-web-certificate-issue-initiation cii +application/vnd.anser-web-funds-transfer-initiation fti +application/vnd.antix.game-component atx +application/vnd.apple.installer+xml mpkg +application/vnd.audiograph aep +application/vnd.autopackage +application/vnd.avistar+xml +application/vnd.blueice.multipass mpm +application/vnd.bmi bmi +application/vnd.businessobjects rep +application/vnd.cab-jscript +application/vnd.canon-cpdl +application/vnd.canon-lips +application/vnd.cendio.thinlinc.clientconf +application/vnd.chemdraw+xml cdxml +application/vnd.chipnuts.karaoke-mmd mmd +application/vnd.cinderella cdy +application/vnd.cirpack.isdn-ext +application/vnd.claymore cla +application/vnd.clonk.c4group c4g c4d c4f c4p c4u +application/vnd.commerce-battelle +application/vnd.commonspace csp cst +application/vnd.contact.cmsg cdbcmsg +application/vnd.cosmocaller cmc +application/vnd.crick.clicker clkx +application/vnd.crick.clicker.keyboard clkk +application/vnd.crick.clicker.palette clkp +application/vnd.crick.clicker.template clkt +application/vnd.crick.clicker.wordbank clkw +application/vnd.criticaltools.wbs+xml wbs +application/vnd.ctc-posml pml +application/vnd.cups-pdf +application/vnd.cups-postscript +application/vnd.cups-ppd ppd +application/vnd.cups-raster +application/vnd.cups-raw +application/vnd.curl curl +application/vnd.cybank +application/vnd.data-vision.rdz rdz +application/vnd.denovo.fcselayout-link fe_launch +application/vnd.dna dna +application/vnd.dolby.mlp mlp +application/vnd.dpgraph dpg +application/vnd.dreamfactory dfac +application/vnd.dvb.esgcontainer +application/vnd.dvb.ipdcesgaccess +application/vnd.dxr +application/vnd.ecdis-update +application/vnd.ecowin.chart mag +application/vnd.ecowin.filerequest +application/vnd.ecowin.fileupdate +application/vnd.ecowin.series +application/vnd.ecowin.seriesrequest +application/vnd.ecowin.seriesupdate +application/vnd.enliven nml +application/vnd.epson.esf esf +application/vnd.epson.msf msf +application/vnd.epson.quickanime qam +application/vnd.epson.salt slt +application/vnd.epson.ssf ssf +application/vnd.ericsson.quickcall +application/vnd.eszigno3+xml es3 et3 +application/vnd.eudora.data +application/vnd.ezpix-album ez2 +application/vnd.ezpix-package ez3 +application/vnd.fdf fdf +application/vnd.ffsns +application/vnd.fints +application/vnd.flographit gph +application/vnd.fluxtime.clip ftc +application/vnd.framemaker fm frame maker +application/vnd.frogans.fnc fnc +application/vnd.frogans.ltf ltf +application/vnd.fsc.weblaunch fsc +application/vnd.fujitsu.oasys oas +application/vnd.fujitsu.oasys2 oa2 +application/vnd.fujitsu.oasys3 oa3 +application/vnd.fujitsu.oasysgp fg5 +application/vnd.fujitsu.oasysprs bh2 +application/vnd.fujixerox.art-ex +application/vnd.fujixerox.art4 +application/vnd.fujixerox.hbpl +application/vnd.fujixerox.ddd ddd +application/vnd.fujixerox.docuworks xdw +application/vnd.fujixerox.docuworks.binder xbd +application/vnd.fut-misnet +application/vnd.fuzzysheet fzs +application/vnd.genomatix.tuxedo txd +application/vnd.google-earth.kml+xml kml +application/vnd.google-earth.kmz kmz +application/vnd.grafeq gqf gqs +application/vnd.gridmp +application/vnd.groove-account gac +application/vnd.groove-help ghf +application/vnd.groove-identity-message gim +application/vnd.groove-injector grv +application/vnd.groove-tool-message gtm +application/vnd.groove-tool-template tpl +application/vnd.groove-vcard vcg +application/vnd.handheld-entertainment+xml zmm +application/vnd.hbci hbci +application/vnd.hcl-bireports +application/vnd.hhe.lesson-player les +application/vnd.hp-hpgl hpgl +application/vnd.hp-hpid hpid +application/vnd.hp-hps hps +application/vnd.hp-jlyt jlt +application/vnd.hp-pcl pcl +application/vnd.hp-pclxl pclxl +application/vnd.httphone +application/vnd.hzn-3d-crossword x3d +application/vnd.ibm.afplinedata +application/vnd.ibm.electronic-media +application/vnd.ibm.minipay mpy +application/vnd.ibm.modcap afp listafp list3820 +application/vnd.ibm.rights-management irm +application/vnd.ibm.secure-container sc +application/vnd.igloader igl +application/vnd.immervision-ivp ivp +application/vnd.immervision-ivu ivu +application/vnd.informedcontrol.rms+xml +application/vnd.intercon.formnet xpw xpx +application/vnd.intertrust.digibox +application/vnd.intertrust.nncp +application/vnd.intu.qbo qbo +application/vnd.intu.qfx qfx +application/vnd.ipunplugged.rcprofile rcprofile +application/vnd.irepository.package+xml irp +application/vnd.is-xpr xpr +application/vnd.jam jam +application/vnd.japannet-directory-service +application/vnd.japannet-jpnstore-wakeup +application/vnd.japannet-payment-wakeup +application/vnd.japannet-registration +application/vnd.japannet-registration-wakeup +application/vnd.japannet-setstore-wakeup +application/vnd.japannet-verification +application/vnd.japannet-verification-wakeup +application/vnd.jcp.javame.midlet-rms rms +application/vnd.jisp jisp +application/vnd.kahootz ktz ktr +application/vnd.kde.karbon karbon +application/vnd.kde.kchart chrt +application/vnd.kde.kformula kfo +application/vnd.kde.kivio flw +application/vnd.kde.kontour kon +application/vnd.kde.kpresenter kpr kpt +application/vnd.kde.kspread ksp +application/vnd.kde.kword kwd kwt +application/vnd.kenameaapp htke +application/vnd.kidspiration kia +application/vnd.kinar kne knp +application/vnd.koan skp skd skt skm +application/vnd.liberty-request+xml +application/vnd.llamagraphics.life-balance.desktop lbd +application/vnd.llamagraphics.life-balance.exchange+xml lbe +application/vnd.lotus-1-2-3 123 +application/vnd.lotus-approach apr +application/vnd.lotus-freelance pre +application/vnd.lotus-notes nsf +application/vnd.lotus-organizer org +application/vnd.lotus-screencam scm +application/vnd.lotus-wordpro lwp +application/vnd.macports.portpkg portpkg +application/vnd.marlin.drm.actiontoken+xml +application/vnd.marlin.drm.conftoken+xml +application/vnd.marlin.drm.mdcf +application/vnd.mcd mcd +application/vnd.medcalcdata mc1 +application/vnd.mediastation.cdkey cdkey +application/vnd.meridian-slingshot +application/vnd.mfer mwf +application/vnd.mfmp mfm +application/vnd.micrografx.flo flo +application/vnd.micrografx.igx igx +application/vnd.mif mif +application/vnd.minisoft-hp3000-save +application/vnd.mitsubishi.misty-guard.trustweb +application/vnd.mobius.daf daf +application/vnd.mobius.dis dis +application/vnd.mobius.mbk mbk +application/vnd.mobius.mqy mqy +application/vnd.mobius.msl msl +application/vnd.mobius.plc plc +application/vnd.mobius.txf txf +application/vnd.mophun.application mpn +application/vnd.mophun.certificate mpc +application/vnd.motorola.flexsuite +application/vnd.motorola.flexsuite.adsi +application/vnd.motorola.flexsuite.fis +application/vnd.motorola.flexsuite.gotap +application/vnd.motorola.flexsuite.kmr +application/vnd.motorola.flexsuite.ttc +application/vnd.motorola.flexsuite.wem +application/vnd.mozilla.xul+xml xul +application/vnd.ms-artgalry cil +application/vnd.ms-asf asf +application/vnd.ms-cab-compressed cab +application/vnd.ms-excel xls xlm xla xlc xlt xlw +application/vnd.ms-fontobject eot +application/vnd.ms-htmlhelp chm +application/vnd.ms-ims ims +application/vnd.ms-lrm lrm +application/vnd.ms-playready.initiator+xml +application/vnd.ms-powerpoint ppt pps pot +application/vnd.ms-project mpp mpt +application/vnd.ms-tnef +application/vnd.ms-wmdrm.lic-chlg-req +application/vnd.ms-wmdrm.lic-resp +application/vnd.ms-wmdrm.meter-chlg-req +application/vnd.ms-wmdrm.meter-resp +application/vnd.ms-works wps wks wcm wdb +application/vnd.ms-wpl wpl +application/vnd.ms-xpsdocument xps +application/vnd.mseq mseq +application/vnd.msign +application/vnd.music-niff +application/vnd.musician mus +application/vnd.ncd.control +application/vnd.nervana +application/vnd.netfpx +application/vnd.neurolanguage.nlu nlu +application/vnd.noblenet-directory nnd +application/vnd.noblenet-sealer nns +application/vnd.noblenet-web nnw +application/vnd.nokia.catalogs +application/vnd.nokia.conml+wbxml +application/vnd.nokia.conml+xml +application/vnd.nokia.isds-radio-presets +application/vnd.nokia.iptv.config+xml +application/vnd.nokia.landmark+wbxml +application/vnd.nokia.landmark+xml +application/vnd.nokia.landmarkcollection+xml +application/vnd.nokia.n-gage.ac+xml +application/vnd.nokia.n-gage.data ngdat +application/vnd.nokia.n-gage.symbian.install n-gage +application/vnd.nokia.ncd +application/vnd.nokia.pcd+wbxml +application/vnd.nokia.pcd+xml +application/vnd.nokia.radio-preset rpst +application/vnd.nokia.radio-presets rpss +application/vnd.novadigm.edm edm +application/vnd.novadigm.edx edx +application/vnd.novadigm.ext ext +application/vnd.oasis.opendocument.chart odc +application/vnd.oasis.opendocument.chart-template otc +application/vnd.oasis.opendocument.formula odf +application/vnd.oasis.opendocument.formula-template otf +application/vnd.oasis.opendocument.graphics odg +application/vnd.oasis.opendocument.graphics-template otg +application/vnd.oasis.opendocument.image odi +application/vnd.oasis.opendocument.image-template oti +application/vnd.oasis.opendocument.presentation odp +application/vnd.oasis.opendocument.presentation-template otp +application/vnd.oasis.opendocument.spreadsheet ods +application/vnd.oasis.opendocument.spreadsheet-template ots +application/vnd.oasis.opendocument.text odt +application/vnd.oasis.opendocument.text-master otm +application/vnd.oasis.opendocument.text-template ott +application/vnd.oasis.opendocument.text-web oth +application/vnd.obn +application/vnd.olpc-sugar xo +application/vnd.oma-scws-config +application/vnd.oma-scws-http-request +application/vnd.oma-scws-http-response +application/vnd.oma.bcast.associated-procedure-parameter+xml +application/vnd.oma.bcast.drm-trigger+xml +application/vnd.oma.bcast.imd+xml +application/vnd.oma.bcast.notification+xml +application/vnd.oma.bcast.sgboot +application/vnd.oma.bcast.sgdd+xml +application/vnd.oma.bcast.sgdu +application/vnd.oma.bcast.simple-symbol-container +application/vnd.oma.bcast.smartcard-trigger+xml +application/vnd.oma.bcast.sprov+xml +application/vnd.oma.dd2+xml dd2 +application/vnd.oma.drm.risd+xml +application/vnd.oma.group-usage-list+xml +application/vnd.oma.poc.groups+xml +application/vnd.oma.xcap-directory+xml +application/vnd.omads-email+xml +application/vnd.omads-file+xml +application/vnd.omads-folder+xml +application/vnd.omaloc-supl-init +application/vnd.openofficeorg.extension oxt +application/vnd.osa.netdeploy +application/vnd.osgi.dp dp +application/vnd.otps.ct-kip+xml +application/vnd.palm prc pdb pqa oprc +application/vnd.paos.xml +application/vnd.pg.format str +application/vnd.pg.osasli ei6 +application/vnd.piaccess.application-licence +application/vnd.picsel efif +application/vnd.poc.group-advertisement+xml +application/vnd.pocketlearn plf +application/vnd.powerbuilder6 pbd +application/vnd.powerbuilder6-s +application/vnd.powerbuilder7 +application/vnd.powerbuilder7-s +application/vnd.powerbuilder75 +application/vnd.powerbuilder75-s +application/vnd.preminet +application/vnd.previewsystems.box box +application/vnd.proteus.magazine mgz +application/vnd.publishare-delta-tree qps +application/vnd.pvi.ptid1 ptid +application/vnd.pwg-multiplexed +application/vnd.pwg-xhtml-print+xml +application/vnd.qualcomm.brew-app-res +application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb +application/vnd.rapid +application/vnd.recordare.musicxml mxl +application/vnd.recordare.musicxml+xml +application/vnd.renlearn.rlprint +application/vnd.rn-realmedia rm +application/vnd.ruckus.download +application/vnd.s3sms +application/vnd.scribus +application/vnd.sealed.3df +application/vnd.sealed.csf +application/vnd.sealed.doc +application/vnd.sealed.eml +application/vnd.sealed.mht +application/vnd.sealed.net +application/vnd.sealed.ppt +application/vnd.sealed.tiff +application/vnd.sealed.xls +application/vnd.sealedmedia.softseal.html +application/vnd.sealedmedia.softseal.pdf +application/vnd.seemail see +application/vnd.sema sema +application/vnd.semd semd +application/vnd.semf semf +application/vnd.shana.informed.formdata ifm +application/vnd.shana.informed.formtemplate itp +application/vnd.shana.informed.interchange iif +application/vnd.shana.informed.package ipk +application/vnd.simtech-mindmapper twd twds +application/vnd.smaf mmf +application/vnd.solent.sdkm+xml sdkm sdkd +application/vnd.spotfire.dxp dxp +application/vnd.spotfire.sfs sfs +application/vnd.sss-cod +application/vnd.sss-dtf +application/vnd.sss-ntf +application/vnd.street-stream +application/vnd.sun.wadl+xml +application/vnd.sus-calendar sus susp +application/vnd.svd svd +application/vnd.swiftview-ics +application/vnd.syncml+xml xsm +application/vnd.syncml.dm+wbxml bdm +application/vnd.syncml.dm+xml xdm +application/vnd.syncml.ds.notification +application/vnd.tao.intent-module-archive tao +application/vnd.tmobile-livetv tmo +application/vnd.trid.tpt tpt +application/vnd.triscape.mxs mxs +application/vnd.trueapp tra +application/vnd.truedoc +application/vnd.ufdl ufd ufdl +application/vnd.uiq.theme utz +application/vnd.umajin umj +application/vnd.unity unityweb +application/vnd.uoml+xml uoml +application/vnd.uplanet.alert +application/vnd.uplanet.alert-wbxml +application/vnd.uplanet.bearer-choice +application/vnd.uplanet.bearer-choice-wbxml +application/vnd.uplanet.cacheop +application/vnd.uplanet.cacheop-wbxml +application/vnd.uplanet.channel +application/vnd.uplanet.channel-wbxml +application/vnd.uplanet.list +application/vnd.uplanet.list-wbxml +application/vnd.uplanet.listcmd +application/vnd.uplanet.listcmd-wbxml +application/vnd.uplanet.signal +application/vnd.vcx vcx +application/vnd.vd-study +application/vnd.vectorworks +application/vnd.vidsoft.vidconference +application/vnd.visio vsd vst vss vsw +application/vnd.visionary vis +application/vnd.vividence.scriptfile +application/vnd.vsf vsf +application/vnd.wap.sic +application/vnd.wap.slc +application/vnd.wap.wbxml wbxml +application/vnd.wap.wmlc wmlc +application/vnd.wap.wmlscriptc wmlsc +application/vnd.webturbo wtb +application/vnd.wfa.wsc +application/vnd.wordperfect wpd +application/vnd.wqd wqd +application/vnd.wrq-hp3000-labelled +application/vnd.wt.stf stf +application/vnd.wv.csp+wbxml +application/vnd.wv.csp+xml +application/vnd.wv.ssp+xml +application/vnd.xara xar +application/vnd.xfdl xfdl +application/vnd.xmpie.cpkg +application/vnd.xmpie.dpkg +application/vnd.xmpie.plan +application/vnd.xmpie.ppkg +application/vnd.xmpie.xlim +application/vnd.yamaha.hv-dic hvd +application/vnd.yamaha.hv-script hvs +application/vnd.yamaha.hv-voice hvp +application/vnd.yamaha.smaf-audio saf +application/vnd.yamaha.smaf-phrase spf +application/vnd.yellowriver-custom-menu cmp +application/vnd.zzazz.deck+xml zaz +application/voicexml+xml vxml +application/watcherinfo+xml +application/whoispp-query +application/whoispp-response +application/winhlp hlp +application/wita +application/wordperfect5.1 +application/wsdl+xml wsdl +application/wspolicy+xml wspolicy +application/x-ace-compressed ace +application/x-bcpio bcpio +application/x-bittorrent torrent +application/x-bzip bz +application/x-bzip2 bz2 boz +application/x-cdlink vcd +application/x-chat chat +application/x-chess-pgn pgn +application/x-compress +application/x-cpio cpio +application/x-csh csh +application/x-director dcr dir dxr fgd +application/x-dvi dvi +application/x-futuresplash spl +application/x-gtar gtar +application/x-gzip +application/x-hdf hdf +application/x-latex latex +application/x-ms-wmd wmd +application/x-ms-wmz wmz +application/x-msaccess mdb +application/x-msbinder obd +application/x-mscardfile crd +application/x-msclip clp +application/x-msdownload exe dll com bat msi +application/x-msmediaview mvb m13 m14 +application/x-msmetafile wmf +application/x-msmoney mny +application/x-mspublisher pub +application/x-msschedule scd +application/x-msterminal trm +application/x-mswrite wri +application/x-netcdf nc cdf +application/x-pkcs12 p12 pfx +application/x-pkcs7-certificates p7b spc +application/x-pkcs7-certreqresp p7r +application/x-rar-compressed rar +application/x-sh sh +application/x-shar shar +application/x-shockwave-flash swf +application/x-stuffit sit +application/x-stuffitx sitx +application/x-sv4cpio sv4cpio +application/x-sv4crc sv4crc +application/x-tar tar +application/x-tcl tcl +application/x-tex tex +application/x-texinfo texinfo texi +application/x-ustar ustar +application/x-wais-source src +application/x-x509-ca-cert der crt +application/x400-bp +application/xcap-att+xml +application/xcap-caps+xml +application/xcap-el+xml +application/xcap-error+xml +application/xcap-ns+xml +application/xenc+xml xenc +application/xhtml+xml xhtml xht +application/xml xml xsl +application/xml-dtd dtd +application/xml-external-parsed-entity +application/xmpp+xml +application/xop+xml xop +application/xslt+xml xslt +application/xspf+xml xspf +application/xv+xml mxml xhvml xvml xvm +application/zip zip +audio/32kadpcm +audio/3gpp +audio/3gpp2 +audio/ac3 +audio/amr +audio/amr-wb +audio/amr-wb+ +audio/asc +audio/basic au snd +audio/bv16 +audio/bv32 +audio/clearmode +audio/cn +audio/dat12 +audio/dls +audio/dsr-es201108 +audio/dsr-es202050 +audio/dsr-es202211 +audio/dsr-es202212 +audio/dvi4 +audio/eac3 +audio/evrc +audio/evrc-qcp +audio/evrc0 +audio/evrc1 +audio/evrcb +audio/evrcb0 +audio/evrcb1 +audio/g722 +audio/g7221 +audio/g723 +audio/g726-16 +audio/g726-24 +audio/g726-32 +audio/g726-40 +audio/g728 +audio/g729 +audio/g7291 +audio/g729d +audio/g729e +audio/gsm +audio/gsm-efr +audio/ilbc +audio/l16 +audio/l20 +audio/l24 +audio/l8 +audio/lpc +audio/midi mid midi kar rmi +audio/mobile-xmf +audio/mp4 mp4a +audio/mp4a-latm +audio/mpa +audio/mpa-robust +audio/mpeg mpga mp2 mp2a mp3 m2a m3a +audio/mpeg4-generic +audio/parityfec +audio/pcma +audio/pcmu +audio/prs.sid +audio/qcelp +audio/red +audio/rtp-enc-aescm128 +audio/rtp-midi +audio/rtx +audio/smv +audio/smv0 +audio/smv-qcp +audio/sp-midi +audio/t140c +audio/t38 +audio/telephone-event +audio/tone +audio/vdvi +audio/vmr-wb +audio/vnd.3gpp.iufp +audio/vnd.4sb +audio/vnd.audiokoz +audio/vnd.celp +audio/vnd.cisco.nse +audio/vnd.cmles.radio-events +audio/vnd.cns.anp1 +audio/vnd.cns.inf1 +audio/vnd.digital-winds eol +audio/vnd.dlna.adts +audio/vnd.dolby.mlp +audio/vnd.everad.plj +audio/vnd.hns.audio +audio/vnd.lucent.voice lvp +audio/vnd.nokia.mobile-xmf +audio/vnd.nortel.vbk +audio/vnd.nuera.ecelp4800 ecelp4800 +audio/vnd.nuera.ecelp7470 ecelp7470 +audio/vnd.nuera.ecelp9600 ecelp9600 +audio/vnd.octel.sbc +audio/vnd.qcelp +audio/vnd.rhetorex.32kadpcm +audio/vnd.sealedmedia.softseal.mpeg +audio/vnd.vmx.cvsd +audio/wav wav +audio/x-aiff aif aiff aifc +audio/x-mpegurl m3u +audio/x-ms-wax wax +audio/x-ms-wma wma +audio/x-pn-realaudio ram ra +audio/x-pn-realaudio-plugin rmp +audio/x-wav wav +chemical/x-cdx cdx +chemical/x-cif cif +chemical/x-cmdf cmdf +chemical/x-cml cml +chemical/x-csml csml +chemical/x-pdb pdb +chemical/x-xyz xyz +image/bmp bmp +image/cgm cgm +image/fits +image/g3fax g3 +image/gif gif +image/ief ief +image/jp2 +image/jpeg jpeg jpg jpe +image/jpm +image/jpx +image/naplps +image/png png +image/prs.btif btif +image/prs.pti +image/svg+xml svg svgz +image/t38 +image/tiff tiff tif +image/tiff-fx +image/vnd.adobe.photoshop psd +image/vnd.cns.inf2 +image/vnd.djvu djvu djv +image/vnd.dwg dwg +image/vnd.dxf dxf +image/vnd.fastbidsheet fbs +image/vnd.fpx fpx +image/vnd.fst fst +image/vnd.fujixerox.edmics-mmr mmr +image/vnd.fujixerox.edmics-rlc rlc +image/vnd.globalgraphics.pgb +image/vnd.microsoft.icon ico +image/vnd.mix +image/vnd.ms-modi mdi +image/vnd.net-fpx npx +image/vnd.sealed.png +image/vnd.sealedmedia.softseal.gif +image/vnd.sealedmedia.softseal.jpg +image/vnd.svf +image/vnd.wap.wbmp wbmp +image/vnd.xiff xif +image/x-cmu-raster ras +image/x-cmx cmx +image/x-icon +image/x-pcx pcx +image/x-pict pic pct +image/x-portable-anymap pnm +image/x-portable-bitmap pbm +image/x-portable-graymap pgm +image/x-portable-pixmap ppm +image/x-rgb rgb +image/x-xbitmap xbm +image/x-xpixmap xpm +image/x-xwindowdump xwd +message/cpim +message/delivery-status +message/disposition-notification +message/external-body +message/http +message/news +message/partial +message/rfc822 eml mime +message/s-http +message/sip +message/sipfrag +message/tracking-status +model/iges igs iges +model/mesh msh mesh silo +model/vnd.dwf dwf +model/vnd.flatland.3dml +model/vnd.gdl gdl +model/vnd.gs.gdl +model/vnd.gtw gtw +model/vnd.moml+xml +model/vnd.mts mts +model/vnd.parasolid.transmit.binary +model/vnd.parasolid.transmit.text +model/vnd.vtu vtu +model/vrml wrl vrml +multipart/alternative +multipart/appledouble +multipart/byteranges +multipart/digest +multipart/encrypted +multipart/form-data +multipart/header-set +multipart/mixed +multipart/parallel +multipart/related +multipart/report +multipart/signed +multipart/voice-message +text/calendar ics ifb +text/css css +text/csv csv +text/directory +text/dns +text/enriched +text/html html htm +text/parityfec +text/plain txt text conf def list log in +text/prs.fallenstein.rst +text/prs.lines.tag dsc +text/red +text/rfc822-headers +text/richtext rtx +text/rtf +text/rtp-enc-aescm128 +text/rtx +text/sgml sgml sgm +text/t140 +text/tab-separated-values tsv +text/troff t tr roff man me ms +text/uri-list uri uris urls +text/vnd.abc +text/vnd.curl +text/vnd.dmclientscript +text/vnd.esmertec.theme-descriptor +text/vnd.fly fly +text/vnd.fmi.flexstor flx +text/vnd.in3d.3dml 3dml +text/vnd.in3d.spot spot +text/vnd.iptc.newsml +text/vnd.iptc.nitf +text/vnd.latex-z +text/vnd.motorola.reflex +text/vnd.ms-mediapackage +text/vnd.net2phone.commcenter.command +text/vnd.sun.j2me.app-descriptor jad +text/vnd.trolltech.linguist +text/vnd.wap.si +text/vnd.wap.sl +text/vnd.wap.wml wml +text/vnd.wap.wmlscript wmls +text/x-asm s asm +text/x-c c cc cxx cpp h hh dic +text/x-fortran f for f77 f90 +text/x-pascal p pas +text/x-java-source java +text/x-setext etx +text/x-uuencode uu +text/x-vcalendar vcs +text/x-vcard vcf +text/xml +text/xml-external-parsed-entity +video/3gpp 3gp +video/3gpp-tt +video/3gpp2 3g2 +video/bmpeg +video/bt656 +video/celb +video/dv +video/h261 h261 +video/h263 h263 +video/h263-1998 +video/h263-2000 +video/h264 h264 +video/jpeg jpgv +video/jpm jpm jpgm +video/mj2 mj2 mjp2 +video/mp1s +video/mp2p +video/mp2t +video/mp4 mp4 mp4v mpg4 +video/mp4v-es +video/mpeg mpeg mpg mpe m1v m2v +video/mpeg4-generic +video/mpv +video/nv +video/parityfec +video/pointer +video/quicktime qt mov +video/raw +video/rtp-enc-aescm128 +video/rtx +video/smpte292m +video/vc1 +video/vnd.dlna.mpeg-tts +video/vnd.fvt fvt +video/vnd.hns.video +video/vnd.motorola.video +video/vnd.motorola.videop +video/vnd.mpegurl mxu m4u +video/vnd.nokia.interleaved-multimedia +video/vnd.nokia.videovoip +video/vnd.objectvideo +video/vnd.sealed.mpeg1 +video/vnd.sealed.mpeg4 +video/vnd.sealed.swf +video/vnd.sealedmedia.softseal.mov +video/vnd.vivo viv +video/x-fli fli +video/x-ms-asf asf asx +video/x-ms-wm wm +video/x-ms-wmv wmv +video/x-ms-wmx wmx +video/x-ms-wvx wvx +video/x-msvideo avi +video/x-sgi-movie movie +x-conference/x-cooltalk ice diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/loquendo-7-mrcp-v2.xml b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/loquendo-7-mrcp-v2.xml new file mode 100644 index 0000000000..dcf42821f5 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/loquendo-7-mrcp-v2.xml @@ -0,0 +1,32 @@ +<include> + <!-- 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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-1.0.0-mrcp-v1.xml b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-1.0.0-mrcp-v1.xml new file mode 100644 index 0000000000..0700dec629 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-1.0.0-mrcp-v1.xml @@ -0,0 +1,39 @@ +<include> + <!-- 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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-5.0-mrcp-v1.xml b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-5.0-mrcp-v1.xml new file mode 100644 index 0000000000..3c4938a66d --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-5.0-mrcp-v1.xml @@ -0,0 +1,39 @@ +<include> + <!-- 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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-5.0-mrcp-v2.xml b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-5.0-mrcp-v2.xml new file mode 100644 index 0000000000..b53cba0984 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/nuance-5.0-mrcp-v2.xml @@ -0,0 +1,43 @@ +<include> + <!-- 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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/unimrcpserver-mrcp-v1.xml b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/unimrcpserver-mrcp-v1.xml new file mode 100644 index 0000000000..fe02b1582f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/unimrcpserver-mrcp-v1.xml @@ -0,0 +1,27 @@ +<include> + <!-- 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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/voxeo-prophecy-8.0-mrcp-v1.xml b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/voxeo-prophecy-8.0-mrcp-v1.xml new file mode 100644 index 0000000000..fb1d0ee287 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/mrcp_profiles/voxeo-prophecy-8.0-mrcp-v1.xml @@ -0,0 +1,27 @@ +<include> + <!-- 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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/notify-voicemail.tpl b/bbb-voice-conference/config/freeswitch/conf.orig/notify-voicemail.tpl new file mode 100644 index 0000000000..0b08dbe966 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/notify-voicemail.tpl @@ -0,0 +1,42 @@ +From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}@${voicemail_domain}> +To: <${voicemail_notify_email}> +Subject: Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len} +X-Priority: ${voicemail_priority} +X-Mailer: FreeSWITCH + +Content-Type: multipart/alternative; + boundary="000XXX000" + +--000XXX000 +Content-Type: text/plain; charset=ISO-8859-1; Format=Flowed +Content-Disposition: inline +Content-Transfer-Encoding: 7bit + +Created: ${voicemail_time} +From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> +Duration: ${voicemail_message_len} +Account: ${voicemail_account}@${voicemail_domain} + +--000XXX000 +Content-Type: text/html; charset=ISO-8859-1 +Content-Disposition: inline +Content-Transfer-Encoding: 7bit + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}</title> +<meta content="text/html; charset=iso-8859-1" http-equiv="content-type"/> +</head> +<body> + +<font face=arial> +<b>Message From "${voicemail_caller_id_name}" <A HREF="tel:${voicemail_caller_id_number}">${voicemail_caller_id_number}</A></b><br> +<hr noshade size=1> +Created: ${voicemail_time}<br> +Duration: ${voicemail_message_len}<br> +Account: ${voicemail_account}@${voicemail_domain}<br> + +</body> +</html> +--000XXX000-- diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/external.xml b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/external.xml new file mode 100644 index 0000000000..8f1076364c --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/external.xml @@ -0,0 +1,78 @@ +<profile name="external"> + <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files --> + <!-- This profile is only for outbound registrations to providers --> + <gateways> + <X-PRE-PROCESS cmd="include" data="external/*.xml"/> + </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="rfc2833-pt" value="101"/> + <param name="sip-port" value="$${external_sip_port}"/> + <param name="dialplan" value="XML"/> + <param name="context" value="public"/> + <param name="dtmf-duration" value="2000"/> + <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/> + <param name="outbound-codec-prefs" value="$${outbound_codec_prefs}"/> + <param name="hold-music" value="$${hold_music}"/> + <param name="rtp-timer-name" value="soft"/> + <!--<param name="enable-100rel" 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="$${domain}"/>--> + <!--<param name="force-register-domain" value="$${domain}"/>--> + <!--all inbound reg will stored in the db using this domain --> + <!--<param name="force-register-db-domain" value="$${domain}"/>--> + <!-- ************************************************* --> + + <!--<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"/> + <!-- + DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS! + --> + <param name="rtp-ip" value="$${local_ip_v4}"/> + <param name="sip-ip" value="$${local_ip_v4}"/> + <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="$${external_ssl_enable}"/> + <!-- 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="$${external_tls_port}"/> + <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) --> + <param name="tls-cert-dir" value="$${external_ssl_dir}"/> + <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 --> + <param name="tls-version" value="$${sip_tls_version}"/> + + </settings> +</profile> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/external/example.xml b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/external/example.xml new file mode 100644 index 0000000000..7ac8db1186 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/external/example.xml @@ -0,0 +1,34 @@ +<include> + <!--<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="tport=tcp"/>--> + <!--send an options ping every x seconds, failure will unregister and/or mark it down--> + <!--<param name="ping" value="25"/>--> + <!--</gateway>--> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal-ipv6.xml b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal-ipv6.xml new file mode 100644 index 0000000000..37ff58b310 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal-ipv6.xml @@ -0,0 +1,129 @@ +<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="$${internal_sip_port}"/> + <param name="dialplan" value="XML"/> + <param name="dtmf-duration" value="2000"/> + <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/> + <param name="outbound-codec-prefs" value="$${global_codec_prefs}"/> + <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="$${local_ip_v6}"/> + <!-- ip address to bind to --> + <param name="sip-ip" value="$${local_ip_v6}"/> + <param name="hold-music" value="$${hold_music}"/> + <!--<param name="enable-100rel" value="false"/>--> + <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="$${recordings_dir}/${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="$${internal_ssl_enable}"/> + <!-- 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="$${internal_tls_port}"/> + <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) --> + <param name="tls-cert-dir" value="$${internal_ssl_dir}"/> + <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 --> + <param name="tls-version" value="$${sip_tls_version}"/> + + <!--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"/>--> + + <!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok--> + <!--<param name="inbound-late-negotiation" 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="$${internal_auth_calls}"/> + <!-- on authed calls, authenticate *all* the packets not just invite --> + <param name="auth-all-packets" value="false"/> + <!-- <param name="ext-rtp-ip" value="$${external_rtp_ip}"/> --> + <!-- <param name="ext-sip-ip" value="$${external_sip_ip}"/> --> + <!-- 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="$${domain}"/> + <!--all inbound reg will stored in the db using this domain --> + <param name="force-register-db-domain" value="$${domain}"/> + <!-- 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> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal.xml b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal.xml new file mode 100644 index 0000000000..dd1595d5ba --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal.xml @@ -0,0 +1,313 @@ +<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> + <X-PRE-PROCESS cmd="include" data="internal/*.xml"/> + </gateways> + + <domains> + <!-- indicator to parse the directory for domains with parse="true" to get gateways--> + <!--<domain name="$${domain}" 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> + <!-- + 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="log-auth-failures" value="true"/> + <param name="context" value="public"/> + <param name="rfc2833-pt" value="101"/> + <!-- port to bind to for sip traffic --> + <param name="sip-port" value="$${internal_sip_port}"/> + <param name="dialplan" value="XML"/> + <param name="dtmf-duration" value="2000"/> + <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/> + <param name="outbound-codec-prefs" value="$${global_codec_prefs}"/> + <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="$${local_ip_v4}"/> + <!-- ip address to bind to, DO NOT USE HOSTNAMES ONLY IP ADDRESSES --> + <param name="sip-ip" value="$${local_ip_v4}"/> + <param name="hold-music" value="$${hold_music}"/> + <param name="apply-nat-acl" value="nat.auto"/> + + <!-- 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"/>--> + <!-- 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"/>--> + + + + <!-- 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="$${recordings_dir}"/> + <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"/> + <!--<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="$${domain}"/>--> + <!-- ************************************************* --> + + <!-- 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"/>--> + + <!-- TLS: disabled by default, set to "true" to enable --> + <param name="tls" value="$${internal_ssl_enable}"/> + <!-- 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="$${internal_tls_port}"/> + <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) --> + <param name="tls-cert-dir" value="$${internal_ssl_dir}"/> + <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 --> + <param name="tls-version" value="$${sip_tls_version}"/> + + <!-- 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"/>--> + + <!--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"/>--> + + <!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok--> + <!--<param name="inbound-late-negotiation" 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="$${internal_auth_calls}"/> + <!-- 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="$${domain}"/> + <!--force the domain in subscriptions to this value --> + <param name="force-subscription-domain" value="$${domain}"/> + <!--all inbound reg will stored in the db using this domain --> + <param name="force-register-db-domain" value="$${domain}"/> + + <!-- 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"/>--> + <!-- 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" /> --> + + </settings> +</profile> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal/example.xml b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal/example.xml new file mode 100644 index 0000000000..fc061f96d1 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/sip_profiles/internal/example.xml @@ -0,0 +1,37 @@ +<include> + <!--<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="tport=tcp"/>--> + <!-- 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"/>--> + <!--</gateway>--> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/skinny_profiles/internal.xml b/bbb-voice-conference/config/freeswitch/conf.orig/skinny_profiles/internal.xml new file mode 100644 index 0000000000..eaa493c047 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/skinny_profiles/internal.xml @@ -0,0 +1,21 @@ +<profile name="internal"> + <settings> + <param name="domain" value="$${domain}"/> + <param name="ip" value="$${local_ip_v4}"/> + <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"/> + </settings> + <device-types> + <device-type id="Cisco ATA 186"> + <param name="firmware-version" value="ATA030101SCCP04"/> + </device-type> + </device-types> +</profile> + diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/tetris.ttml b/bbb-voice-conference/config/freeswitch/conf.orig/tetris.ttml new file mode 100644 index 0000000000..2e33a5d69a --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/tetris.ttml @@ -0,0 +1,69 @@ +%(428,0,659,494) +%(214,0,494,415) +%(214,0,523,440) +%(214,0,587,494) +%(107,0,659,494) +%(107,0,587,494) +%(214,0,523,440) +%(214,0,494,415) +%(428,0,330,440) +%(214,0,330,440) +%(214,0,523,440) +%(428,0,659,523) +%(214,0,587,494) +%(214,0,523,440) +%(214,0,494,415) +%(214,0,494,440) +%(214,0,494,415) +%(214,0,523,440) +%(428,0,587,494) +%(428,0,659,523) +%(428,0,523,440) +%(428,0,330,440) +%(857,0,330,440) +%(214,0,0,0) +%(428,0,587,349) +%(214,0,698,440) +%(214,0,880,523) +%(107,0,880,523) +%(107,0,880,523) +%(214,0,784,494) +%(214,0,698,440) +%(642,0,659,392) +%(214,0,523,330) +%(214,0,659,392) +%(107,0,659,440) +%(107,0,659,392) +%(214,0,587,349) +%(214,0,523,330) +%(214,0,494,415) +%(214,0,494,330) +%(214,0,494,415) +%(214,0,523,440) +%(214,0,587,494) +%(214,0,587,415) +%(214,0,659,523) +%(214,0,659,415) +%(214,0,523,440) +%(214,0,523,330) +%(428,0,440,330) +%(428,0,440,330) +%(428,0,0,0) +%(857,0,330,262) +%(857,0,262,220) +%(857,0,294,247) +%(857,0,247,208) +%(857,0,262,220) +%(857,0,220,165) +%(857,0,208,165) +%(428,0,247,208) +%(428,0,0,0) +%(857,0,330,262) +%(857,0,262,220) +%(857,0,294,247) +%(857,0,208,165) +%(428,0,262,220) +%(428,0,330,262) +%(857,0,440,330) +%(857,0,415,294) +%(857,0,0,0) diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/vars.xml b/bbb-voice-conference/config/freeswitch/conf.orig/vars.xml new file mode 100644 index 0000000000..7ec4d0475c --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/vars.xml @@ -0,0 +1,241 @@ +<include> + <!-- Preprocessor Variables + These are introduced when configuration strings must be consistent across modules. + NOTICE: YOU CAN NOT COMMENT OUT AN X-PRE-PROCESS line, Remove the line instead. + + 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 + --> + <X-PRE-PROCESS cmd="set" data="default_password=1234"/> + <!-- Did you change it yet? --> + + <X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie"/> + + <!-- + This setting is what sets the default domain FreeSWITCH will use if all else fails. + + FreeSWICH will default to $${local_ip_v4} unless changed. Changing this setting does + affect the sip authentication. Please review conf/directory/default.xml for more + information on this topic. + --> + <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/> + <X-PRE-PROCESS cmd="set" data="domain_name=$${domain}"/> + <X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/> + <X-PRE-PROCESS cmd="set" data="use_profile=internal"/> + + <!-- + Enable ZRTP globally you can override this on a per channel basis + + http://wiki.freeswitch.org/wiki/ZRTP (on how to enable zrtp) + --> + <X-PRE-PROCESS cmd="set" data="zrtp_secure_media=true"/> + + <!-- + 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 + + --> + <X-PRE-PROCESS cmd="set" data="global_codec_prefs=speex@16000h@20i,speex@8000h@20iG7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM"/> + <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM"/> + + <!-- + 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 + --> + + <X-PRE-PROCESS cmd="set" data="xmpp_client_profile=xmppc"/> + <X-PRE-PROCESS cmd="set" data="xmpp_server_profile=xmpps"/> + <!-- + 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 + --> + <X-PRE-PROCESS cmd="set" data="bind_server_ip=auto"/> + + <!-- 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 + --> + <X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org"/> + + <!-- 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 + --> + <X-PRE-PROCESS cmd="set" data="external_sip_ip=stun:stun.freeswitch.org"/> + + <!-- unroll-loops + Used to turn on sip loopback unrolling. + --> + <X-PRE-PROCESS cmd="set" data="unroll_loops=true"/> + + <!-- 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. + --> + <X-PRE-PROCESS cmd="set" data="outbound_caller_name=FreeSWITCH"/> + <X-PRE-PROCESS cmd="set" data="outbound_caller_id=0000000000"/> + + <!-- various debug and defaults --> + <X-PRE-PROCESS cmd="set" data="call_debug=false"/> + <X-PRE-PROCESS cmd="set" data="console_loglevel=info"/> + <X-PRE-PROCESS cmd="set" data="default_areacode=918"/> + <X-PRE-PROCESS cmd="set" data="default_country=US"/> + + <X-PRE-PROCESS cmd="set" data="uk-ring=%(400,200,400,450);%(400,2200,400,450)"/> + <X-PRE-PROCESS cmd="set" data="us-ring=%(2000,4000,440.0,480.0)"/> + <X-PRE-PROCESS cmd="set" data="fr-ring=%(1500,3500,440.0,0.0)"/> + <X-PRE-PROCESS cmd="set" data="rs-ring=%(1000,4000,425.0,0.0)"/> + <X-PRE-PROCESS cmd="set" data="ru-ring=%(800,3200,425,0)"/> + <X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"/> + <X-PRE-PROCESS cmd="set" data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)"/> + <!-- + 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 + --> + <X-PRE-PROCESS cmd="set" data="default_provider=example.com"/> + <X-PRE-PROCESS cmd="set" data="default_provider_username=joeuser"/> + <X-PRE-PROCESS cmd="set" data="default_provider_password=password"/> + <X-PRE-PROCESS cmd="set" data="default_provider_from_domain=example.com"/> + <!-- true or false --> + <X-PRE-PROCESS cmd="set" data="default_provider_register=false"/> + <X-PRE-PROCESS cmd="set" data="default_provider_contact=5000"/> + + <!-- + SIP and TLS settings. http://wiki.freeswitch.org/wiki/Tls + --> + <X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1"/> + + <!-- Internal SIP Profile --> + <X-PRE-PROCESS cmd="set" data="internal_auth_calls=true"/> + <X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/> + <X-PRE-PROCESS cmd="set" data="internal_tls_port=5061"/> + <X-PRE-PROCESS cmd="set" data="internal_ssl_enable=false"/> + <X-PRE-PROCESS cmd="set" data="internal_ssl_dir=$${base_dir}/conf/ssl"/> + + <!-- External SIP Profile --> + <X-PRE-PROCESS cmd="set" data="external_auth_calls=false"/> + <X-PRE-PROCESS cmd="set" data="external_sip_port=5080"/> + <X-PRE-PROCESS cmd="set" data="external_tls_port=5081"/> + <X-PRE-PROCESS cmd="set" data="external_ssl_enable=false"/> + <X-PRE-PROCESS cmd="set" data="external_ssl_dir=$${base_dir}/conf/ssl"/> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/voicemail.tpl b/bbb-voice-conference/config/freeswitch/conf.orig/voicemail.tpl new file mode 100644 index 0000000000..aede2b8f08 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/voicemail.tpl @@ -0,0 +1,42 @@ +From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}@${voicemail_domain}> +To: <${voicemail_email}> +Subject: Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len} +X-Priority: ${voicemail_priority} +X-Mailer: FreeSWITCH + +Content-Type: multipart/alternative; + boundary="000XXX000" + +--000XXX000 +Content-Type: text/plain; charset=ISO-8859-1; Format=Flowed +Content-Disposition: inline +Content-Transfer-Encoding: 7bit + +Created: ${voicemail_time} +From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> +Duration: ${voicemail_message_len} +Account: ${voicemail_account}@${voicemail_domain} + +--000XXX000 +Content-Type: text/html; charset=ISO-8859-1 +Content-Disposition: inline +Content-Transfer-Encoding: 7bit + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}</title> +<meta content="text/html; charset=iso-8859-1" http-equiv="content-type"/> +</head> +<body> + +<font face=arial> +<b>Message From "${voicemail_caller_id_name}" <A HREF="tel:${voicemail_caller_id_number}">${voicemail_caller_id_number}</A></b><br> +<hr noshade size=1> +Created: ${voicemail_time}<br> +Duration: ${voicemail_message_len}<br> +Account: ${voicemail_account}@${voicemail_domain}<br> + +</body> +</html> +--000XXX000-- diff --git a/bbb-voice-conference/config/freeswitch/conf.orig/web-vm.tpl b/bbb-voice-conference/config/freeswitch/conf.orig/web-vm.tpl new file mode 100644 index 0000000000..1c6563320b --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf.orig/web-vm.tpl @@ -0,0 +1,13 @@ +<title>FreeSWITCH Voicemail</title> +<body bgcolor=eeeeee> + +<table bgcolor=ffffff width=75% align=center style="border-style:inset;border-width:2px"> +<tr><td bgcolor=1010ff align=center valign=center style="border-style:inset;border-width:2px"> +<font face=arial size=+2 color=ffffff>Voicemail Messages</font> +</td></tr> +<tr><td> + +<!break> + +</td></tr> +</table> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/acl.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/acl.conf.xml new file mode 100644 index 0000000000..a1708a55f3 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/acl.conf.xml @@ -0,0 +1,29 @@ +<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"> + <node type="allow" domain="$${domain}"/> + </list> + + </network-lists> +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_csv.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_csv.conf.xml new file mode 100644 index 0000000000..bcefd460b4 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_csv.conf.xml @@ -0,0 +1,22 @@ +<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> + </templates> +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference.conf.xml new file mode 100644 index 0000000000..fa3e87a139 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference.conf.xml @@ -0,0 +1,189 @@ +<!-- 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@$${domain}" 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"> + <!-- Domain (for presence) --> + <param name="domain" value="$${domain}"/> + <!-- 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="mute"/> + + <!-- Name of the caller control group to use for this profile --> + <!-- <param name="caller-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 --> + <!-- Set a default path here so you can use relative paths in the other sound params--> + <param name="sound-prefix" value="$${sounds_dir}/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="$${hold_music}"/> + <!-- 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 ae 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"/>--> + <!-- Default Caller ID Name for outbound calls --> + <param name="caller-id-name" value="$${outbound_caller_name}"/> + <!-- Default Caller ID Number for outbound calls --> + <param name="caller-id-number" value="$${outbound_caller_id}"/> + <!-- 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="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/> + --> + </profile> + + <profile name="wideband"> + <param name="domain" value="$${domain}"/> + <param name="rate" value="16000"/> + <param name="interval" value="20"/> + <param name="energy-level" value="300"/> + <param name="member-flags" value="mute"/> + <param name="sound-prefix" value="$${sounds_dir}/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="$${hold_music}"/> + <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="$${outbound_caller_name}"/> + <param name="caller-id-number" value="$${outbound_caller_id}"/> + <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="$${domain}"/> + <param name="rate" value="32000"/> + <param name="interval" value="20"/> + <param name="energy-level" value="300"/> + <param name="sound-prefix" value="$${sounds_dir}/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="$${hold_music}"/> + <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="$${outbound_caller_name}"/> + <param name="caller-id-number" value="$${outbound_caller_id}"/> + <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="$${domain}"/> + <param name="rate" value="48000"/> + <param name="interval" value="10"/> + <param name="energy-level" value="300"/> + <param name="sound-prefix" value="$${sounds_dir}/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="$${hold_music}"/> + <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="$${outbound_caller_name}"/> + <param name="caller-id-number" value="$${outbound_caller_id}"/> + <param name="comfort-noise" value="true"/> + </profile> + + <profile name="sla"> + <param name="domain" value="$${domain}"/> + <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> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/console.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/console.conf.xml new file mode 100644 index 0000000000..95d42e4ec0 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/console.conf.xml @@ -0,0 +1,58 @@ +<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"/> + <map name="sofia.c" value="notice"/> + <map name="switch_core_state_machine.c" value="notice"/> + + <!-- + 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 OpenZAP, 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_openzap" 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="$${console_loglevel}"/> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/enum.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/enum.conf.xml new file mode 100644 index 0000000000..0304d0dacd --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/enum.conf.xml @@ -0,0 +1,13 @@ +<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="query-timeout" value="10"/> + <param name="auto-reload" value="true"/> + </settings> + + <routes> + <route service="E2U+SIP" regex="sip:(.*)" replace="sofia/${use_profile}/$1"/> + <!--<route service="E2U+XMPP" regex="XMPP:(.*)" replace="dingaling/$${xmpp_server_profile}/$1"/>--> + </routes> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_socket.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_socket.conf.xml new file mode 100644 index 0000000000..227b8860f8 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_socket.conf.xml @@ -0,0 +1,9 @@ +<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="localnet.auto"/> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/local_stream.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/local_stream.conf.xml new file mode 100644 index 0000000000..94a5665392 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/local_stream.conf.xml @@ -0,0 +1,49 @@ +<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="$${sounds_dir}/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="$${sounds_dir}/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="$${sounds_dir}/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="$${sounds_dir}/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="$${sounds_dir}/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> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/logfile.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/logfile.conf.xml new file mode 100644 index 0000000000..57f276c4ea --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/logfile.conf.xml @@ -0,0 +1,26 @@ +<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"/> + <!-- Uncomment to 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> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/modules.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/modules.conf.xml new file mode 100644 index 0000000000..94961f1d81 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/modules.conf.xml @@ -0,0 +1,110 @@ +<configuration name="modules.conf" description="Modules"> + <modules> + + <!-- Loggers (I'd load these first) --> + <load module="mod_console"/> + <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"/> --> + + <!-- Event Handlers --> + <load module="mod_cdr_csv"/> + <!-- <load module="mod_event_multicast"/> --> + <load module="mod_event_socket"/> + <!-- <load module="mod_zeroconf"/> --> + + <!-- 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_openzap"/> --> + <!-- <load module="mod_unicall"/> --> + <!-- <load module="mod_skinny"/> --> + + <!-- Applications --> + <load module="mod_commands"/> + <load module="mod_conference"/> + <load module="mod_dptools"/> + <load module="mod_expr"/> + <!-- <load module="mod_fifo"/> --> + <!-- <load module="mod_voicemail"/> --> + <!--<load module="mod_directory"/>--> + <!--<load module="mod_lcr"/>--> + <!-- <load module="mod_limit"/>--> + <!-- <load module="mod_esf"/>--> + <!-- <load module="mod_fsv"/>--> + <!-- <load module="mod_cluechoo"/>--> + <!-- <load module="mod_valet_parking"/>--> + <!--<load module="mod_spy"/>--> + + <!-- SNOM Module --> + <!--<load module="mod_snom"/>--> + + <!-- 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_speex"/> + <load module="mod_h26x"/> + <load module="mod_siren"/> + <!--<load module="mod_celt"/>--> + + <!-- File Format Interfaces --> + <load module="mod_sndfile"/> + <load module="mod_native_file"/> + <!--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"/> + <load module="mod_file_string"/> + + <!-- Timers --> + + <!-- Languages --> + <load module="mod_spidermonkey"/> + <!-- <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"/> --> + + <!-- Third party modules --> + <!--<load module="mod_nibblebill"/>--> + + </modules> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/post_load_modules.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/post_load_modules.conf.xml new file mode 100644 index 0000000000..8f4e132fa4 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/post_load_modules.conf.xml @@ -0,0 +1,4 @@ +<configuration name="post_load_modules.conf" description="Modules"> + <modules> + </modules> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sofia.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sofia.conf.xml new file mode 100644 index 0000000000..24252d08ce --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sofia.conf.xml @@ -0,0 +1,18 @@ +<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"/> + </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> + <X-PRE-PROCESS cmd="include" data="../sip_profiles/*.xml"/> + </profiles> + +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/spidermonkey.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/spidermonkey.conf.xml new file mode 100644 index 0000000000..dbd54a7711 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/spidermonkey.conf.xml @@ -0,0 +1,9 @@ +<configuration name="spidermonkey.conf" description="Spider Monkey JavaScript Plug-Ins"> + <modules> + <load module="mod_spidermonkey_teletone"/> + <load module="mod_spidermonkey_core_db"/> + <load module="mod_spidermonkey_socket"/> + <load module="mod_spidermonkey_curl"/> + <!--<load module="mod_spidermonkey_odbc"/>--> + </modules> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/switch.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/switch.conf.xml new file mode 100644 index 0000000000..03bc993372 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/switch.conf.xml @@ -0,0 +1,85 @@ +<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> + + <settings> + <!--Colorize the Console --> + <param name="colorize-console" value="true"/> + <!--Most channels to allow at once --> + <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"/> + <!-- 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"/> + + Donot 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 dump every detail about a channel on every event --> + <!--<param name="verbose-channel-events" value="no"/>--> + <!--RTP port range --> + <!--<param name="rtp-start-port" value="16384"/>--> + <!--<param name="rtp-end-port" value="32768"/>--> + <param name="rtp-enable-zrtp" value="true"/> + <!-- <param name="core-db-dsn" value="dsn:username:password" /> --> + </settings> + +</configuration> + diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/syslog.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/syslog.conf.xml new file mode 100644 index 0000000000..636a12c8c1 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/syslog.conf.xml @@ -0,0 +1,18 @@ +<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"/> + <!-- Uncomment the following line to log uuids in syslogs (when applicable) --> + <!-- <param name="uuid" value="true"/> --> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/timezones.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/timezones.conf.xml new file mode 100644 index 0000000000..85c805ff25 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/timezones.conf.xml @@ -0,0 +1,551 @@ +<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="WET0" /> + <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="WET0" /> + <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/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-1CEST,M3.5.0,M10.5.0/3" /> + <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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Catamarca" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/ComodRivadavia" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Cordoba" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Jujuy" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/La_Rioja" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Mendoza" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Rio_Gallegos" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/San_Juan" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/San_Luis" value="ART3" /> + <zone name="America/Argentina/Tucuman" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Argentina/Ushuaia" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Aruba" value="AST4" /> + <zone name="America/Asuncion" value="PYT4PYST,M10.3.0/0,M3.2.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/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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" /> + <zone name="America/Campo_Grande" value="AMT4AMST,M10.2.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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Costa_Rica" value="CST6" /> + <zone name="America/Cuiaba" value="AMT4AMST,M10.2.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,M4.1.0,M10.5.0" /> + <zone name="America/Fortaleza" value="BRT3" /> + <zone name="America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" /> + <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/0:01,M11.1.0/0:01" /> + <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.3.0/0,M10.5.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/Indianapolis" 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/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="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <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/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/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/Mazatlan" value="MST7MDT,M4.1.0,M10.5.0" /> + <zone name="America/Mendoza" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <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/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/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/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="EST5" /> + <zone name="America/Porto_Acre" value="ACT5" /> + <zone name="America/Port_of_Spain" value="AST4" /> + <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="EST5" /> + <zone name="America/Rio_Branco" value="ACT5" /> + <zone name="America/Rosario" value="ART3ARST,M10.1.0/0,M3.3.0/0" /> + <zone name="America/Santiago" value="CLST" /> + <zone name="America/Santo_Domingo" value="AST4" /> + <zone name="America/Sao_Paulo" value="BRT3BRST,M10.2.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/St_Barthelemy" value="AST4" /> + <zone name="America/St_Johns" value="NST3:30NDT,M3.2.0/0:01,M11.1.0/0:01" /> + <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,M4.1.0,M10.5.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/Mawson" value="MAWT-6" /> + <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/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="EET-2EEST,M3.5.4/0,M10.5.5/1" /> + <zone name="Asia/Anadyr" value="ANAT-12ANAST,M3.5.0,M10.5.0/3" /> + <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-9" /> + <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,M4.1.5/0,J274/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="EET-2EEST,J91/0,M9.2.4" /> + <zone name="Asia/Harbin" value="CST-8" /> + <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-8IRKST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" /> + <zone name="Asia/Jakarta" value="WIT-7" /> + <zone name="Asia/Jayapura" value="EIT-9" /> + <zone name="Asia/Jerusalem" value="IDDT" /> + <zone name="Asia/Kabul" value="AFT-4:30" /> + <zone name="Asia/Kamchatka" value="PETT-12PETST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Karachi" value="PKT-5" /> + <zone name="Asia/Kashgar" value="CST-8" /> + <zone name="Asia/Katmandu" value="NPT-5:45" /> + <zone name="Asia/Kolkata" value="IST-5:30" /> + <zone name="Asia/Krasnoyarsk" value="KRAT-7KRAST,M3.5.0,M10.5.0/3" /> + <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-11MAGST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Makassar" value="CIT-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/Novosibirsk" value="NOVT-6NOVST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Omsk" value="OMST-6OMSST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Oral" value="ORAT-5" /> + <zone name="Asia/Phnom_Penh" value="ICT-7" /> + <zone name="Asia/Pontianak" value="WIT-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/Riyadh87" value="zzz-3:07:04" /> + <zone name="Asia/Riyadh88" value="zzz-3:07:04" /> + <zone name="Asia/Riyadh89" value="zzz-3:07:04" /> + <zone name="Asia/Saigon" value="ICT-7" /> + <zone name="Asia/Sakhalin" value="SAKT-10SAKST,M3.5.0,M10.5.0/3" /> + <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="CIT-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/Vientiane" value="ICT-7" /> + <zone name="Asia/Vladivostok" value="VLAT-10VLAST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Yakutsk" value="YAKT-9YAKST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Yekaterinburg" value="YEKT-5YEKST,M3.5.0,M10.5.0/3" /> + <zone name="Asia/Yerevan" value="AMT-4AMST,M3.5.0,M10.5.0/3" /> + + <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/Stanley" value="FKT4FKST,M9.1.0,M4.3.0" /> + <zone name="Atlantic/St_Helena" value="GMT0" /> + + <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/North" value="CST-9:30" /> + <zone name="Australia/NSW" value="EST-10EST,M10.1.0,M4.1.0/3" /> + <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.2.0/0,M2.3.0/0" /> + <zone name="Brazil/West" value="AMT4" /> + + <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/Eastern" value="EST5EDT,M3.2.0,M11.1.0" /> + <zone name="Canada/East-Saskatchewan" value="CST6" /> + <zone name="Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" /> + <zone name="Canada/Newfoundland" value="NST3:30NDT,M3.2.0/0:01,M11.1.0/0:01" /> + <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="Etc/GMT" value="GMT0" /> + <zone name="Etc/GMT0" value="GMT0" /> + <zone name="Etc/GMT-0" value="GMT0" /> + <zone name="Etc/GMT+0" value="GMT0" /> + <zone name="Etc/GMT-1" value="GMT-1" /> + <zone name="Etc/GMT+1" value="GMT+1" /> + <zone name="Etc/GMT-10" value="GMT-10" /> + <zone name="Etc/GMT+10" value="GMT+10" /> + <zone name="Etc/GMT-11" value="GMT-11" /> + <zone name="Etc/GMT+11" value="GMT+11" /> + <zone name="Etc/GMT-12" value="GMT-12" /> + <zone name="Etc/GMT+12" value="GMT+12" /> + <zone name="Etc/GMT-13" value="GMT-13" /> + <zone name="Etc/GMT-14" value="GMT-14" /> + <zone name="Etc/GMT-2" value="GMT-2" /> + <zone name="Etc/GMT+2" value="GMT+2" /> + <zone name="Etc/GMT-3" value="GMT-3" /> + <zone name="Etc/GMT+3" value="GMT+3" /> + <zone name="Etc/GMT-4" value="GMT-4" /> + <zone name="Etc/GMT+4" value="GMT+4" /> + <zone name="Etc/GMT-5" value="GMT-5" /> + <zone name="Etc/GMT+5" value="GMT+5" /> + <zone name="Etc/GMT-6" value="GMT-6" /> + <zone name="Etc/GMT+6" value="GMT+6" /> + <zone name="Etc/GMT-7" value="GMT-7" /> + <zone name="Etc/GMT+7" value="GMT+7" /> + <zone name="Etc/GMT-8" value="GMT-8" /> + <zone name="Etc/GMT+8" value="GMT+8" /> + <zone name="Etc/GMT-9" value="GMT-9" /> + <zone name="Etc/GMT+9" value="GMT+9" /> + <zone name="Etc/Greenwich" value="GMT0" /> + <zone name="Etc/UCT" value="UCT0" /> + <zone name="Etc/Universal" value="UTC0" /> + <zone name="Etc/UTC" 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/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="EET-2EEST,M3.5.0,M10.5.0/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="EET-2EEST,M3.5.0,M10.5.0/3" /> + <zone name="Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" /> + <zone name="Europe/Moscow" value="MSK-3MSD,M3.5.0,M10.5.0/3" /> + <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-4SAMST,M3.5.0,M10.5.0/3" /> + <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="EET-2EEST,M3.5.0/3,M10.5.0/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-3VOLST,M3.5.0,M10.5.0/3" /> + <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="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="Mexico/BajaNorte" value="PST8PDT,M4.1.0,M10.5.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="Mideast/Riyadh87" value="zzz-3:07:04" /> + <zone name="Mideast/Riyadh88" value="zzz-3:07:04" /> + <zone name="Mideast/Riyadh89" value="zzz-3:07:04" /> + + <zone name="Pacific/Apia" value="WST11" /> + <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/Easter" value="EASST" /> + <zone name="Pacific/Efate" value="VUT-11" /> + <zone name="Pacific/Enderbury" value="PHOT-13" /> + <zone name="Pacific/Fakaofo" value="TKT10" /> + <zone name="Pacific/Fiji" value="FJT-12" /> + <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/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="TRUT-10" /> + <zone name="Pacific/Wake" value="WAKT-12" /> + <zone name="Pacific/Wallis" value="WFT-12" /> + <zone name="Pacific/Yap" value="TRUT-10" /> + + <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="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/Eastern" value="EST5EDT,M3.2.0,M11.1.0" /> + <zone name="US/East-Indiana" 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/Samoa" value="SST11" /> + </timezones> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/zeroconf.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/zeroconf.conf.xml new file mode 100644 index 0000000000..84c1a46171 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/zeroconf.conf.xml @@ -0,0 +1,6 @@ +<configuration name="zeroconf.conf" description="Zeroconf Event Handler"> + <settings> + <param name="publish" value="yes"/> + <param name="browse" value="_sip._udp"/> + </settings> +</configuration> diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/default.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/default.xml new file mode 100644 index 0000000000..8566a7ff86 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/default.xml @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + 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 --> +<include> + <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> + + <condition field="${sip_has_crypto}" expression="^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$" break="never"> + <action application="set" data="sip_secure_media=true"/> + <!-- Offer SRTP on outbound legs if we have it on inbound. --> + <!-- <action application="export" data="sip_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}"/> + </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)}"/> + </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> +--> + + <!-- BBB testing --> + + <extension name="bbb_conferences"> + <condition field="destination_number" expression="^(8\d{4})$"> + <action application="answer"/> + <action application="conference" data="$1@wideband"/> + <!-- <action application="conference" data="$1@wideband"/> --> + </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="tone_stream://%(251,0,1004);loops=-1"/> + </condition> + </extension> + + <extension name="tone_stream"> + <condition field="destination_number" expression="^9198$"> + <action application="answer"/> + <action application="playback" data="tone_stream://path=${base_dir}/conf/tetris.ttml;loops=10"/> + </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="${sip_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="$${hold_music}"/> + <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="$${hold_music}"/> + </condition> + </extension> + + <!-- + You can place files in the default directory to get included. + --> + <X-PRE-PROCESS cmd="include" data="default/*.xml"/> + + <!-- + WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + + Anything you put below this line will usually get ignored due to the file in + default/99999_enum.xml as it will transfer the call to the enum dialplan. + + WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + --> + + <!-- SEE WARNING ABOVE IF YOU ARE TRYING TO ADD EXTENSIONS HERE! --> + + </context> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/default/99999_enum.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/default/99999_enum.xml new file mode 100644 index 0000000000..6fd2151859 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/default/99999_enum.xml @@ -0,0 +1,8 @@ +<include> + <extension name="enum"> + <condition field="${module_exists(mod_enum)}" expression="true"/> + <condition field="destination_number" expression="^(.*)$"> + <action application="transfer" data="$1 enum"/> + </condition> + </extension> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/features.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/features.xml new file mode 100644 index 0000000000..901b3091b7 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/features.xml @@ -0,0 +1,59 @@ +<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML --> +<include> + <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="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=$${hold_music}"/> + <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="${sip_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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/public.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/public.xml new file mode 100644 index 0000000000..14e2e1a3d8 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/public.xml @@ -0,0 +1,67 @@ +<!-- + 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 --> +<include> + <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"/> + </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. + --> + <X-PRE-PROCESS cmd="include" data="public/*.xml"/> + <!-- + 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> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/public/00_inbound_did.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/public/00_inbound_did.xml new file mode 100644 index 0000000000..d40b3ab2c9 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/public/00_inbound_did.xml @@ -0,0 +1,18 @@ +<include> + <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. + + $${domain} 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=$${domain}"/> + <!-- This example maps the DID 5551212 to ring 1000 in the default context --> + <action application="transfer" data="1000 XML default"/> + </condition> + </extension> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default.xml new file mode 100644 index 0000000000..6b4d787523 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default.xml @@ -0,0 +1,44 @@ +<!-- + 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 +--> + +<include> + <!--the domain or ip (the right hand side of the @ in the addr--> + <domain name="$${domain}"> + <params> + <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/> + </params> + + <variables> + <variable name="record_stereo" value="true"/> + <variable name="default_gateway" value="$${default_provider}"/> + <variable name="default_areacode" value="$${default_areacode}"/> + <variable name="transfer_fallback_extension" value="operator"/> + </variables> + + <groups> + <group name="default"> + <users> + <X-PRE-PROCESS cmd="include" data="default/*.xml"/> + </users> + </group> + + </groups> + + </domain> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1000.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1000.xml new file mode 100644 index 0000000000..9bee406ddf --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1000.xml @@ -0,0 +1,18 @@ +<include> + <user id="1000"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1001.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1001.xml new file mode 100644 index 0000000000..97c1931c51 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1001.xml @@ -0,0 +1,18 @@ +<include> + <user id="1001"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1002.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1002.xml new file mode 100644 index 0000000000..d33691d100 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1002.xml @@ -0,0 +1,18 @@ +<include> + <user id="1002"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1003.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1003.xml new file mode 100644 index 0000000000..f8b5926c9d --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1003.xml @@ -0,0 +1,18 @@ +<include> + <user id="1003"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1004.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1004.xml new file mode 100644 index 0000000000..c3e7da5722 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1004.xml @@ -0,0 +1,18 @@ +<include> + <user id="1004"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1005.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1005.xml new file mode 100644 index 0000000000..0e1165f43f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1005.xml @@ -0,0 +1,18 @@ +<include> + <user id="1005"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1006.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1006.xml new file mode 100644 index 0000000000..beaaa7e9fc --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1006.xml @@ -0,0 +1,18 @@ +<include> + <user id="1006"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1007.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1007.xml new file mode 100644 index 0000000000..10470a5045 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1007.xml @@ -0,0 +1,18 @@ +<include> + <user id="1007"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1008.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1008.xml new file mode 100644 index 0000000000..0e63fcfde0 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1008.xml @@ -0,0 +1,18 @@ +<include> + <user id="1008"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1009.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1009.xml new file mode 100644 index 0000000000..24db7f8152 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1009.xml @@ -0,0 +1,18 @@ +<include> + <user id="1009"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1010.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1010.xml new file mode 100644 index 0000000000..6d8e0c1bab --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1010.xml @@ -0,0 +1,18 @@ +<include> + <user id="1010"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1011.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1011.xml new file mode 100644 index 0000000000..79d731de5e --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1011.xml @@ -0,0 +1,18 @@ +<include> + <user id="1011"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1012.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1012.xml new file mode 100644 index 0000000000..3839824fbc --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1012.xml @@ -0,0 +1,18 @@ +<include> + <user id="1012"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1013.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1013.xml new file mode 100644 index 0000000000..6f9c8e4753 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1013.xml @@ -0,0 +1,18 @@ +<include> + <user id="1013"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1014.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1014.xml new file mode 100644 index 0000000000..6a554c0650 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1014.xml @@ -0,0 +1,18 @@ +<include> + <user id="1014"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1015.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1015.xml new file mode 100644 index 0000000000..e94b8886a0 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1015.xml @@ -0,0 +1,18 @@ +<include> + <user id="1015"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1016.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1016.xml new file mode 100644 index 0000000000..4f856fc7be --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1016.xml @@ -0,0 +1,18 @@ +<include> + <user id="1016"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1017.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1017.xml new file mode 100644 index 0000000000..b0e43a0238 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1017.xml @@ -0,0 +1,18 @@ +<include> + <user id="1017"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1018.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1018.xml new file mode 100644 index 0000000000..6d7071942d --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1018.xml @@ -0,0 +1,18 @@ +<include> + <user id="1018"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/1019.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/1019.xml new file mode 100644 index 0000000000..f23a95f4ba --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/1019.xml @@ -0,0 +1,18 @@ +<include> + <user id="1019"> + <params> + <param name="password" value="$${default_password}"/> + <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="$${outbound_caller_name}"/> + <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> + <variable name="callgroup" value="techsupport"/> + </variables> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/bbbuser.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/bbbuser.xml new file mode 100644 index 0000000000..1d9b6188ef --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/bbbuser.xml @@ -0,0 +1,28 @@ +<include> + <!-- + ipauth if you have an cidr= in the user attributes ie cidr="1.2.3.4/32" + see <node type="allow" domain="$${domain}"/> in default acl.conf.xml + --> + <user id="bbbuser"> + <params> + <!-- omit password for authless registration --> + <param name="password" value="secret"/> + <!-- 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="BigBlueButton"/> + <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"/> + <!-- sip_secure_media will offer mandatory SRTP on invite AES_CM_128_HMAC_SHA1_32, AES_CM_128_HMAC_SHA1_80 or true--> + <variable name="sip_secure_media" value="false"/> + </variables> + + <vcard> + <!-- insert optional compliant vcard xml here--> + </vcard> + </user> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/extensions.conf b/bbb-voice-conference/config/freeswitch/conf/extensions.conf new file mode 100644 index 0000000000..184e3758eb --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/extensions.conf @@ -0,0 +1,21 @@ +[default] + +; Things you're used to.... +;exten => music,n,Dial(SIP/1234@conference.freeswitch.org|120) + +;exten => _1XXXXX,n,set(cool=${EXTEN}) +;exten => _1XXXXX,n,set(myvar=true) +;exten => _1XXXXX,n,Goto(default|music) +;exten => 2137991400/1000,n,Goto(default|music) + + +; Some new magic you can do.... +;exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,enum($1) +;exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,bridge(${enum_auto_route}) + +; instead of exten, put anything about the call you would rather match on. +; either the names of a field in caller_profile or a string of variables to expand. +;caller_id_number => 2137991400,n,Goto(default|music) +;${sip_from_user} => bill,n,Goto(default|music) + + diff --git a/bbb-voice-conference/config/freeswitch/conf/freeswitch.serial b/bbb-voice-conference/config/freeswitch/conf/freeswitch.serial new file mode 100644 index 0000000000000000000000000000000000000000..d72590a059566000bd7d5f646582fe46f9b3c2f5 GIT binary patch literal 13 UcmYc`NVG68G)PQLG%;cT02t;2M*si- literal 0 HcmV?d00001 diff --git a/bbb-voice-conference/config/freeswitch/conf/freeswitch.xml b/bbb-voice-conference/config/freeswitch/conf/freeswitch.xml new file mode 100644 index 0000000000..80e7728e0d --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/freeswitch.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- + 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"> + <!--#comment + All comments starting with #command will be preprocessed and never sent to the xml parser + Valid instructions: + #include ==> Include another file to this exact point + (partial xml should be encased in <include></include> tags) + #set ==> Set a global variable (can be expanded during preprocessing with $$ variables) + (note the double $$ which denotes preprocessor variables) + #comment ==> A general comment such as this + + The preprocessor will compile the full xml document to ${prefix}/log/freeswitch.xml.fsxml + Don't modify it while freeswitch is running cos it is mem mapped in most cases =D + + The same can be achieved with the <X-PRE-PROCESS> tag where the attrs 'cmd' and 'data' are + parsed in the same way. + --> + <!--#comment + vars.xml contains all the #set directives for the preprocessor. + --> + <X-PRE-PROCESS cmd="include" data="vars.xml"/> + + <section name="configuration" description="Various Configuration"> + <X-PRE-PROCESS cmd="include" data="autoload_configs/*.xml"/> + </section> + + <section name="dialplan" description="Regex/XML Dialplan"> + <X-PRE-PROCESS cmd="include" data="dialplan/*.xml"/> + </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"> + <X-PRE-PROCESS cmd="include" data="directory/*.xml"/> + </section> + + <!-- phrases section (under development still) --> + <section name="phrases" description="Speech Phrase Management"> + <macros> + <X-PRE-PROCESS cmd="include" data="lang/de/*.xml"/> + <X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/> + <X-PRE-PROCESS cmd="include" data="lang/fr/*.xml"/> + <X-PRE-PROCESS cmd="include" data="lang/ru/*.xml"/> + </macros> + </section> + +</document> + + diff --git a/bbb-voice-conference/config/freeswitch/conf/fur_elise.ttml b/bbb-voice-conference/config/freeswitch/conf/fur_elise.ttml new file mode 100644 index 0000000000..6e6ef03724 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/fur_elise.ttml @@ -0,0 +1,83 @@ +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 494) +%(167, 0, 554) +%(167, 0, 523) +%(333, 0, 440) +%(167, 0, 0) +%(167, 0, 262) +%(167, 0, 330) +%(167, 0, 440) +%(333, 0, 494) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 415) +%(167, 0, 494) +%(333, 0, 523) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 494) +%(167, 0, 554) +%(167, 0, 523) +%(333, 0, 440) +%(167, 0, 0) +%(167, 0, 262) +%(167, 0, 330) +%(167, 0, 440) +%(333, 0, 494) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 523) +%(167, 0, 494) +%(167, 0, 440) +%(167, 0, 0) +%(167, 0, 494) +%(167, 0, 523) +%(167, 0, 587) +%(333, 0, 659) +%(167, 0, 0) +%(167, 0, 392) +%(167, 0, 698) +%(167, 0, 784) +%(333, 0, 587) +%(167, 0, 0) +%(167, 0, 349) +%(167, 0, 659) +%(167, 0, 587) +%(333, 0, 523) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 587) +%(167, 0, 523) +%(333, 0, 494) +%(167, 0, 0) +%(167, 0, 330) +%(167, 0, 659) +%(167, 0, 330) +%(167, 0, 659) +%(167, 0, 659) +%(167, 0, 1319) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 622) +%(167, 0, 659) +%(167, 0, 494) +%(167, 0, 554) +%(167, 0, 523) +%(333, 0, 440) diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/de/de.xml b/bbb-voice-conference/config/freeswitch/conf/lang/de/de.xml new file mode 100644 index 0000000000..5239489f75 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/de/de.xml @@ -0,0 +1,7 @@ +<include> + <language name="de" sound-path="/snds" tts-engine="cepstral" tts-voice="david"> + <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/> + <!--voicemail_de_tts is purely implemented with tts, we need a files based implementation too --> + <X-PRE-PROCESS cmd="include" data="vm/tts.xml"/> + </language> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/de/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf/lang/de/demo/demo.xml new file mode 100644 index 0000000000..61582b2052 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/de/demo/demo.xml @@ -0,0 +1,71 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/tts.xml new file mode 100644 index 0000000000..7a8f18cf50 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/tts.xml @@ -0,0 +1,214 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo-ivr.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo-ivr.xml new file mode 100644 index 0000000000..ec7d7bccd2 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo-ivr.xml @@ -0,0 +1,148 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo.xml new file mode 100644 index 0000000000..e3e6f02142 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo.xml @@ -0,0 +1,71 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/sounds.xml new file mode 100644 index 0000000000..02d6b3671f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/sounds.xml @@ -0,0 +1,121 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/tts.xml new file mode 100644 index 0000000000..67ae5ab265 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/tts.xml @@ -0,0 +1,96 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + <macro name="directory_intro"> + <input pattern="^(last_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Please enter the first few digit of the person last name"/> + </match> + </input> + <input pattern="^(first_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Please enter the first few digit of the person first name"/> + </match> + </input> + <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="to search by first name, press $2"/> + </match> + </input> + <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="to search by last name, press $2"/> + </match> + </input> + </macro> + + <macro name="directory_min_search_digits"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/> + </match> + </input> + </macro> + + <macro name="directory_result_count"> + <input pattern="^0$" break_on_match="true"> + <match> + <action function="speak-text" data="Your search match no user on this system, try again."/> + </match> + </input> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 result match your search"/> + </match> + </input> + </macro> + + <macro name="directory_result_count_too_large"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Your search returned too many result, please try again"/> + </match> + </input> + + </macro> + + <macro name="directory_result_last"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="No more result"/> + </match> + </input> + + </macro> + + <macro name="directory_result_item"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Result number $1"/> + </match> + </input> + </macro> + + <macro name="directory_result_menu"> + <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$"> + <match> + <action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/> + </match> + </input> + </macro> + + <macro name="directory_result_at"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="at extension $1"/> + </match> + </input> + </macro> + <macro name="directory_result_say_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1"/> + </match> + </input> + </macro> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/en.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/en.xml new file mode 100644 index 0000000000..6bd5a7d5fb --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/en.xml @@ -0,0 +1,8 @@ +<include> + <language name="en" sound-path="$${sounds_dir}/en/us/callie" tts-engine="cepstral" tts-voice="callie"> + <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> + <!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. --> + <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral --> + <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral --> + </language> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/sounds.xml new file mode 100644 index 0000000000..5a090411d7 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/sounds.xml @@ -0,0 +1,404 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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-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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/tts.xml new file mode 100644 index 0000000000..1fc877d50e --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/tts.xml @@ -0,0 +1,239 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <macro name="voicemail_enter_id"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="please enter your i d, followed by $1."/> + </match> + </input> + </macro> + + <macro name="voicemail_enter_pass"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="please enter your password, followed by $1."/> + </match> + </input> + </macro> + + <macro name="voicemail_fail_auth"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="login incorrect."/> + </match> + </input> + </macro> + + <macro name="voicemail_hello"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="welcome to your voicemail."/> + </match> + </input> + </macro> + + <macro name="voicemail_goodbye"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="goodbye."/> + </match> + </input> + </macro> + + <macro name="voicemail_abort"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="too many failed attempts."/> + </match> + </input> + </macro> + + <macro name="voicemail_message_count"> + <input pattern="^1:(.*)$" break_on_match="true"> + <match> + <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/> + </match> + </input> + <input pattern="^(\d+):(.*)$"> + <match> + <action function="speak-text" data="you have $1 $2 messages in folder ${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="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $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="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/> + </match> + </input> + </macro> + + + <macro name="voicemail_record_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/> + + </match> + </input> + </macro> + + <macro name="voicemail_record_file_check"> + <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$"> + <match> + <action function="speak-text" + data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_urgent_check"> + <input pattern="^([0-9#*]):([0-9#*])$"> + <match> + <action function="speak-text" + data="To mark this message urgent, press $1, To continue, press $2."/> + </match> + </input> + </macro> + + <macro name="voicemail_invalid_extension"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="$1 is not a valid extension."/> + </match> + </input> + </macro> + + <macro name="voicemail_forward_message_enter_extension"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/> + </match> + </input> + </macro> + + <macro name="voicemail_forward_prepend"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="To record an announcement, press $1."/> + </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="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/> + </match> + </input> + </macro> + + <macro name="voicemail_choose_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="choose a greeting between 1 and 3."/> + </match> + </input> + </macro> + + <macro name="voicemail_choose_greeting_fail"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="invalid value."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_message"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/> + </match> + </input> + </macro> + + <macro name="voicemail_greeting_selected"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="greeting $1 selected."/> + </match> + </input> + </macro> + + <macro name="voicemail_play_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 is not available."/> + </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 message number $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="message $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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/demo/demo.xml new file mode 100644 index 0000000000..80660203a3 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/demo/demo.xml @@ -0,0 +1,18 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> +<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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/sounds.xml new file mode 100644 index 0000000000..02d6b3671f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/sounds.xml @@ -0,0 +1,121 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/tts.xml new file mode 100644 index 0000000000..1f5b0caa63 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/tts.xml @@ -0,0 +1,101 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + <macro name="directory_intro"> + <input pattern="^(last_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Veuillez entrer les premières lettres du nom de famille"/> + </match> + </input> + <input pattern="^(first_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Veuillez entrer les premières lettres du prénom"/> + </match> + </input> + <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="pour chercher par prénom, tapez $2"/> + </match> + </input> + <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="pour chercher par nom de famille, tapez $2"/> + </match> + </input> + </macro> + + <macro name="directory_min_search_digits"> + <input pattern="^(1)$"> + <match> + <action function="speak-text" data="Vous devez entrer au minimum une lettre du nom de la personne, essayez encore"/> + </match> + </input> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Vous devez entrer au minimum $1 lettres du nom de la personne, essayer encore"/> + </match> + </input> + </macro> + + <macro name="directory_result_count"> + <input pattern="^0$" break_on_match="true"> + <match> + <action function="speak-text" data="Votre recherche n'a retournée aucun résultat, essayez encore"/> + </match> + </input> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 résultats correspondent à votre recherche"/> + </match> + </input> + </macro> + + <macro name="directory_result_count_too_large"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Votre recherche retourne trop de résultats, essayer encore"/> + </match> + </input> + + </macro> + + <macro name="directory_result_last"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Fin des résultats."/> + </match> + </input> + + </macro> + + <macro name="directory_result_item"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Résultat numéro $1"/> + </match> + </input> + </macro> + + <macro name="directory_result_menu"> + <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$"> + <match> + <action function="speak-text" data="Pour sélectionner ce nom, tapez $1, pour le nom suivant tapez $2, pour le nom précédent, tapez $3, pour faire une nouvelle recherche, tapez $4"/> + </match> + </input> + </macro> + + <macro name="directory_result_at"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="au poste $1"/> + </match> + </input> + </macro> + <macro name="directory_result_say_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1"/> + </match> + </input> + </macro> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/fr.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/fr.xml new file mode 100644 index 0000000000..12bec06f20 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/fr.xml @@ -0,0 +1,8 @@ +<include> + <language name="fr" sound-path="/snds" tts-engine="cepstral" tts-voice="david"> + <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/> + <!--voicemail_fr_tts is purely implemented with tts, we need a files based implementation too --> + <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> + <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral --> + </language> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/vm/sounds.xml new file mode 100644 index 0000000000..55190a6bac --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/vm/sounds.xml @@ -0,0 +1,246 @@ +<?xml version="1.0" encoding="utf-8"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> \ No newline at end of file diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo-ivr.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo-ivr.xml new file mode 100644 index 0000000000..8c6f3f8624 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo-ivr.xml @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo.xml new file mode 100644 index 0000000000..7e450fbc83 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + <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> +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/sounds.xml new file mode 100644 index 0000000000..02d6b3671f --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/sounds.xml @@ -0,0 +1,121 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/tts.xml new file mode 100644 index 0000000000..67ae5ab265 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/tts.xml @@ -0,0 +1,96 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + + <macro name="directory_intro"> + <input pattern="^(last_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Please enter the first few digit of the person last name"/> + </match> + </input> + <input pattern="^(first_name)" break_on_match="false"> + <match> + <action function="speak-text" data="Please enter the first few digit of the person first name"/> + </match> + </input> + <input pattern="^(last_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="to search by first name, press $2"/> + </match> + </input> + <input pattern="^(first_name):([0-9#*])$" break_on_match="false"> + <match> + <action function="speak-text" data="to search by last name, press $2"/> + </match> + </input> + </macro> + + <macro name="directory_min_search_digits"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/> + </match> + </input> + </macro> + + <macro name="directory_result_count"> + <input pattern="^0$" break_on_match="true"> + <match> + <action function="speak-text" data="Your search match no user on this system, try again."/> + </match> + </input> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 result match your search"/> + </match> + </input> + </macro> + + <macro name="directory_result_count_too_large"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Your search returned too many result, please try again"/> + </match> + </input> + + </macro> + + <macro name="directory_result_last"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="No more result"/> + </match> + </input> + + </macro> + + <macro name="directory_result_item"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="Result number $1"/> + </match> + </input> + </macro> + + <macro name="directory_result_menu"> + <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$"> + <match> + <action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/> + </match> + </input> + </macro> + + <macro name="directory_result_at"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="at extension $1"/> + </match> + </input> + </macro> + <macro name="directory_result_say_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1"/> + </match> + </input> + </macro> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/ru.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/ru.xml new file mode 100644 index 0000000000..25d63b6110 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/ru.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<!--теÑтовые файлы Ð’Ñ‹ звуковые файлы можно взÑÑ‚ÑŒ тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/ --> +<include> + <language name="ru" sound-path="$${sounds_dir}/ru/RU/elena" tts-engine="cepstral" tts-voice="elena"> + <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml --> + <!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. --> + <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral --> + </language> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/sounds.xml new file mode 100644 index 0000000000..ffd9ec5d8c --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/sounds.xml @@ -0,0 +1,365 @@ +<?xml version="1.0" encoding="utf-8"?> +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <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-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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/tts.xml new file mode 100644 index 0000000000..1fc877d50e --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/tts.xml @@ -0,0 +1,239 @@ +<include><!--This line will be ignored it's here to validate the xml and is optional --> + <macro name="voicemail_enter_id"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="please enter your i d, followed by $1."/> + </match> + </input> + </macro> + + <macro name="voicemail_enter_pass"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="please enter your password, followed by $1."/> + </match> + </input> + </macro> + + <macro name="voicemail_fail_auth"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="login incorrect."/> + </match> + </input> + </macro> + + <macro name="voicemail_hello"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="welcome to your voicemail."/> + </match> + </input> + </macro> + + <macro name="voicemail_goodbye"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="goodbye."/> + </match> + </input> + </macro> + + <macro name="voicemail_abort"> + <input pattern="(.*)"> + <match> + <action function="speak-text" data="too many failed attempts."/> + </match> + </input> + </macro> + + <macro name="voicemail_message_count"> + <input pattern="^1:(.*)$" break_on_match="true"> + <match> + <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/> + </match> + </input> + <input pattern="^(\d+):(.*)$"> + <match> + <action function="speak-text" data="you have $1 $2 messages in folder ${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="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $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="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/> + </match> + </input> + </macro> + + + <macro name="voicemail_record_name"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/> + + </match> + </input> + </macro> + + <macro name="voicemail_record_file_check"> + <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$"> + <match> + <action function="speak-text" + data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_urgent_check"> + <input pattern="^([0-9#*]):([0-9#*])$"> + <match> + <action function="speak-text" + data="To mark this message urgent, press $1, To continue, press $2."/> + </match> + </input> + </macro> + + <macro name="voicemail_invalid_extension"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="$1 is not a valid extension."/> + </match> + </input> + </macro> + + <macro name="voicemail_forward_message_enter_extension"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/> + </match> + </input> + </macro> + + <macro name="voicemail_forward_prepend"> + <input pattern="^([0-9#*])$"> + <match> + <action function="speak-text" data="To record an announcement, press $1."/> + </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="To listen to the recording again, press $1, To save the recording, press $2, To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/> + </match> + </input> + </macro> + + <macro name="voicemail_choose_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="choose a greeting between 1 and 3."/> + </match> + </input> + </macro> + + <macro name="voicemail_choose_greeting_fail"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="invalid value."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/> + </match> + </input> + </macro> + + <macro name="voicemail_record_message"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/> + </match> + </input> + </macro> + + <macro name="voicemail_greeting_selected"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="greeting $1 selected."/> + </match> + </input> + </macro> + + <macro name="voicemail_play_greeting"> + <input pattern="^(.*)$"> + <match> + <action function="speak-text" data="$1 is not available."/> + </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 message number $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="message $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> + +</include><!--This line will be ignored it's here to validate the xml and is optional --> diff --git a/bbb-voice-conference/config/freeswitch/conf/mime.types b/bbb-voice-conference/config/freeswitch/conf/mime.types new file mode 100644 index 0000000000..34d5fc9055 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/mime.types @@ -0,0 +1,983 @@ +# This is a comment. I love comments. + +# This file controls what Internet media types are sent to the client for +# given file extension(s). Sending the correct media type to the client +# is important so they know how to handle the content of the file. +# Extra types can either be added here or by using an AddType directive +# in your config files. For more information about Internet media types, +# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type +# registry is at <http://www.iana.org/assignments/media-types/>. + +# MIME type Extensions +application/activemessage +application/andrew-inset ez +application/applefile +application/atom+xml atom +application/atomcat+xml atomcat +application/atomicmail +application/atomsvc+xml atomsvc +application/auth-policy+xml +application/batch-smtp +application/beep+xml +application/cals-1840 +application/ccxml+xml ccxml +application/cellml+xml +application/cnrp+xml +application/commonground +application/conference-info+xml +application/cpl+xml +application/csta+xml +application/cstadata+xml +application/cybercash +application/davmount+xml davmount +application/dca-rft +application/dec-dx +application/dialog-info+xml +application/dicom +application/dns +application/dvcs +application/ecmascript ecma +application/edi-consent +application/edi-x12 +application/edifact +application/epp+xml +application/eshop +application/fastinfoset +application/fastsoap +application/fits +application/font-tdpfr pfr +application/h224 +application/http +application/hyperstudio stk +application/iges +application/im-iscomposing+xml +application/index +application/index.cmd +application/index.obj +application/index.response +application/index.vnd +application/iotp +application/ipp +application/isup +application/javascript js +application/json json +application/kpml-request+xml +application/kpml-response+xml +application/mac-binhex40 hqx +application/mac-compactpro cpt +application/macwriteii +application/marc mrc +application/mathematica ma nb mb +application/mathml+xml mathml +application/mbms-associated-procedure-description+xml +application/mbms-deregister+xml +application/mbms-envelope+xml +application/mbms-msk+xml +application/mbms-msk-response+xml +application/mbms-protection-description+xml +application/mbms-reception-report+xml +application/mbms-register+xml +application/mbms-register-response+xml +application/mbms-user-service-description+xml +application/mbox mbox +application/mediaservercontrol+xml mscml +application/mikey +application/mp4 mp4s +application/mpeg4-generic +application/mpeg4-iod +application/mpeg4-iod-xmt +application/msword doc dot +application/mxf mxf +application/nasdata +application/news-message-id +application/news-transmission +application/nss +application/ocsp-request +application/ocsp-response +application/octet-stream bin dms lha lzh class so iso dmg dist distz pkg bpk dump elc +application/oda oda +application/oebps-package+xml +application/ogg ogg +application/parityfec +application/pdf pdf +application/pgp-encrypted pgp +application/pgp-keys +application/pgp-signature asc sig +application/pics-rules prf +application/pidf+xml +application/pkcs10 p10 +application/pkcs7-mime p7m p7c +application/pkcs7-signature p7s +application/pkix-cert cer +application/pkix-crl crl +application/pkix-pkipath pkipath +application/pkixcmp pki +application/pls+xml pls +application/poc-settings+xml +application/postscript ai eps ps +application/prs.alvestrand.titrax-sheet +application/prs.cww cww +application/prs.nprend +application/prs.plucker +application/qsig +application/rdf+xml rdf +application/reginfo+xml rif +application/relax-ng-compact-syntax rnc +application/remote-printing +application/resource-lists+xml rl +application/riscos +application/rlmi+xml +application/rls-services+xml rs +application/rsd+xml rsd +application/rss+xml rss +application/rtf rtf +application/rtx +application/samlassertion+xml +application/samlmetadata+xml +application/sbml+xml sbml +application/sdp sdp +application/set-payment +application/set-payment-initiation setpay +application/set-registration +application/set-registration-initiation setreg +application/sgml +application/sgml-open-catalog +application/shf+xml shf +application/sieve +application/simple-filter+xml +application/simple-message-summary +application/simplesymbolcontainer +application/slate +application/smil +application/smil+xml smi smil +application/soap+fastinfoset +application/soap+xml +application/spirits-event+xml +application/srgs gram +application/srgs+xml grxml +application/ssml+xml ssml +application/timestamp-query +application/timestamp-reply +application/tve-trigger +application/vemmi +application/vividence.scriptfile +application/vnd.3gpp.bsf+xml +application/vnd.3gpp.pic-bw-large plb +application/vnd.3gpp.pic-bw-small psb +application/vnd.3gpp.pic-bw-var pvb +application/vnd.3gpp.sms +application/vnd.3gpp2.bcmcsinfo+xml +application/vnd.3gpp2.sms +application/vnd.3m.post-it-notes pwn +application/vnd.accpac.simply.aso aso +application/vnd.accpac.simply.imp imp +application/vnd.acucobol acu +application/vnd.acucorp atc acutc +application/vnd.adobe.xdp+xml xdp +application/vnd.adobe.xfdf xfdf +application/vnd.aether.imp +application/vnd.amiga.ami ami +application/vnd.anser-web-certificate-issue-initiation cii +application/vnd.anser-web-funds-transfer-initiation fti +application/vnd.antix.game-component atx +application/vnd.apple.installer+xml mpkg +application/vnd.audiograph aep +application/vnd.autopackage +application/vnd.avistar+xml +application/vnd.blueice.multipass mpm +application/vnd.bmi bmi +application/vnd.businessobjects rep +application/vnd.cab-jscript +application/vnd.canon-cpdl +application/vnd.canon-lips +application/vnd.cendio.thinlinc.clientconf +application/vnd.chemdraw+xml cdxml +application/vnd.chipnuts.karaoke-mmd mmd +application/vnd.cinderella cdy +application/vnd.cirpack.isdn-ext +application/vnd.claymore cla +application/vnd.clonk.c4group c4g c4d c4f c4p c4u +application/vnd.commerce-battelle +application/vnd.commonspace csp cst +application/vnd.contact.cmsg cdbcmsg +application/vnd.cosmocaller cmc +application/vnd.crick.clicker clkx +application/vnd.crick.clicker.keyboard clkk +application/vnd.crick.clicker.palette clkp +application/vnd.crick.clicker.template clkt +application/vnd.crick.clicker.wordbank clkw +application/vnd.criticaltools.wbs+xml wbs +application/vnd.ctc-posml pml +application/vnd.cups-pdf +application/vnd.cups-postscript +application/vnd.cups-ppd ppd +application/vnd.cups-raster +application/vnd.cups-raw +application/vnd.curl curl +application/vnd.cybank +application/vnd.data-vision.rdz rdz +application/vnd.denovo.fcselayout-link fe_launch +application/vnd.dna dna +application/vnd.dolby.mlp mlp +application/vnd.dpgraph dpg +application/vnd.dreamfactory dfac +application/vnd.dvb.esgcontainer +application/vnd.dvb.ipdcesgaccess +application/vnd.dxr +application/vnd.ecdis-update +application/vnd.ecowin.chart mag +application/vnd.ecowin.filerequest +application/vnd.ecowin.fileupdate +application/vnd.ecowin.series +application/vnd.ecowin.seriesrequest +application/vnd.ecowin.seriesupdate +application/vnd.enliven nml +application/vnd.epson.esf esf +application/vnd.epson.msf msf +application/vnd.epson.quickanime qam +application/vnd.epson.salt slt +application/vnd.epson.ssf ssf +application/vnd.ericsson.quickcall +application/vnd.eszigno3+xml es3 et3 +application/vnd.eudora.data +application/vnd.ezpix-album ez2 +application/vnd.ezpix-package ez3 +application/vnd.fdf fdf +application/vnd.ffsns +application/vnd.fints +application/vnd.flographit gph +application/vnd.fluxtime.clip ftc +application/vnd.framemaker fm frame maker +application/vnd.frogans.fnc fnc +application/vnd.frogans.ltf ltf +application/vnd.fsc.weblaunch fsc +application/vnd.fujitsu.oasys oas +application/vnd.fujitsu.oasys2 oa2 +application/vnd.fujitsu.oasys3 oa3 +application/vnd.fujitsu.oasysgp fg5 +application/vnd.fujitsu.oasysprs bh2 +application/vnd.fujixerox.art-ex +application/vnd.fujixerox.art4 +application/vnd.fujixerox.hbpl +application/vnd.fujixerox.ddd ddd +application/vnd.fujixerox.docuworks xdw +application/vnd.fujixerox.docuworks.binder xbd +application/vnd.fut-misnet +application/vnd.fuzzysheet fzs +application/vnd.genomatix.tuxedo txd +application/vnd.google-earth.kml+xml kml +application/vnd.google-earth.kmz kmz +application/vnd.grafeq gqf gqs +application/vnd.gridmp +application/vnd.groove-account gac +application/vnd.groove-help ghf +application/vnd.groove-identity-message gim +application/vnd.groove-injector grv +application/vnd.groove-tool-message gtm +application/vnd.groove-tool-template tpl +application/vnd.groove-vcard vcg +application/vnd.handheld-entertainment+xml zmm +application/vnd.hbci hbci +application/vnd.hcl-bireports +application/vnd.hhe.lesson-player les +application/vnd.hp-hpgl hpgl +application/vnd.hp-hpid hpid +application/vnd.hp-hps hps +application/vnd.hp-jlyt jlt +application/vnd.hp-pcl pcl +application/vnd.hp-pclxl pclxl +application/vnd.httphone +application/vnd.hzn-3d-crossword x3d +application/vnd.ibm.afplinedata +application/vnd.ibm.electronic-media +application/vnd.ibm.minipay mpy +application/vnd.ibm.modcap afp listafp list3820 +application/vnd.ibm.rights-management irm +application/vnd.ibm.secure-container sc +application/vnd.igloader igl +application/vnd.immervision-ivp ivp +application/vnd.immervision-ivu ivu +application/vnd.informedcontrol.rms+xml +application/vnd.intercon.formnet xpw xpx +application/vnd.intertrust.digibox +application/vnd.intertrust.nncp +application/vnd.intu.qbo qbo +application/vnd.intu.qfx qfx +application/vnd.ipunplugged.rcprofile rcprofile +application/vnd.irepository.package+xml irp +application/vnd.is-xpr xpr +application/vnd.jam jam +application/vnd.japannet-directory-service +application/vnd.japannet-jpnstore-wakeup +application/vnd.japannet-payment-wakeup +application/vnd.japannet-registration +application/vnd.japannet-registration-wakeup +application/vnd.japannet-setstore-wakeup +application/vnd.japannet-verification +application/vnd.japannet-verification-wakeup +application/vnd.jcp.javame.midlet-rms rms +application/vnd.jisp jisp +application/vnd.kahootz ktz ktr +application/vnd.kde.karbon karbon +application/vnd.kde.kchart chrt +application/vnd.kde.kformula kfo +application/vnd.kde.kivio flw +application/vnd.kde.kontour kon +application/vnd.kde.kpresenter kpr kpt +application/vnd.kde.kspread ksp +application/vnd.kde.kword kwd kwt +application/vnd.kenameaapp htke +application/vnd.kidspiration kia +application/vnd.kinar kne knp +application/vnd.koan skp skd skt skm +application/vnd.liberty-request+xml +application/vnd.llamagraphics.life-balance.desktop lbd +application/vnd.llamagraphics.life-balance.exchange+xml lbe +application/vnd.lotus-1-2-3 123 +application/vnd.lotus-approach apr +application/vnd.lotus-freelance pre +application/vnd.lotus-notes nsf +application/vnd.lotus-organizer org +application/vnd.lotus-screencam scm +application/vnd.lotus-wordpro lwp +application/vnd.macports.portpkg portpkg +application/vnd.marlin.drm.actiontoken+xml +application/vnd.marlin.drm.conftoken+xml +application/vnd.marlin.drm.mdcf +application/vnd.mcd mcd +application/vnd.medcalcdata mc1 +application/vnd.mediastation.cdkey cdkey +application/vnd.meridian-slingshot +application/vnd.mfer mwf +application/vnd.mfmp mfm +application/vnd.micrografx.flo flo +application/vnd.micrografx.igx igx +application/vnd.mif mif +application/vnd.minisoft-hp3000-save +application/vnd.mitsubishi.misty-guard.trustweb +application/vnd.mobius.daf daf +application/vnd.mobius.dis dis +application/vnd.mobius.mbk mbk +application/vnd.mobius.mqy mqy +application/vnd.mobius.msl msl +application/vnd.mobius.plc plc +application/vnd.mobius.txf txf +application/vnd.mophun.application mpn +application/vnd.mophun.certificate mpc +application/vnd.motorola.flexsuite +application/vnd.motorola.flexsuite.adsi +application/vnd.motorola.flexsuite.fis +application/vnd.motorola.flexsuite.gotap +application/vnd.motorola.flexsuite.kmr +application/vnd.motorola.flexsuite.ttc +application/vnd.motorola.flexsuite.wem +application/vnd.mozilla.xul+xml xul +application/vnd.ms-artgalry cil +application/vnd.ms-asf asf +application/vnd.ms-cab-compressed cab +application/vnd.ms-excel xls xlm xla xlc xlt xlw +application/vnd.ms-fontobject eot +application/vnd.ms-htmlhelp chm +application/vnd.ms-ims ims +application/vnd.ms-lrm lrm +application/vnd.ms-playready.initiator+xml +application/vnd.ms-powerpoint ppt pps pot +application/vnd.ms-project mpp mpt +application/vnd.ms-tnef +application/vnd.ms-wmdrm.lic-chlg-req +application/vnd.ms-wmdrm.lic-resp +application/vnd.ms-wmdrm.meter-chlg-req +application/vnd.ms-wmdrm.meter-resp +application/vnd.ms-works wps wks wcm wdb +application/vnd.ms-wpl wpl +application/vnd.ms-xpsdocument xps +application/vnd.mseq mseq +application/vnd.msign +application/vnd.music-niff +application/vnd.musician mus +application/vnd.ncd.control +application/vnd.nervana +application/vnd.netfpx +application/vnd.neurolanguage.nlu nlu +application/vnd.noblenet-directory nnd +application/vnd.noblenet-sealer nns +application/vnd.noblenet-web nnw +application/vnd.nokia.catalogs +application/vnd.nokia.conml+wbxml +application/vnd.nokia.conml+xml +application/vnd.nokia.isds-radio-presets +application/vnd.nokia.iptv.config+xml +application/vnd.nokia.landmark+wbxml +application/vnd.nokia.landmark+xml +application/vnd.nokia.landmarkcollection+xml +application/vnd.nokia.n-gage.ac+xml +application/vnd.nokia.n-gage.data ngdat +application/vnd.nokia.n-gage.symbian.install n-gage +application/vnd.nokia.ncd +application/vnd.nokia.pcd+wbxml +application/vnd.nokia.pcd+xml +application/vnd.nokia.radio-preset rpst +application/vnd.nokia.radio-presets rpss +application/vnd.novadigm.edm edm +application/vnd.novadigm.edx edx +application/vnd.novadigm.ext ext +application/vnd.oasis.opendocument.chart odc +application/vnd.oasis.opendocument.chart-template otc +application/vnd.oasis.opendocument.formula odf +application/vnd.oasis.opendocument.formula-template otf +application/vnd.oasis.opendocument.graphics odg +application/vnd.oasis.opendocument.graphics-template otg +application/vnd.oasis.opendocument.image odi +application/vnd.oasis.opendocument.image-template oti +application/vnd.oasis.opendocument.presentation odp +application/vnd.oasis.opendocument.presentation-template otp +application/vnd.oasis.opendocument.spreadsheet ods +application/vnd.oasis.opendocument.spreadsheet-template ots +application/vnd.oasis.opendocument.text odt +application/vnd.oasis.opendocument.text-master otm +application/vnd.oasis.opendocument.text-template ott +application/vnd.oasis.opendocument.text-web oth +application/vnd.obn +application/vnd.olpc-sugar xo +application/vnd.oma-scws-config +application/vnd.oma-scws-http-request +application/vnd.oma-scws-http-response +application/vnd.oma.bcast.associated-procedure-parameter+xml +application/vnd.oma.bcast.drm-trigger+xml +application/vnd.oma.bcast.imd+xml +application/vnd.oma.bcast.notification+xml +application/vnd.oma.bcast.sgboot +application/vnd.oma.bcast.sgdd+xml +application/vnd.oma.bcast.sgdu +application/vnd.oma.bcast.simple-symbol-container +application/vnd.oma.bcast.smartcard-trigger+xml +application/vnd.oma.bcast.sprov+xml +application/vnd.oma.dd2+xml dd2 +application/vnd.oma.drm.risd+xml +application/vnd.oma.group-usage-list+xml +application/vnd.oma.poc.groups+xml +application/vnd.oma.xcap-directory+xml +application/vnd.omads-email+xml +application/vnd.omads-file+xml +application/vnd.omads-folder+xml +application/vnd.omaloc-supl-init +application/vnd.openofficeorg.extension oxt +application/vnd.osa.netdeploy +application/vnd.osgi.dp dp +application/vnd.otps.ct-kip+xml +application/vnd.palm prc pdb pqa oprc +application/vnd.paos.xml +application/vnd.pg.format str +application/vnd.pg.osasli ei6 +application/vnd.piaccess.application-licence +application/vnd.picsel efif +application/vnd.poc.group-advertisement+xml +application/vnd.pocketlearn plf +application/vnd.powerbuilder6 pbd +application/vnd.powerbuilder6-s +application/vnd.powerbuilder7 +application/vnd.powerbuilder7-s +application/vnd.powerbuilder75 +application/vnd.powerbuilder75-s +application/vnd.preminet +application/vnd.previewsystems.box box +application/vnd.proteus.magazine mgz +application/vnd.publishare-delta-tree qps +application/vnd.pvi.ptid1 ptid +application/vnd.pwg-multiplexed +application/vnd.pwg-xhtml-print+xml +application/vnd.qualcomm.brew-app-res +application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb +application/vnd.rapid +application/vnd.recordare.musicxml mxl +application/vnd.recordare.musicxml+xml +application/vnd.renlearn.rlprint +application/vnd.rn-realmedia rm +application/vnd.ruckus.download +application/vnd.s3sms +application/vnd.scribus +application/vnd.sealed.3df +application/vnd.sealed.csf +application/vnd.sealed.doc +application/vnd.sealed.eml +application/vnd.sealed.mht +application/vnd.sealed.net +application/vnd.sealed.ppt +application/vnd.sealed.tiff +application/vnd.sealed.xls +application/vnd.sealedmedia.softseal.html +application/vnd.sealedmedia.softseal.pdf +application/vnd.seemail see +application/vnd.sema sema +application/vnd.semd semd +application/vnd.semf semf +application/vnd.shana.informed.formdata ifm +application/vnd.shana.informed.formtemplate itp +application/vnd.shana.informed.interchange iif +application/vnd.shana.informed.package ipk +application/vnd.simtech-mindmapper twd twds +application/vnd.smaf mmf +application/vnd.solent.sdkm+xml sdkm sdkd +application/vnd.spotfire.dxp dxp +application/vnd.spotfire.sfs sfs +application/vnd.sss-cod +application/vnd.sss-dtf +application/vnd.sss-ntf +application/vnd.street-stream +application/vnd.sun.wadl+xml +application/vnd.sus-calendar sus susp +application/vnd.svd svd +application/vnd.swiftview-ics +application/vnd.syncml+xml xsm +application/vnd.syncml.dm+wbxml bdm +application/vnd.syncml.dm+xml xdm +application/vnd.syncml.ds.notification +application/vnd.tao.intent-module-archive tao +application/vnd.tmobile-livetv tmo +application/vnd.trid.tpt tpt +application/vnd.triscape.mxs mxs +application/vnd.trueapp tra +application/vnd.truedoc +application/vnd.ufdl ufd ufdl +application/vnd.uiq.theme utz +application/vnd.umajin umj +application/vnd.unity unityweb +application/vnd.uoml+xml uoml +application/vnd.uplanet.alert +application/vnd.uplanet.alert-wbxml +application/vnd.uplanet.bearer-choice +application/vnd.uplanet.bearer-choice-wbxml +application/vnd.uplanet.cacheop +application/vnd.uplanet.cacheop-wbxml +application/vnd.uplanet.channel +application/vnd.uplanet.channel-wbxml +application/vnd.uplanet.list +application/vnd.uplanet.list-wbxml +application/vnd.uplanet.listcmd +application/vnd.uplanet.listcmd-wbxml +application/vnd.uplanet.signal +application/vnd.vcx vcx +application/vnd.vd-study +application/vnd.vectorworks +application/vnd.vidsoft.vidconference +application/vnd.visio vsd vst vss vsw +application/vnd.visionary vis +application/vnd.vividence.scriptfile +application/vnd.vsf vsf +application/vnd.wap.sic +application/vnd.wap.slc +application/vnd.wap.wbxml wbxml +application/vnd.wap.wmlc wmlc +application/vnd.wap.wmlscriptc wmlsc +application/vnd.webturbo wtb +application/vnd.wfa.wsc +application/vnd.wordperfect wpd +application/vnd.wqd wqd +application/vnd.wrq-hp3000-labelled +application/vnd.wt.stf stf +application/vnd.wv.csp+wbxml +application/vnd.wv.csp+xml +application/vnd.wv.ssp+xml +application/vnd.xara xar +application/vnd.xfdl xfdl +application/vnd.xmpie.cpkg +application/vnd.xmpie.dpkg +application/vnd.xmpie.plan +application/vnd.xmpie.ppkg +application/vnd.xmpie.xlim +application/vnd.yamaha.hv-dic hvd +application/vnd.yamaha.hv-script hvs +application/vnd.yamaha.hv-voice hvp +application/vnd.yamaha.smaf-audio saf +application/vnd.yamaha.smaf-phrase spf +application/vnd.yellowriver-custom-menu cmp +application/vnd.zzazz.deck+xml zaz +application/voicexml+xml vxml +application/watcherinfo+xml +application/whoispp-query +application/whoispp-response +application/winhlp hlp +application/wita +application/wordperfect5.1 +application/wsdl+xml wsdl +application/wspolicy+xml wspolicy +application/x-ace-compressed ace +application/x-bcpio bcpio +application/x-bittorrent torrent +application/x-bzip bz +application/x-bzip2 bz2 boz +application/x-cdlink vcd +application/x-chat chat +application/x-chess-pgn pgn +application/x-compress +application/x-cpio cpio +application/x-csh csh +application/x-director dcr dir dxr fgd +application/x-dvi dvi +application/x-futuresplash spl +application/x-gtar gtar +application/x-gzip +application/x-hdf hdf +application/x-latex latex +application/x-ms-wmd wmd +application/x-ms-wmz wmz +application/x-msaccess mdb +application/x-msbinder obd +application/x-mscardfile crd +application/x-msclip clp +application/x-msdownload exe dll com bat msi +application/x-msmediaview mvb m13 m14 +application/x-msmetafile wmf +application/x-msmoney mny +application/x-mspublisher pub +application/x-msschedule scd +application/x-msterminal trm +application/x-mswrite wri +application/x-netcdf nc cdf +application/x-pkcs12 p12 pfx +application/x-pkcs7-certificates p7b spc +application/x-pkcs7-certreqresp p7r +application/x-rar-compressed rar +application/x-sh sh +application/x-shar shar +application/x-shockwave-flash swf +application/x-stuffit sit +application/x-stuffitx sitx +application/x-sv4cpio sv4cpio +application/x-sv4crc sv4crc +application/x-tar tar +application/x-tcl tcl +application/x-tex tex +application/x-texinfo texinfo texi +application/x-ustar ustar +application/x-wais-source src +application/x-x509-ca-cert der crt +application/x400-bp +application/xcap-att+xml +application/xcap-caps+xml +application/xcap-el+xml +application/xcap-error+xml +application/xcap-ns+xml +application/xenc+xml xenc +application/xhtml+xml xhtml xht +application/xml xml xsl +application/xml-dtd dtd +application/xml-external-parsed-entity +application/xmpp+xml +application/xop+xml xop +application/xslt+xml xslt +application/xspf+xml xspf +application/xv+xml mxml xhvml xvml xvm +application/zip zip +audio/32kadpcm +audio/3gpp +audio/3gpp2 +audio/ac3 +audio/amr +audio/amr-wb +audio/amr-wb+ +audio/asc +audio/basic au snd +audio/bv16 +audio/bv32 +audio/clearmode +audio/cn +audio/dat12 +audio/dls +audio/dsr-es201108 +audio/dsr-es202050 +audio/dsr-es202211 +audio/dsr-es202212 +audio/dvi4 +audio/eac3 +audio/evrc +audio/evrc-qcp +audio/evrc0 +audio/evrc1 +audio/evrcb +audio/evrcb0 +audio/evrcb1 +audio/g722 +audio/g7221 +audio/g723 +audio/g726-16 +audio/g726-24 +audio/g726-32 +audio/g726-40 +audio/g728 +audio/g729 +audio/g7291 +audio/g729d +audio/g729e +audio/gsm +audio/gsm-efr +audio/ilbc +audio/l16 +audio/l20 +audio/l24 +audio/l8 +audio/lpc +audio/midi mid midi kar rmi +audio/mobile-xmf +audio/mp4 mp4a +audio/mp4a-latm +audio/mpa +audio/mpa-robust +audio/mpeg mpga mp2 mp2a mp3 m2a m3a +audio/mpeg4-generic +audio/parityfec +audio/pcma +audio/pcmu +audio/prs.sid +audio/qcelp +audio/red +audio/rtp-enc-aescm128 +audio/rtp-midi +audio/rtx +audio/smv +audio/smv0 +audio/smv-qcp +audio/sp-midi +audio/t140c +audio/t38 +audio/telephone-event +audio/tone +audio/vdvi +audio/vmr-wb +audio/vnd.3gpp.iufp +audio/vnd.4sb +audio/vnd.audiokoz +audio/vnd.celp +audio/vnd.cisco.nse +audio/vnd.cmles.radio-events +audio/vnd.cns.anp1 +audio/vnd.cns.inf1 +audio/vnd.digital-winds eol +audio/vnd.dlna.adts +audio/vnd.dolby.mlp +audio/vnd.everad.plj +audio/vnd.hns.audio +audio/vnd.lucent.voice lvp +audio/vnd.nokia.mobile-xmf +audio/vnd.nortel.vbk +audio/vnd.nuera.ecelp4800 ecelp4800 +audio/vnd.nuera.ecelp7470 ecelp7470 +audio/vnd.nuera.ecelp9600 ecelp9600 +audio/vnd.octel.sbc +audio/vnd.qcelp +audio/vnd.rhetorex.32kadpcm +audio/vnd.sealedmedia.softseal.mpeg +audio/vnd.vmx.cvsd +audio/wav wav +audio/x-aiff aif aiff aifc +audio/x-mpegurl m3u +audio/x-ms-wax wax +audio/x-ms-wma wma +audio/x-pn-realaudio ram ra +audio/x-pn-realaudio-plugin rmp +audio/x-wav wav +chemical/x-cdx cdx +chemical/x-cif cif +chemical/x-cmdf cmdf +chemical/x-cml cml +chemical/x-csml csml +chemical/x-pdb pdb +chemical/x-xyz xyz +image/bmp bmp +image/cgm cgm +image/fits +image/g3fax g3 +image/gif gif +image/ief ief +image/jp2 +image/jpeg jpeg jpg jpe +image/jpm +image/jpx +image/naplps +image/png png +image/prs.btif btif +image/prs.pti +image/svg+xml svg svgz +image/t38 +image/tiff tiff tif +image/tiff-fx +image/vnd.adobe.photoshop psd +image/vnd.cns.inf2 +image/vnd.djvu djvu djv +image/vnd.dwg dwg +image/vnd.dxf dxf +image/vnd.fastbidsheet fbs +image/vnd.fpx fpx +image/vnd.fst fst +image/vnd.fujixerox.edmics-mmr mmr +image/vnd.fujixerox.edmics-rlc rlc +image/vnd.globalgraphics.pgb +image/vnd.microsoft.icon ico +image/vnd.mix +image/vnd.ms-modi mdi +image/vnd.net-fpx npx +image/vnd.sealed.png +image/vnd.sealedmedia.softseal.gif +image/vnd.sealedmedia.softseal.jpg +image/vnd.svf +image/vnd.wap.wbmp wbmp +image/vnd.xiff xif +image/x-cmu-raster ras +image/x-cmx cmx +image/x-icon +image/x-pcx pcx +image/x-pict pic pct +image/x-portable-anymap pnm +image/x-portable-bitmap pbm +image/x-portable-graymap pgm +image/x-portable-pixmap ppm +image/x-rgb rgb +image/x-xbitmap xbm +image/x-xpixmap xpm +image/x-xwindowdump xwd +message/cpim +message/delivery-status +message/disposition-notification +message/external-body +message/http +message/news +message/partial +message/rfc822 eml mime +message/s-http +message/sip +message/sipfrag +message/tracking-status +model/iges igs iges +model/mesh msh mesh silo +model/vnd.dwf dwf +model/vnd.flatland.3dml +model/vnd.gdl gdl +model/vnd.gs.gdl +model/vnd.gtw gtw +model/vnd.moml+xml +model/vnd.mts mts +model/vnd.parasolid.transmit.binary +model/vnd.parasolid.transmit.text +model/vnd.vtu vtu +model/vrml wrl vrml +multipart/alternative +multipart/appledouble +multipart/byteranges +multipart/digest +multipart/encrypted +multipart/form-data +multipart/header-set +multipart/mixed +multipart/parallel +multipart/related +multipart/report +multipart/signed +multipart/voice-message +text/calendar ics ifb +text/css css +text/csv csv +text/directory +text/dns +text/enriched +text/html html htm +text/parityfec +text/plain txt text conf def list log in +text/prs.fallenstein.rst +text/prs.lines.tag dsc +text/red +text/rfc822-headers +text/richtext rtx +text/rtf +text/rtp-enc-aescm128 +text/rtx +text/sgml sgml sgm +text/t140 +text/tab-separated-values tsv +text/troff t tr roff man me ms +text/uri-list uri uris urls +text/vnd.abc +text/vnd.curl +text/vnd.dmclientscript +text/vnd.esmertec.theme-descriptor +text/vnd.fly fly +text/vnd.fmi.flexstor flx +text/vnd.in3d.3dml 3dml +text/vnd.in3d.spot spot +text/vnd.iptc.newsml +text/vnd.iptc.nitf +text/vnd.latex-z +text/vnd.motorola.reflex +text/vnd.ms-mediapackage +text/vnd.net2phone.commcenter.command +text/vnd.sun.j2me.app-descriptor jad +text/vnd.trolltech.linguist +text/vnd.wap.si +text/vnd.wap.sl +text/vnd.wap.wml wml +text/vnd.wap.wmlscript wmls +text/x-asm s asm +text/x-c c cc cxx cpp h hh dic +text/x-fortran f for f77 f90 +text/x-pascal p pas +text/x-java-source java +text/x-setext etx +text/x-uuencode uu +text/x-vcalendar vcs +text/x-vcard vcf +text/xml +text/xml-external-parsed-entity +video/3gpp 3gp +video/3gpp-tt +video/3gpp2 3g2 +video/bmpeg +video/bt656 +video/celb +video/dv +video/h261 h261 +video/h263 h263 +video/h263-1998 +video/h263-2000 +video/h264 h264 +video/jpeg jpgv +video/jpm jpm jpgm +video/mj2 mj2 mjp2 +video/mp1s +video/mp2p +video/mp2t +video/mp4 mp4 mp4v mpg4 +video/mp4v-es +video/mpeg mpeg mpg mpe m1v m2v +video/mpeg4-generic +video/mpv +video/nv +video/parityfec +video/pointer +video/quicktime qt mov +video/raw +video/rtp-enc-aescm128 +video/rtx +video/smpte292m +video/vc1 +video/vnd.dlna.mpeg-tts +video/vnd.fvt fvt +video/vnd.hns.video +video/vnd.motorola.video +video/vnd.motorola.videop +video/vnd.mpegurl mxu m4u +video/vnd.nokia.interleaved-multimedia +video/vnd.nokia.videovoip +video/vnd.objectvideo +video/vnd.sealed.mpeg1 +video/vnd.sealed.mpeg4 +video/vnd.sealed.swf +video/vnd.sealedmedia.softseal.mov +video/vnd.vivo viv +video/x-fli fli +video/x-ms-asf asf asx +video/x-ms-wm wm +video/x-ms-wmv wmv +video/x-ms-wmx wmx +video/x-ms-wvx wvx +video/x-msvideo avi +video/x-sgi-movie movie +x-conference/x-cooltalk ice diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external.xml new file mode 100644 index 0000000000..8f1076364c --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external.xml @@ -0,0 +1,78 @@ +<profile name="external"> + <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files --> + <!-- This profile is only for outbound registrations to providers --> + <gateways> + <X-PRE-PROCESS cmd="include" data="external/*.xml"/> + </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="rfc2833-pt" value="101"/> + <param name="sip-port" value="$${external_sip_port}"/> + <param name="dialplan" value="XML"/> + <param name="context" value="public"/> + <param name="dtmf-duration" value="2000"/> + <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/> + <param name="outbound-codec-prefs" value="$${outbound_codec_prefs}"/> + <param name="hold-music" value="$${hold_music}"/> + <param name="rtp-timer-name" value="soft"/> + <!--<param name="enable-100rel" 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="$${domain}"/>--> + <!--<param name="force-register-domain" value="$${domain}"/>--> + <!--all inbound reg will stored in the db using this domain --> + <!--<param name="force-register-db-domain" value="$${domain}"/>--> + <!-- ************************************************* --> + + <!--<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"/> + <!-- + DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS! + --> + <param name="rtp-ip" value="$${local_ip_v4}"/> + <param name="sip-ip" value="$${local_ip_v4}"/> + <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="$${external_ssl_enable}"/> + <!-- 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="$${external_tls_port}"/> + <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) --> + <param name="tls-cert-dir" value="$${external_ssl_dir}"/> + <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 --> + <param name="tls-version" value="$${sip_tls_version}"/> + + </settings> +</profile> diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external/example.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external/example.xml new file mode 100644 index 0000000000..7ac8db1186 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external/example.xml @@ -0,0 +1,34 @@ +<include> + <!--<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="tport=tcp"/>--> + <!--send an options ping every x seconds, failure will unregister and/or mark it down--> + <!--<param name="ping" value="25"/>--> + <!--</gateway>--> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal-ipv6.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal-ipv6.xml new file mode 100644 index 0000000000..37ff58b310 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal-ipv6.xml @@ -0,0 +1,129 @@ +<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="$${internal_sip_port}"/> + <param name="dialplan" value="XML"/> + <param name="dtmf-duration" value="2000"/> + <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/> + <param name="outbound-codec-prefs" value="$${global_codec_prefs}"/> + <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="$${local_ip_v6}"/> + <!-- ip address to bind to --> + <param name="sip-ip" value="$${local_ip_v6}"/> + <param name="hold-music" value="$${hold_music}"/> + <!--<param name="enable-100rel" value="false"/>--> + <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="$${recordings_dir}/${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="$${internal_ssl_enable}"/> + <!-- 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="$${internal_tls_port}"/> + <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) --> + <param name="tls-cert-dir" value="$${internal_ssl_dir}"/> + <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 --> + <param name="tls-version" value="$${sip_tls_version}"/> + + <!--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"/>--> + + <!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok--> + <!--<param name="inbound-late-negotiation" 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="$${internal_auth_calls}"/> + <!-- on authed calls, authenticate *all* the packets not just invite --> + <param name="auth-all-packets" value="false"/> + <!-- <param name="ext-rtp-ip" value="$${external_rtp_ip}"/> --> + <!-- <param name="ext-sip-ip" value="$${external_sip_ip}"/> --> + <!-- 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="$${domain}"/> + <!--all inbound reg will stored in the db using this domain --> + <param name="force-register-db-domain" value="$${domain}"/> + <!-- 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> + diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal.xml new file mode 100644 index 0000000000..dd1595d5ba --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal.xml @@ -0,0 +1,313 @@ +<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> + <X-PRE-PROCESS cmd="include" data="internal/*.xml"/> + </gateways> + + <domains> + <!-- indicator to parse the directory for domains with parse="true" to get gateways--> + <!--<domain name="$${domain}" 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> + <!-- + 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="log-auth-failures" value="true"/> + <param name="context" value="public"/> + <param name="rfc2833-pt" value="101"/> + <!-- port to bind to for sip traffic --> + <param name="sip-port" value="$${internal_sip_port}"/> + <param name="dialplan" value="XML"/> + <param name="dtmf-duration" value="2000"/> + <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/> + <param name="outbound-codec-prefs" value="$${global_codec_prefs}"/> + <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="$${local_ip_v4}"/> + <!-- ip address to bind to, DO NOT USE HOSTNAMES ONLY IP ADDRESSES --> + <param name="sip-ip" value="$${local_ip_v4}"/> + <param name="hold-music" value="$${hold_music}"/> + <param name="apply-nat-acl" value="nat.auto"/> + + <!-- 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"/>--> + <!-- 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"/>--> + + + + <!-- 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="$${recordings_dir}"/> + <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"/> + <!--<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="$${domain}"/>--> + <!-- ************************************************* --> + + <!-- 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"/>--> + + <!-- TLS: disabled by default, set to "true" to enable --> + <param name="tls" value="$${internal_ssl_enable}"/> + <!-- 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="$${internal_tls_port}"/> + <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) --> + <param name="tls-cert-dir" value="$${internal_ssl_dir}"/> + <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 --> + <param name="tls-version" value="$${sip_tls_version}"/> + + <!-- 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"/>--> + + <!--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"/>--> + + <!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok--> + <!--<param name="inbound-late-negotiation" 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="$${internal_auth_calls}"/> + <!-- 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="$${domain}"/> + <!--force the domain in subscriptions to this value --> + <param name="force-subscription-domain" value="$${domain}"/> + <!--all inbound reg will stored in the db using this domain --> + <param name="force-register-db-domain" value="$${domain}"/> + + <!-- 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"/>--> + <!-- 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" /> --> + + </settings> +</profile> + diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal/example.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal/example.xml new file mode 100644 index 0000000000..fc061f96d1 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal/example.xml @@ -0,0 +1,37 @@ +<include> + <!--<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="tport=tcp"/>--> + <!-- 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"/>--> + <!--</gateway>--> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/tetris.ttml b/bbb-voice-conference/config/freeswitch/conf/tetris.ttml new file mode 100644 index 0000000000..2e33a5d69a --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/tetris.ttml @@ -0,0 +1,69 @@ +%(428,0,659,494) +%(214,0,494,415) +%(214,0,523,440) +%(214,0,587,494) +%(107,0,659,494) +%(107,0,587,494) +%(214,0,523,440) +%(214,0,494,415) +%(428,0,330,440) +%(214,0,330,440) +%(214,0,523,440) +%(428,0,659,523) +%(214,0,587,494) +%(214,0,523,440) +%(214,0,494,415) +%(214,0,494,440) +%(214,0,494,415) +%(214,0,523,440) +%(428,0,587,494) +%(428,0,659,523) +%(428,0,523,440) +%(428,0,330,440) +%(857,0,330,440) +%(214,0,0,0) +%(428,0,587,349) +%(214,0,698,440) +%(214,0,880,523) +%(107,0,880,523) +%(107,0,880,523) +%(214,0,784,494) +%(214,0,698,440) +%(642,0,659,392) +%(214,0,523,330) +%(214,0,659,392) +%(107,0,659,440) +%(107,0,659,392) +%(214,0,587,349) +%(214,0,523,330) +%(214,0,494,415) +%(214,0,494,330) +%(214,0,494,415) +%(214,0,523,440) +%(214,0,587,494) +%(214,0,587,415) +%(214,0,659,523) +%(214,0,659,415) +%(214,0,523,440) +%(214,0,523,330) +%(428,0,440,330) +%(428,0,440,330) +%(428,0,0,0) +%(857,0,330,262) +%(857,0,262,220) +%(857,0,294,247) +%(857,0,247,208) +%(857,0,262,220) +%(857,0,220,165) +%(857,0,208,165) +%(428,0,247,208) +%(428,0,0,0) +%(857,0,330,262) +%(857,0,262,220) +%(857,0,294,247) +%(857,0,208,165) +%(428,0,262,220) +%(428,0,330,262) +%(857,0,440,330) +%(857,0,415,294) +%(857,0,0,0) diff --git a/bbb-voice-conference/config/freeswitch/conf/vars.xml b/bbb-voice-conference/config/freeswitch/conf/vars.xml new file mode 100644 index 0000000000..7ec4d0475c --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/vars.xml @@ -0,0 +1,241 @@ +<include> + <!-- Preprocessor Variables + These are introduced when configuration strings must be consistent across modules. + NOTICE: YOU CAN NOT COMMENT OUT AN X-PRE-PROCESS line, Remove the line instead. + + 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 + --> + <X-PRE-PROCESS cmd="set" data="default_password=1234"/> + <!-- Did you change it yet? --> + + <X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie"/> + + <!-- + This setting is what sets the default domain FreeSWITCH will use if all else fails. + + FreeSWICH will default to $${local_ip_v4} unless changed. Changing this setting does + affect the sip authentication. Please review conf/directory/default.xml for more + information on this topic. + --> + <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/> + <X-PRE-PROCESS cmd="set" data="domain_name=$${domain}"/> + <X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/> + <X-PRE-PROCESS cmd="set" data="use_profile=internal"/> + + <!-- + Enable ZRTP globally you can override this on a per channel basis + + http://wiki.freeswitch.org/wiki/ZRTP (on how to enable zrtp) + --> + <X-PRE-PROCESS cmd="set" data="zrtp_secure_media=true"/> + + <!-- + 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 + + --> + <X-PRE-PROCESS cmd="set" data="global_codec_prefs=speex@16000h@20i,speex@8000h@20iG7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM"/> + <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM"/> + + <!-- + 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 + --> + + <X-PRE-PROCESS cmd="set" data="xmpp_client_profile=xmppc"/> + <X-PRE-PROCESS cmd="set" data="xmpp_server_profile=xmpps"/> + <!-- + 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 + --> + <X-PRE-PROCESS cmd="set" data="bind_server_ip=auto"/> + + <!-- 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 + --> + <X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org"/> + + <!-- 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 + --> + <X-PRE-PROCESS cmd="set" data="external_sip_ip=stun:stun.freeswitch.org"/> + + <!-- unroll-loops + Used to turn on sip loopback unrolling. + --> + <X-PRE-PROCESS cmd="set" data="unroll_loops=true"/> + + <!-- 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. + --> + <X-PRE-PROCESS cmd="set" data="outbound_caller_name=FreeSWITCH"/> + <X-PRE-PROCESS cmd="set" data="outbound_caller_id=0000000000"/> + + <!-- various debug and defaults --> + <X-PRE-PROCESS cmd="set" data="call_debug=false"/> + <X-PRE-PROCESS cmd="set" data="console_loglevel=info"/> + <X-PRE-PROCESS cmd="set" data="default_areacode=918"/> + <X-PRE-PROCESS cmd="set" data="default_country=US"/> + + <X-PRE-PROCESS cmd="set" data="uk-ring=%(400,200,400,450);%(400,2200,400,450)"/> + <X-PRE-PROCESS cmd="set" data="us-ring=%(2000,4000,440.0,480.0)"/> + <X-PRE-PROCESS cmd="set" data="fr-ring=%(1500,3500,440.0,0.0)"/> + <X-PRE-PROCESS cmd="set" data="rs-ring=%(1000,4000,425.0,0.0)"/> + <X-PRE-PROCESS cmd="set" data="ru-ring=%(800,3200,425,0)"/> + <X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"/> + <X-PRE-PROCESS cmd="set" data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)"/> + <!-- + 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 + --> + <X-PRE-PROCESS cmd="set" data="default_provider=example.com"/> + <X-PRE-PROCESS cmd="set" data="default_provider_username=joeuser"/> + <X-PRE-PROCESS cmd="set" data="default_provider_password=password"/> + <X-PRE-PROCESS cmd="set" data="default_provider_from_domain=example.com"/> + <!-- true or false --> + <X-PRE-PROCESS cmd="set" data="default_provider_register=false"/> + <X-PRE-PROCESS cmd="set" data="default_provider_contact=5000"/> + + <!-- + SIP and TLS settings. http://wiki.freeswitch.org/wiki/Tls + --> + <X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1"/> + + <!-- Internal SIP Profile --> + <X-PRE-PROCESS cmd="set" data="internal_auth_calls=true"/> + <X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/> + <X-PRE-PROCESS cmd="set" data="internal_tls_port=5061"/> + <X-PRE-PROCESS cmd="set" data="internal_ssl_enable=false"/> + <X-PRE-PROCESS cmd="set" data="internal_ssl_dir=$${base_dir}/conf/ssl"/> + + <!-- External SIP Profile --> + <X-PRE-PROCESS cmd="set" data="external_auth_calls=false"/> + <X-PRE-PROCESS cmd="set" data="external_sip_port=5080"/> + <X-PRE-PROCESS cmd="set" data="external_tls_port=5081"/> + <X-PRE-PROCESS cmd="set" data="external_ssl_enable=false"/> + <X-PRE-PROCESS cmd="set" data="external_ssl_dir=$${base_dir}/conf/ssl"/> +</include> diff --git a/bbb-voice-conference/config/freeswitch/conf/voicemail.tpl b/bbb-voice-conference/config/freeswitch/conf/voicemail.tpl new file mode 100644 index 0000000000..aede2b8f08 --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/voicemail.tpl @@ -0,0 +1,42 @@ +From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}@${voicemail_domain}> +To: <${voicemail_email}> +Subject: Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len} +X-Priority: ${voicemail_priority} +X-Mailer: FreeSWITCH + +Content-Type: multipart/alternative; + boundary="000XXX000" + +--000XXX000 +Content-Type: text/plain; charset=ISO-8859-1; Format=Flowed +Content-Disposition: inline +Content-Transfer-Encoding: 7bit + +Created: ${voicemail_time} +From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> +Duration: ${voicemail_message_len} +Account: ${voicemail_account}@${voicemail_domain} + +--000XXX000 +Content-Type: text/html; charset=ISO-8859-1 +Content-Disposition: inline +Content-Transfer-Encoding: 7bit + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}</title> +<meta content="text/html; charset=iso-8859-1" http-equiv="content-type"/> +</head> +<body> + +<font face=arial> +<b>Message From "${voicemail_caller_id_name}" <A HREF="tel:${voicemail_caller_id_number}">${voicemail_caller_id_number}</A></b><br> +<hr noshade size=1> +Created: ${voicemail_time}<br> +Duration: ${voicemail_message_len}<br> +Account: ${voicemail_account}@${voicemail_domain}<br> + +</body> +</html> +--000XXX000-- diff --git a/bbb-voice-conference/config/freeswitch/conf/web-vm.tpl b/bbb-voice-conference/config/freeswitch/conf/web-vm.tpl new file mode 100644 index 0000000000..1c6563320b --- /dev/null +++ b/bbb-voice-conference/config/freeswitch/conf/web-vm.tpl @@ -0,0 +1,13 @@ +<title>FreeSWITCH Voicemail</title> +<body bgcolor=eeeeee> + +<table bgcolor=ffffff width=75% align=center style="border-style:inset;border-width:2px"> +<tr><td bgcolor=1010ff align=center valign=center style="border-style:inset;border-width:2px"> +<font face=arial size=+2 color=ffffff>Voicemail Messages</font> +</td></tr> +<tr><td> + +<!break> + +</td></tr> +</table> -- GitLab