summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-pbx/root/etc/pbx-asterisk
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2014-12-03 15:17:05 +0100
committerJo-Philipp Wich <jow@openwrt.org>2015-01-08 16:26:20 +0100
commit1bb4822dca6113f73e3bc89e2acf15935e6f8e92 (patch)
tree35e16f100466e4e00657199b38bb3d87d52bf73f /applications/luci-app-pbx/root/etc/pbx-asterisk
parent9edd0e46c3f880727738ce8ca6ff1c8b85f99ef4 (diff)
Rework LuCI build system
* Rename subdirectories to their repective OpenWrt package names * Make each LuCI module its own standalone package * Deploy a shared luci.mk which is used by each module Makefile Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Diffstat (limited to 'applications/luci-app-pbx/root/etc/pbx-asterisk')
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/asterisk.conf.TEMPLATE17
-rwxr-xr-xapplications/luci-app-pbx/root/etc/pbx-asterisk/delayedcallback18
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions.conf.TEMPLATE25
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist_footer.conf.TEMPLATE2
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist_header.conf.TEMPLATE3
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check_footer.conf.TEMPLATE2
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check_header.conf.TEMPLATE3
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_gtalk.conf.TEMPLATE4
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_header.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_sip.conf.TEMPLATE4
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_default.conf.TEMPLATE11
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_default_user.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check_footer.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check_header.conf.TEMPLATE2
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-nopin.conf.TEMPLATE5
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa.conf.TEMPLATE6
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa_header.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_gtalk.conf.TEMPLATE15
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_gtalk_header.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_sip.conf.TEMPLATE12
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_dial_local_user.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_gtalk.conf.TEMPLATE9
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_pattern_gtalk.conf.TEMPLATE2
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_pattern_sip.conf.TEMPLATE1
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_sip.conf.TEMPLATE8
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_user_context_footer.conf.TEMPLATE2
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_user_context_header.conf.TEMPLATE3
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_voicemail_disabled.conf.TEMPLATE4
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_voicemail_enabled.conf.TEMPLATE27
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/gtalk.conf.TEMPLATE10
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/indications.conf.TEMPLATE733
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/jabber.conf.TEMPLATE4
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/jabber_users.conf.TEMPLATE8
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/logger.conf.TEMPLATE7
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/manager.conf.TEMPLATE7
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/modules.conf.TEMPLATE34
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/rtp.conf.TEMPLATE6
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sip.conf.TEMPLATE39
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sip_peer.TEMPLATE13
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sip_registration.TEMPLATE2
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sip_user.TEMPLATE11
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-alreadyon.gsmbin0 -> 8943 bytes
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-incorrect.gsmbin0 -> 8085 bytes
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-pass.gsmbin0 -> 4752 bytes
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/auth-incorrect.gsmbin0 -> 7458 bytes
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/auth-thankyou.gsmbin0 -> 1353 bytes
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/beep.gsmbin0 -> 726 bytes
-rw-r--r--applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/vm-goodbye.gsmbin0 -> 1683 bytes
51 files changed, 1068 insertions, 0 deletions
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/asterisk.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/asterisk.conf.TEMPLATE
new file mode 100644
index 0000000000..ac5439615b
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/asterisk.conf.TEMPLATE
@@ -0,0 +1,17 @@
+[directories]
+astetcdir => /etc/asterisk
+astmoddir => /usr/lib/asterisk/modules
+astvarlibdir => /usr/lib/asterisk
+astdbdir => /usr/lib/asterisk
+astkeydir => /usr/lib/asterisk
+astdatadir => /usr/lib/asterisk
+astagidir => /usr/lib/asterisk/agi-bin
+astspooldir => /var/spool/asterisk
+astrundir => /var/run/asterisk
+astlogdir => /var/log/asterisk
+
+[options]
+languageprefix = yes
+dumpcore = no
+runuser = nobody
+rungroup = nogroup
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/delayedcallback b/applications/luci-app-pbx/root/etc/pbx-asterisk/delayedcallback
new file mode 100755
index 0000000000..903efe9ad9
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/delayedcallback
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# Check if there are more than one instance of this command
+# with the same command line running at the same time for some
+# reason, then quit. We are checking for the same
+# commandline in order to permit two different callback
+# attempts simultaneously.
+
+if ! grep -q "$@" /dev/shm/delayedcallback.[0-9]* 2>/dev/null
+then
+ echo "$@" > /dev/shm/delayedcallback.$$
+ sleep 25
+ asterisk -r -x "$1 $2 \"$3\" $4 $5 $6"
+ rm /dev/shm/delayedcallback.$$
+# echo "`date` $@": >> /dev/shm/delayedcallback.log
+#else
+# echo "`date` ERROR: There appears to be a callback attempt in progress to: $@" >> /dev/shm/delayedcallback.err
+fi
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions.conf.TEMPLATE
new file mode 100644
index 0000000000..c8966edd87
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions.conf.TEMPLATE
@@ -0,0 +1,25 @@
+[general]
+static = yes
+writeprotect = yes
+clearglobalvars = no
+
+[globals]
+RINGTIME => |RINGTIME|
+
+[default]
+
+[context-user-hangup-call-context]
+exten => s,1,Hangup()
+exten => _X.,1,Hangup()
+
+[context-catch-all]
+exten => _[!-~].,1,Dial(SIP/${EXTEN},60,r)
+
+#include extensions_default.conf
+#include extensions_voicemail.conf
+#include extensions_incoming.conf
+#include extensions_incoming_gtalk.conf
+#include extensions_blacklist.conf
+#include extensions_callthrough.conf
+#include extensions_callback.conf
+#include extensions_user.conf
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist.conf.TEMPLATE
new file mode 100644
index 0000000000..54ee989b0f
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist.conf.TEMPLATE
@@ -0,0 +1 @@
+exten => s,n,Gotoif($[ "${CALLERID(NUM)}" = "|BLACKLISTITEM|" ]?context-user-hangup,s,1)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist_footer.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist_footer.conf.TEMPLATE
new file mode 100644
index 0000000000..da964f2388
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist_footer.conf.TEMPLATE
@@ -0,0 +1,2 @@
+exten => s,n,Goto(${SOURCECONTEXT},${SOURCEEXTEN},doneblacklist)
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist_header.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist_header.conf.TEMPLATE
new file mode 100644
index 0000000000..de0e984652
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_blacklist_header.conf.TEMPLATE
@@ -0,0 +1,3 @@
+
+[blacklist-call-context]
+exten => s,1,Noop()
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check.conf.TEMPLATE
new file mode 100644
index 0000000000..06b1a4b6b9
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check.conf.TEMPLATE
@@ -0,0 +1 @@
+exten => s,n,Gotoif($[ "${CALLERID(NUM)}" =~ ".*|NUMBER|" ]?context-user-callback,|NUMBER|,1)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check_footer.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check_footer.conf.TEMPLATE
new file mode 100644
index 0000000000..282fe9e8ff
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check_footer.conf.TEMPLATE
@@ -0,0 +1,2 @@
+exten => s,n,Goto(${SOURCECONTEXT},${SOURCEEXTEN},donecallback)
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check_header.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check_header.conf.TEMPLATE
new file mode 100644
index 0000000000..be289c4d33
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback-check_header.conf.TEMPLATE
@@ -0,0 +1,3 @@
+
+[callback-check-call-context]
+exten => s,1,Noop()
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_gtalk.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_gtalk.conf.TEMPLATE
new file mode 100644
index 0000000000..43eec788f3
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_gtalk.conf.TEMPLATE
@@ -0,0 +1,4 @@
+exten => |NUMBER|,1,System(/etc/pbx-asterisk/delayedcallback "channel originate Gtalk/gtalk-|CALLBACKPROVIDER|/|NUMBER|@voice.google.com extension |NUMBER|@disa-call-context" &)
+exten => |NUMBER|,n,Wait(|CALLBACKHUPDELAY|)
+exten => |NUMBER|,n,Hangup()
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_header.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_header.conf.TEMPLATE
new file mode 100644
index 0000000000..0b8fb4c23f
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_header.conf.TEMPLATE
@@ -0,0 +1 @@
+[context-user-callback]
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_sip.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_sip.conf.TEMPLATE
new file mode 100644
index 0000000000..300e9fa0e8
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_callback_sip.conf.TEMPLATE
@@ -0,0 +1,4 @@
+exten => |NUMBER|,1,System(/etc/pbx-asterisk/delayedcallback "channel originate SIP/|NUMBER|@peer-|CALLBACKPROVIDER| extension |NUMBER|@disa-call-context" &)
+exten => |NUMBER|,n,Wait(|CALLBACKHUPDELAY|)
+exten => |NUMBER|,n,Hangup()
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_default.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_default.conf.TEMPLATE
new file mode 100644
index 0000000000..35836e290a
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_default.conf.TEMPLATE
@@ -0,0 +1,11 @@
+[default-incoming-call-context]
+exten => s,1,NoOp(${CALLERID})
+exten => s,n,Set(SOURCECONTEXT=default-incoming-call-context)
+exten => s,n,Set(SOURCEEXTEN=s)
+exten => s,n,Goto(blacklist-call-context,s,1)
+exten => s,n(doneblacklist),NoOp()
+exten => s,n,Goto(callback-check-call-context,s,1)
+exten => s,n(donecallback),NoOp()
+exten => s,n,Goto(disa-check-call-context,s,1)
+exten => s,n(donedisacheck),Dial(|LOCALUSERS|,${RINGTIME},r)
+exten => s,n,Goto(context-voicemail,s,1)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_default_user.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_default_user.conf.TEMPLATE
new file mode 100644
index 0000000000..1910ff4d96
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_default_user.conf.TEMPLATE
@@ -0,0 +1 @@
+exten => |DEFAULTUSER|,1,Goto(default-incoming-call-context,s,1)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check.conf.TEMPLATE
new file mode 100644
index 0000000000..ba2379b738
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check.conf.TEMPLATE
@@ -0,0 +1 @@
+exten => s,n,Gotoif($[ "${CALLERID(NUM)}" =~ ".*|NUMBER|" ]?disa-call-context,|NUMBER|,1)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check_footer.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check_footer.conf.TEMPLATE
new file mode 100644
index 0000000000..74056fa01d
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check_footer.conf.TEMPLATE
@@ -0,0 +1 @@
+exten => s,n,Goto(${SOURCECONTEXT},${SOURCEEXTEN},donedisacheck)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check_header.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check_header.conf.TEMPLATE
new file mode 100644
index 0000000000..e0d67b8025
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-check_header.conf.TEMPLATE
@@ -0,0 +1,2 @@
+[disa-check-call-context]
+exten => s,1,Noop()
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-nopin.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-nopin.conf.TEMPLATE
new file mode 100644
index 0000000000..74e48de8c1
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa-nopin.conf.TEMPLATE
@@ -0,0 +1,5 @@
+exten => |NUMBER|,1,Noop()
+exten => |NUMBER|,n,Set(TIMEOUT(digit)=15)
+exten => |NUMBER|,n,Set(TIMEOUT(response)=40)
+exten => |NUMBER|,n,DISA(no-password,context-user-|DEFAULTUSER|)
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa.conf.TEMPLATE
new file mode 100644
index 0000000000..3dd8fa35c9
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa.conf.TEMPLATE
@@ -0,0 +1,6 @@
+exten => |NUMBER|,1,Noop()
+exten => |NUMBER|,n,Set(TIMEOUT(digit)=7)
+exten => |NUMBER|,n,Set(TIMEOUT(response)=21)
+exten => |NUMBER|,n,Authenticate(|PIN|)
+exten => |NUMBER|,n,DISA(no-password,context-user-|DEFAULTUSER|)
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa_header.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa_header.conf.TEMPLATE
new file mode 100644
index 0000000000..a742271146
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_disa_header.conf.TEMPLATE
@@ -0,0 +1 @@
+[disa-call-context]
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_gtalk.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_gtalk.conf.TEMPLATE
new file mode 100644
index 0000000000..3f9cf4c7d9
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_gtalk.conf.TEMPLATE
@@ -0,0 +1,15 @@
+exten => |USERNAME|,1,NoOp(${CALLERID})
+same => n,Set(CALLERID(name)=${CUT(CALLERID(name),@,1)})
+same => n,GotoIf($["${CALLERID(name):0:2}" != "+1"]?notrim)
+same => n,Set(CALLERID(name)=${CALLERID(name):2})
+same => n(notrim),Set(CALLERID(number)=${CALLERID(name)})
+same => n,Set(SOURCECONTEXT=context-incoming-gtalk)
+same => n,Set(SOURCEEXTEN=|USERNAME|)
+same => n,Goto(blacklist-call-context,s,1)
+same => n(doneblacklist),NoOp()
+same => n,Goto(callback-check-call-context,s,1)
+same => n(donecallback),NoOp()
+same => n,Goto(disa-check-call-context,s,1)
+same => n(donedisacheck),Dial(|LOCALUSERS|,${RINGTIME},D(:w11111111))
+same => n,Goto(context-voicemail,s,1)
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_gtalk_header.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_gtalk_header.conf.TEMPLATE
new file mode 100644
index 0000000000..f6e44a5bf0
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_gtalk_header.conf.TEMPLATE
@@ -0,0 +1 @@
+[context-incoming-gtalk]
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_sip.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_sip.conf.TEMPLATE
new file mode 100644
index 0000000000..b2c3716bf4
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_incoming_context_sip.conf.TEMPLATE
@@ -0,0 +1,12 @@
+
+[context-incoming-|NAME|]
+exten => s,1,NoOp(${CALLERID})
+exten => s,n,Set(SOURCECONTEXT=context-incoming-|NAME|)
+exten => s,n,Set(SOURCEEXTEN=s)
+exten => s,n,Goto(blacklist-call-context,s,1)
+exten => s,n(doneblacklist),NoOp()
+exten => s,n,Goto(callback-check-call-context,s,1)
+exten => s,n(donecallback),NoOp()
+exten => s,n,Goto(disa-check-call-context,s,1)
+exten => s,n(donedisacheck),Dial(|LOCALUSERS|,${RINGTIME},r)
+exten => s,n,Goto(context-voicemail,s,1)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_dial_local_user.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_dial_local_user.conf.TEMPLATE
new file mode 100644
index 0000000000..45e8758846
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_dial_local_user.conf.TEMPLATE
@@ -0,0 +1 @@
+exten => |DEFAULTUSER|,1,Dial(SIP/|DEFAULTUSER|,${RINGTIME},r)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_gtalk.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_gtalk.conf.TEMPLATE
new file mode 100644
index 0000000000..259c2ceaa1
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_gtalk.conf.TEMPLATE
@@ -0,0 +1,9 @@
+exten => _|NUMPREFIX|,1,Dial(Gtalk/gtalk-|NAME|/${EXTEN}@voice.google.com,60)
+exten => _+|NUMPREFIX|,1,Dial(Gtalk/gtalk-|NAME|/${EXTEN:1}@voice.google.com,60)
+exten => _|NUMPREFIX|.,1,Dial(Gtalk/gtalk-|NAME|/${EXTEN}@voice.google.com,60)
+exten => _+|NUMPREFIX|.,1,Dial(Gtalk/gtalk-|NAME|/${EXTEN:1}@voice.google.com,60)
+exten => _00|NUMPREFIX|.,1,Dial(Gtalk/gtalk-|NAME|/${EXTEN:2}@voice.google.com,60)
+exten => _011|NUMPREFIX|.,1,Dial(Gtalk/gtalk-|NAME|/${EXTEN:3}@voice.google.com,60)
+exten => _010|NUMPREFIX|.,1,Dial(Gtalk/gtalk-|NAME|/${EXTEN:3}@voice.google.com,60)
+exten => _0011|NUMPREFIX|.,1,Dial(Gtalk/gtalk-|NAME|/${EXTEN:4}@voice.google.com,60)
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_pattern_gtalk.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_pattern_gtalk.conf.TEMPLATE
new file mode 100644
index 0000000000..1fa7713e23
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_pattern_gtalk.conf.TEMPLATE
@@ -0,0 +1,2 @@
+exten => |PATTERN|,1,Dial(Gtalk/gtalk-|NAME|/${EXTEN|SYMBOLSTOREMOVE|}@voice.google.com,60)
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_pattern_sip.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_pattern_sip.conf.TEMPLATE
new file mode 100644
index 0000000000..178b6deaa6
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_pattern_sip.conf.TEMPLATE
@@ -0,0 +1 @@
+exten => |PATTERN|,1,Dial(SIP/${EXTEN|SYMBOLSTOREMOVE|}@peer-|NAME|,60,r)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_sip.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_sip.conf.TEMPLATE
new file mode 100644
index 0000000000..9b1d9addc9
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_outgoing_sip.conf.TEMPLATE
@@ -0,0 +1,8 @@
+exten => _|NUMPREFIX|,1,Dial(SIP/${EXTEN}@peer-|NAME|,60,r)
+exten => _+|NUMPREFIX|,1,Dial(SIP/${EXTEN}@peer-|NAME|,60,r)
+exten => _|NUMPREFIX|.,1,Dial(SIP/${EXTEN}@peer-|NAME|,60,r)
+exten => _+|NUMPREFIX|.,1,Dial(SIP/${EXTEN:1}@peer-|NAME|,60,r)
+exten => _00|NUMPREFIX|.,1,Dial(SIP/${EXTEN:2}@peer-|NAME|,60,r)
+exten => _011|NUMPREFIX|.,1,Dial(SIP/${EXTEN:3}@peer-|NAME|,60,r)
+exten => _010|NUMPREFIX|.,1,Dial(SIP/${EXTEN:3}@peer-|NAME|,60,r)
+exten => _0011|NUMPREFIX|.,1,Dial(SIP/${EXTEN:4}@peer-|NAME|,60,r)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_user_context_footer.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_user_context_footer.conf.TEMPLATE
new file mode 100644
index 0000000000..a2ba28c055
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_user_context_footer.conf.TEMPLATE
@@ -0,0 +1,2 @@
+include => context-voicemail-record-greeting
+include => context-catch-all
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_user_context_header.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_user_context_header.conf.TEMPLATE
new file mode 100644
index 0000000000..5931eaf28b
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_user_context_header.conf.TEMPLATE
@@ -0,0 +1,3 @@
+
+[context-user-|DEFAULTUSER|]
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_voicemail_disabled.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_voicemail_disabled.conf.TEMPLATE
new file mode 100644
index 0000000000..be23c294df
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_voicemail_disabled.conf.TEMPLATE
@@ -0,0 +1,4 @@
+[context-voicemail-record-greeting]
+
+[context-voicemail]
+exten => s,1,Hangup()
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_voicemail_enabled.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_voicemail_enabled.conf.TEMPLATE
new file mode 100644
index 0000000000..4edd9cb426
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/extensions_voicemail_enabled.conf.TEMPLATE
@@ -0,0 +1,27 @@
+[context-voicemail-record-greeting]
+exten => *789,1,Wait(1)
+exten => *789,n,Playback(/etc/pbx-voicemail/recordings/greeting)
+exten => *789,n,Wait(1)
+exten => *789,n,Playback(beep)
+exten => *789,n,Playback(beep)
+exten => *789,n,WaitExten(30)
+
+exten => t,1,Playback(vm-goodbye)
+exten => t,n,Wait(2)
+exten => t,n,Hangup()
+
+exten => *,1,Playback(beep)
+exten => *,n,Playback(beep)
+exten => *,n,Record(/tmp/voicemail/greeting:gsm,20,120,k)
+exten => *,n,Wait(1)
+exten => *,n,Playback(/tmp/voicemail/greeting)
+
+exten => h,1,System(/etc/pbx-voicemail/pbx-move-greeting &)
+
+[context-voicemail]
+exten => s,1,Wait(2)
+exten => s,2,Playback(/etc/pbx-voicemail/recordings/greeting)
+exten => s,3,Wait(2)
+exten => s,n,Record(/tmp/voicemail/voicemail%d:WAV,20,180,k)
+
+exten => h,1,System(/etc/pbx-voicemail/pbx-send-voicemail '${RECORDED_FILE}.WAV' '${CALLERID(all)}' &)
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/gtalk.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/gtalk.conf.TEMPLATE
new file mode 100644
index 0000000000..4f07a71660
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/gtalk.conf.TEMPLATE
@@ -0,0 +1,10 @@
+[general]
+context=context-incoming-gtalk
+allowguest=yes
+allowguests=yes
+bindaddr=0.0.0.0
+
+[guest]
+disallow=all
+allow=ulaw
+context=context-incoming-gtalk
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/indications.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/indications.conf.TEMPLATE
new file mode 100644
index 0000000000..d7088db7c4
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/indications.conf.TEMPLATE
@@ -0,0 +1,733 @@
+; indications.conf
+; Configuration file for location specific tone indications
+; used by the pbx_indications module.
+;
+; NOTE:
+; When adding countries to this file, please keep them in alphabetical
+; order according to the 2-character country codes!
+;
+; The [general] category is for certain global variables.
+; All other categories are interpreted as location specific indications
+;
+;
+[general]
+country=us ; default location
+
+
+; [example]
+; description = string
+; The full name of your country, in English.
+; alias = iso[,iso]*
+; List of other countries 2-letter iso codes, which have the same
+; tone indications.
+; ringcadence = num[,num]*
+; List of durations the physical bell rings.
+; dial = tonelist
+; Set of tones to be played when one picks up the hook.
+; busy = tonelist
+; Set of tones played when the receiving end is busy.
+; congestion = tonelist
+; Set of tones played when there is some congestion (on the network?)
+; callwaiting = tonelist
+; Set of tones played when there is a call waiting in the background.
+; dialrecall = tonelist
+; Not well defined; many phone systems play a recall dial tone after hook
+; flash.
+; record = tonelist
+; Set of tones played when call recording is in progress.
+; info = tonelist
+; Set of tones played with special information messages (e.g., "number is
+; out of service")
+; 'name' = tonelist
+; Every other variable will be available as a shortcut for the "PlayList" command
+; but will not be used automatically by Asterisk.
+;
+;
+; The tonelist itself is defined by a comma-separated sequence of elements.
+; Each element consist of a frequency (f) with an optional duration (in ms)
+; attached to it (f/duration). The frequency component may be a mixture of two
+; frequencies (f1+f2) or a frequency modulated by another frequency (f1*f2).
+; The implicit modulation depth is fixed at 90%, though.
+; If the list element starts with a !, that element is NOT repeated,
+; therefore, only if all elements start with !, the tonelist is time-limited,
+; all others will repeat indefinitely.
+;
+; concisely:
+; element = [!]freq[+|*freq2][/duration]
+; tonelist = element[,element]*
+;
+; Please note that SPACES ARE NOT ALLOWED in tone lists!
+;
+
+[at]
+description = Austria
+ringcadence = 1000,5000
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+dial = 420
+busy = 420/400,0/400
+ring = 420/1000,0/5000
+congestion = 420/200,0/200
+callwaiting = 420/40,0/1960
+dialrecall = 420
+; RECORDTONE - not specified
+record = 1400/80,0/14920
+info = 950/330,1450/330,1850/330,0/1000
+stutter = 380+420
+
+[au]
+description = Australia
+; Reference http://www.acif.org.au/__data/page/3303/S002_2001.pdf
+; Normal Ring
+ringcadence = 400,200,400,2000
+; Distinctive Ring 1 - Forwarded Calls
+; 400,400,200,200,400,1400
+; Distinctive Ring 2 - Selective Ring 2 + Operator + Recall
+; 400,400,200,2000
+; Distinctive Ring 3 - Multiple Subscriber Number 1
+; 200,200,400,2200
+; Distinctive Ring 4 - Selective Ring 1 + Centrex
+; 400,2600
+; Distinctive Ring 5 - Selective Ring 3
+; 400,400,200,400,200,1400
+; Distinctive Ring 6 - Multiple Subscriber Number 2
+; 200,400,200,200,400,1600
+; Distinctive Ring 7 - Multiple Subscriber Number 3 + Data Privacy
+; 200,400,200,400,200,1600
+; Tones
+dial = 413+438
+busy = 425/375,0/375
+ring = 413+438/400,0/200,413+438/400,0/2000
+; XXX Congestion: Should reduce by 10 db every other cadence XXX
+congestion = 425/375,0/375,420/375,0/375
+callwaiting = 425/200,0/200,425/200,0/4400
+dialrecall = 413+438
+; Record tone used for Call Intrusion/Recording or Conference
+record = !425/1000,!0/15000,425/360,0/15000
+info = 425/2500,0/500
+; Other Australian Tones
+; The STD "pips" indicate the call is not an untimed local call
+std = !525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100
+; Facility confirmation tone (eg. Call Forward Activated)
+facility = 425
+; Message Waiting "stutter" dialtone
+stutter = 413+438/100,0/40
+; Ringtone for calls to Telstra mobiles
+ringmobile = 400+450/400,0/200,400+450/400,0/2000
+
+[bg]
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+description = Bulgaria
+ringcadence = 1000,4000
+;
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/250,0/250
+callwaiting = 425/150,0/150,425/150,0/4000
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+record = 1400/425,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = 425/1500,0/100
+
+[br]
+description = Brazil
+ringcadence = 1000,4000
+dial = 425
+busy = 425/250,0/250
+ring = 425/1000,0/4000
+congestion = 425/250,0/250,425/750,0/250
+callwaiting = 425/50,0/1000
+; Dialrecall not used in Brazil standard (using UK standard)
+dialrecall = 350+440
+; Record tone is not used in Brazil, use busy tone
+record = 425/250,0/250
+; Info not used in Brazil standard (using UK standard)
+info = 950/330,1400/330,1800/330
+stutter = 350+440
+
+[be]
+description = Belgium
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,3000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/3000
+congestion = 425/167,0/167
+callwaiting = 1400/175,0/175,1400/175,0/3500
+; DIALRECALL - not specified
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440"
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+info = 900/330,1400/330,1800/330,0/1000
+stutter = 425/1000,0/250
+
+[ch]
+description = Switzerland
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/200,0/200,425/200,0/4000
+; DIALRECALL - not specified
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+; RECORDTONE - not specified
+record = 1400/80,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = 425+340/1100,0/1100
+
+[cl]
+description = Chile
+; According to specs from Telefonica CTC Chile
+ringcadence = 1000,3000
+dial = 400
+busy = 400/500,0/500
+ring = 400/1000,0/3000
+congestion = 400/200,0/200
+callwaiting = 400/250,0/8750
+dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
+record = 1400/500,0/15000
+info = 950/333,1400/333,1800/333,0/1000
+stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
+
+[cn]
+description = China
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 450
+busy = 450/350,0/350
+ring = 450/1000,0/4000
+congestion = 450/700,0/700
+callwaiting = 450/400,0/4000
+dialrecall = 450
+record = 950/400,0/10000
+info = 450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400
+; STUTTER - not specified
+stutter = 450+425
+
+[cz]
+description = Czech Republic
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425/330,0/330,425/660,0/660
+busy = 425/330,0/330
+ring = 425/1000,0/4000
+congestion = 425/165,0/165
+callwaiting = 425/330,0/9000
+; DIALRECALL - not specified
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425/330,0/330,425/660,0/660
+; RECORDTONE - not specified
+record = 1400/500,0/14000
+info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
+; STUTTER - not specified
+stutter = 425/450,0/50
+
+[de]
+description = Germany
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425
+busy = 425/480,0/480
+ring = 425/1000,0/4000
+congestion = 425/240,0/240
+callwaiting = !425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,0
+; DIALRECALL - not specified
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+; RECORDTONE - not specified
+record = 1400/80,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = 425+400
+
+[dk]
+description = Denmark
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = !425/200,!0/600,!425/200,!0/3000,!425/200,!0/200,!425/200,0
+; DIALRECALL - not specified
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+; RECORDTONE - not specified
+record = 1400/80,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+; STUTTER - not specified
+stutter = 425/450,0/50
+
+[ee]
+description = Estonia
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425
+busy = 425/300,0/300
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+; CALLWAIT not in accordance to ITU
+callwaiting = 950/650,0/325,950/325,0/30,1400/1300,0/2600
+; DIALRECALL - not specified
+dialrecall = 425/650,0/25
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+; INFO not in accordance to ITU
+info = 950/650,0/325,950/325,0/30,1400/1300,0/2600
+; STUTTER not specified
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[es]
+description = Spain
+ringcadence = 1500,3000
+dial = 425
+busy = 425/200,0/200
+ring = 425/1500,0/3000
+congestion = 425/200,0/200,425/200,0/200,425/200,0/600
+callwaiting = 425/175,0/175,425/175,0/3500
+dialrecall = !425/200,!0/200,!425/200,!0/200,!425/200,!0/200,425
+record = 1400/500,0/15000
+info = 950/330,0/1000
+dialout = 500
+
+
+[fi]
+description = Finland
+ringcadence = 1000,4000
+dial = 425
+busy = 425/300,0/300
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/150,0/150,425/150,0/8000
+dialrecall = 425/650,0/25
+record = 1400/500,0/15000
+info = 950/650,0/325,950/325,0/30,1400/1300,0/2600
+stutter = 425/650,0/25
+
+[fr]
+description = France
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1500,3500
+; Dialtone can also be 440+330
+dial = 440
+busy = 440/500,0/500
+ring = 440/1500,0/3500
+; CONGESTION - not specified
+congestion = 440/250,0/250
+callwait = 440/300,0/10000
+; DIALRECALL - not specified
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330
+stutter = !440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,440
+
+[gr]
+description = Greece
+ringcadence = 1000,4000
+dial = 425/200,0/300,425/700,0/800
+busy = 425/300,0/300
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/150,0/150,425/150,0/8000
+dialrecall = 425/650,0/25
+record = 1400/400,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+stutter = 425/650,0/25
+
+[hu]
+description = Hungary
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1250,3750
+dial = 425
+busy = 425/300,0/300
+ring = 425/1250,0/3750
+congestion = 425/300,0/300
+callwaiting = 425/40,0/1960
+dialrecall = 425+450
+; RECORDTONE - not specified
+record = 1400/400,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+stutter = 350+375+400
+
+[il]
+description = Israel
+ringcadence = 1000,3000
+dial = 414
+busy = 414/500,0/500
+ring = 414/1000,0/3000
+congestion = 414/250,0/250
+callwaiting = 414/100,0/100,414/100,0/100,414/600,0/3000
+dialrecall = !414/100,!0/100,!414/100,!0/100,!414/100,!0/100,414
+record = 1400/500,0/15000
+info = 1000/330,1400/330,1800/330,0/1000
+stutter = !414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,414
+
+
+[in]
+description = India
+ringcadence = 400,200,400,2000
+dial = 400*25
+busy = 400/750,0/750
+ring = 400*25/400,0/200,400*25/400,0/2000
+congestion = 400/250,0/250
+callwaiting = 400/200,0/100,400/200,0/7500
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0/1000
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+[it]
+description = Italy
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+dial = 425/200,0/200,425/600,0/1000
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/400,0/100,425/250,0/100,425/150,0/14000
+dialrecall = 470/400,425/400
+record = 1400/400,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+stutter = 470/400,425/400
+
+[lt]
+description = Lithuania
+ringcadence = 1000,4000
+dial = 425
+busy = 425/350,0/350
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/150,0/150,425/150,0/4000
+; DIALRECALL - not specified
+dialrecall = 425/500,0/50
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+; STUTTER - not specified
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[jp]
+description = Japan
+ringcadence = 1000,2000
+dial = 400
+busy = 400/500,0/500
+ring = 400+15/1000,0/2000
+congestion = 400/500,0/500
+callwaiting = 400+16/500,0/8000
+dialrecall = !400/200,!0/200,!400/200,!0/200,!400/200,!0/200,400
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0
+stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
+
+[mx]
+description = Mexico
+ringcadence = 2000,4000
+dial = 425
+busy = 425/250,0/250
+ring = 425/1000,0/4000
+congestion = 425/250,0/250
+callwaiting = 425/200,0/600,425/200,0/10000
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+record = 1400/500,0/15000
+info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+[my]
+description = Malaysia
+ringcadence = 2000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/400,0/200
+congestion = 425/500,0/500
+
+[nl]
+description = Netherlands
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+ringcadence = 1000,4000
+; Most of these 425's can also be 450's
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/250,0/250
+callwaiting = 425/500,0/9500
+; DIALRECALL - not specified
+dialrecall = 425/500,0/50
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = 425/500,0/50
+
+[no]
+description = Norway
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/200,0/200
+callwaiting = 425/200,0/600,425/200,0/10000
+dialrecall = 470/400,425/400
+record = 1400/400,0/15000
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
+stutter = 470/400,425/400
+
+[nz]
+description = New Zealand
+;NOTE - the ITU has different tonesets for NZ, but according to some residents there,
+; this is, indeed, the correct way to do it.
+ringcadence = 400,200,400,2000
+dial = 400
+busy = 400/250,0/250
+ring = 400+450/400,0/200,400+450/400,0/2000
+congestion = 400/375,0/375
+callwaiting = !400/200,!0/3000,!400/200,!0/3000,!400/200,!0/3000,!400/200
+dialrecall = !400/100!0/100,!400/100,!0/100,!400/100,!0/100,400
+record = 1400/425,0/15000
+info = 400/750,0/100,400/750,0/100,400/750,0/100,400/750,0/400
+stutter = !400/100!0/100,!400/100,!0/100,!400/100,!0/100,!400/100!0/100,!400/100,!0/100,!400/100,!0/100,400
+unobtainable = 400/75,0/100,400/75,0/100,400/75,0/100,400/75,0/400
+
+[ph]
+
+; reference http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+
+description = Philippines
+ringcadence = 1000,4000
+dial = 425
+busy = 480+620/500,0/500
+ring = 425+480/1000,0/4000
+congestion = 480+620/250,0/250
+callwaiting = 440/300,0/10000
+; DIALRECALL - not specified
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+; INFO - not specified
+info = !950/330,!1400/330,!1800/330,0
+; STUTTER - not specified
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+
+[pl]
+description = Poland
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/500,0/500
+callwaiting = 425/150,0/150,425/150,0/4000
+; DIALRECALL - not specified
+dialrecall = 425/500,0/50
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+; 950/1400/1800 3x0.33 on 1.0 off repeated 3 times
+info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000
+; STUTTER - not specified
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[pt]
+description = Portugal
+ringcadence = 1000,5000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/5000
+congestion = 425/200,0/200
+callwaiting = 440/300,0/10000
+dialrecall = 425/1000,0/200
+record = 1400/500,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[ru]
+; References:
+; http://www.minsvyaz.ru/site.shtml?id=1806
+; http://www.aboutphone.info/lib/gost/45-223-2001.html
+description = Russian Federation / ex Soviet Union
+ringcadence = 1000,4000
+dial = 425
+busy = 425/350,0/350
+ring = 425/1000,0/4000
+congestion = 425/175,0/175
+callwaiting = 425/200,0/5000
+record = 1400/400,0/15000
+info = 950/330,1400/330,1800/330,0/1000
+dialrecall = 425/400,0/40
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+
+[se]
+description = Sweden
+ringcadence = 1000,5000
+dial = 425
+busy = 425/250,0/250
+ring = 425/1000,0/5000
+congestion = 425/250,0/750
+callwaiting = 425/200,0/500,425/200,0/9100
+dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+record = 1400/500,0/15000
+info = !950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,0
+stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
+; stutter = 425/320,0/20 ; Real swedish standard, not used for now
+
+[sg]
+description = Singapore
+; Singapore
+; Reference: http://www.ida.gov.sg/idaweb/doc/download/I397/ida_ts_pstn1_i4r2.pdf
+; Frequency specs are: 425 Hz +/- 20Hz; 24 Hz +/- 2Hz; modulation depth 100%; SIT +/- 50Hz
+ringcadence = 400,200,400,2000
+dial = 425
+ring = 425*24/400,0/200,425*24/400,0/2000 ; modulation should be 100%, not 90%
+busy = 425/750,0/750
+congestion = 425/250,0/250
+callwaiting = 425*24/300,0/200,425*24/300,0/3200
+stutter = !425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,425
+info = 950/330,1400/330,1800/330,0/1000 ; not currently in use acc. to reference
+dialrecall = 425*24/500,0/500,425/500,0/2500 ; unspecified in IDA reference, use repeating Holding Tone A,B
+record = 1400/500,0/15000 ; unspecified in IDA reference, use 0.5s tone every 15s
+; additionally defined in reference
+nutone = 425/2500,0/500
+intrusion = 425/250,0/2000
+warning = 425/624,0/4376 ; end of period tone, warning
+acceptance = 425/125,0/125
+holdinga = !425*24/500,!0/500 ; followed by holdingb
+holdingb = !425/500,!0/2500
+
+[th]
+description = Thailand
+ringcadence = 1000,4000
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+dial = 400*50
+busy = 400/500,0/500
+ring = 420/1000,0/5000
+congestion = 400/300,0/300
+callwaiting = 1000/400,10000/400,1000/400
+; DIALRECALL - not specified - use special dial tone instead.
+dialrecall = 400*50/400,0/100,400*50/400,0/100
+; RECORDTONE - not specified
+record = 1400/500,0/15000
+; INFO - specified as an announcement - use special information tones instead
+info = 950/330,1400/330,1800/330
+; STUTTER - not specified
+stutter = !400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,400
+
+[uk]
+description = United Kingdom
+ringcadence = 400,200,400,2000
+; These are the official tones taken from BT SIN350. The actual tones
+; used by BT include some volume differences so sound slightly different
+; from Asterisk-generated ones.
+dial = 350+440
+; Special dial is the intermittent dial tone heard when, for example,
+; you have a divert active on the line
+specialdial = 350+440/750,440/750
+; Busy is also called "Engaged"
+busy = 400/375,0/375
+; "Congestion" is the Beep-bip engaged tone
+congestion = 400/400,0/350,400/225,0/525
+; "Special Congestion" is not used by BT very often if at all
+specialcongestion = 400/200,1004/300
+unobtainable = 400
+ring = 400+450/400,0/200,400+450/400,0/2000
+callwaiting = 400/100,0/4000
+; BT seem to use "Special Call Waiting" rather than just "Call Waiting" tones
+specialcallwaiting = 400/250,0/250,400/250,0/250,400/250,0/5000
+; "Pips" used by BT on payphones. (Sounds wrong, but this is what BT claim it
+; is and I've not used a payphone for years)
+creditexpired = 400/125,0/125
+; These two are used to confirm/reject service requests on exchanges that
+; don't do voice announcements.
+confirm = 1400
+switching = 400/200,0/400,400/2000,0/400
+; This is the three rising tones Doo-dah-dee "Special Information Tone",
+; usually followed by the BT woman saying an appropriate message.
+info = 950/330,0/15,1400/330,0/15,1800/330,0/1000
+; Not listed in SIN350
+record = 1400/500,0/60000
+stutter = 350+440/750,440/750
+
+[us]
+description = United States / North America
+ringcadence = 2000,4000
+dial = 350+440
+busy = 480+620/500,0/500
+ring = 440+480/2000,0/4000
+congestion = 480+620/250,0/250
+callwaiting = 440/300,0/10000
+dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+[us-old]
+description = United States Circa 1950/ North America
+ringcadence = 2000,4000
+dial = 600*120
+busy = 500*100/500,0/500
+ring = 420*40/2000,0/4000
+congestion = 500*100/250,0/250
+callwaiting = 440/300,0/10000
+dialrecall = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0
+stutter = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120
+
+[tw]
+description = Taiwan
+; http://nemesis.lonestar.org/reference/telecom/signaling/dialtone.html
+; http://nemesis.lonestar.org/reference/telecom/signaling/busy.html
+; http://www.iproducts.com.tw/ee/kylink/06ky-1000a.htm
+; http://www.pbx-manufacturer.com/ky120dx.htm
+; http://www.nettwerked.net/tones.txt
+; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/taiw_sup/taiw2.htm
+;
+; busy tone 480+620Hz 0.5 sec. on ,0.5 sec. off
+; reorder tone 480+620Hz 0.25 sec. on,0.25 sec. off
+; ringing tone 440+480Hz 1 sec. on ,2 sec. off
+;
+ringcadence = 1000,4000
+dial = 350+440
+busy = 480+620/500,0/500
+ring = 440+480/1000,0/2000
+congestion = 480+620/250,0/250
+callwaiting = 350+440/250,0/250,350+440/250,0/3250
+dialrecall = 300/1500,0/500
+record = 1400/500,0/15000
+info = !950/330,!1400/330,!1800/330,0
+stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
+
+[ve]
+; Tone definition source for ve found on
+; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+description = Venezuela / South America
+ringcadence = 1000,4000
+dial = 425
+busy = 425/500,0/500
+ring = 425/1000,0/4000
+congestion = 425/250,0/250
+callwaiting = 400+450/300,0/6000
+dialrecall = 425
+record = 1400/500,0/15000
+info = !950/330,!1440/330,!1800/330,0/1000
+
+
+[za]
+description = South Africa
+; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/safr_sup/saf02.htm
+; (definitions for other countries can also be found there)
+; Note, though, that South Africa uses two switch types in their network --
+; Alcatel switches -- mainly in the Western Cape, and Siemens elsewhere.
+; The former use 383+417 in dial, ringback etc. The latter use 400*33
+; I've provided both, uncomment the ones you prefer
+ringcadence = 400,200,400,2000
+; dial/ring/callwaiting for the Siemens switches:
+dial = 400*33
+ring = 400*33/400,0/200,400*33/400,0/2000
+callwaiting = 400*33/250,0/250,400*33/250,0/250,400*33/250,0/250,400*33/250,0/250
+; dial/ring/callwaiting for the Alcatel switches:
+; dial = 383+417
+; ring = 383+417/400,0/200,383+417/400,0/2000
+; callwaiting = 383+417/250,0/250,383+417/250,0/250,383+417/250,0/250,383+417/250,0/250
+congestion = 400/250,0/250
+busy = 400/500,0/500
+dialrecall = 350+440
+; XXX Not sure about the RECORDTONE
+record = 1400/500,0/10000
+info = 950/330,1400/330,1800/330,0/330
+stutter = !400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,400*33
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/jabber.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/jabber.conf.TEMPLATE
new file mode 100644
index 0000000000..cf71e1f8f4
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/jabber.conf.TEMPLATE
@@ -0,0 +1,4 @@
+[general]
+autoregister=yes
+
+#include jabber_users.conf
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/jabber_users.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/jabber_users.conf.TEMPLATE
new file mode 100644
index 0000000000..3ee2463ed2
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/jabber_users.conf.TEMPLATE
@@ -0,0 +1,8 @@
+[gtalk-|NAME|]
+type=client
+serverhost=talk.google.com
+username=|USERNAME|/Talk
+secret=|SECRET|
+timeout=150
+status=|STATUS|
+statusmessage=|STATUSMESSAGE|
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/logger.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/logger.conf.TEMPLATE
new file mode 100644
index 0000000000..e57325013a
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/logger.conf.TEMPLATE
@@ -0,0 +1,7 @@
+[general]
+queue_log = no
+event_log = no
+
+[logfiles]
+console => notice,warning,error
+messages => error
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/manager.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/manager.conf.TEMPLATE
new file mode 100644
index 0000000000..2ac2f0033f
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/manager.conf.TEMPLATE
@@ -0,0 +1,7 @@
+[general]
+enabled = no
+
+port = 5038
+bindaddr = 0.0.0.0
+
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/modules.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/modules.conf.TEMPLATE
new file mode 100644
index 0000000000..93c74336d1
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/modules.conf.TEMPLATE
@@ -0,0 +1,34 @@
+[modules]
+autoload=no
+load => res_jabber.so ; Used for Gtalk
+load => res_clioriginate.so ; originate calls from commandline
+load => res_rtp_asterisk.so ; rtp "engine" is now a loadable module in asterisk 1.8
+load => pbx_config.so ; Text Extension Configuration Requires N/A
+load => func_callerid.so ; Gets or sets Caller*ID data on the channel. - Requires ?
+load => func_channel.so
+load => func_logic.so ; Logic functions (if, etc.)
+load => func_strings.so ; string manipulation functions
+load => cdr_manager.so ; Asterisk Call Manager CDR Backend - Requires N/A
+load => chan_local.so ; Show status of local channels- Requires N/A
+load => chan_gtalk.so ; Use gtalk
+load => chan_sip.so ; Session Initiation Protocol (SIP) - Requires res_features.so
+load => codec_alaw.so ; A-law Coder/Decoder - Requires N/A
+load => codec_a_mu.so ; A-law and Mulaw direct Coder/Decoder - Requires N/A
+load => codec_gsm.so ; GSM/PCM16 (signed linear) Codec Translat - Requires N/A
+load => codec_ulaw.so ; Mu-law Coder/Decoder - Requires N/A
+load => format_gsm.so ; Raw GSM data - Requires N/A
+load => format_pcm.so ; Raw uLaw 8khz Audio support (PCM) - Requires N/A
+load => format_wav_gsm.so
+load => app_dial.so ; Dialing Application - Requires res_features.so, res_musiconhold.so
+load => app_parkandannounce.so ; Call Parking and Announce Application - Requires res_features.so
+load => app_playback.so ; Sound File Playback Application - Requires N/A
+load => app_record.so ; Sound File Record Application - Requires N/A
+load => app_system.so ; Execute a system command - Requires N/A
+load => app_disa.so ; Direct Inward System Access
+load => app_authenticate.so ; Authenticate via pin
+load => app_senddtmf.so ; Ability to send DTMF tones on the line.
+load => func_cut.so ; To manipulate strings
+load => func_timeout.so ; Used for DISA timeouts
+
+[global]
+chan_modem.so=no
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/rtp.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/rtp.conf.TEMPLATE
new file mode 100644
index 0000000000..10d577d3a2
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/rtp.conf.TEMPLATE
@@ -0,0 +1,6 @@
+[general]
+rtpstart=|RTPSTART|
+rtpend=|RTPEND|
+rtpchecksums=no
+dtmftimeout=3000
+rtcpinterval = 2000
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sip.conf.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/sip.conf.TEMPLATE
new file mode 100644
index 0000000000..8f3b112ff6
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sip.conf.TEMPLATE
@@ -0,0 +1,39 @@
+[general]
+transport=udp
+context=default-incoming-call-context
+allowoverlap=yes
+allowtransfer=yes
+realm=asterisk
+bindaddr=0.0.0.0
+srvlookup=yes
+maxexpiry=600
+minexpiry=60
+defaultexpiry=300
+qualifyfreq=55
+disallow=all
+allow=ulaw
+allow=alaw
+dtmfmode = inband
+alwaysauthreject = yes
+t1min=100
+timert1=500
+timerb=16000
+rtptimeout=600
+rtpkeepalive=30
+useragent=|USERAGENT|
+localnet=192.168.0.0/16
+localnet=10.0.0.0/8
+localnet=172.16.0.0/12
+nat=yes
+directmedia=no
+sipdebug=no
+bindport=|BINDPORT|
+externhost=|EXTERNHOST|
+externrefresh=60
+
+#include sip_registrations.conf
+
+[authentication]
+
+#include sip_peers.conf
+#include sip_users.conf
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sip_peer.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/sip_peer.TEMPLATE
new file mode 100644
index 0000000000..30abaadd58
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sip_peer.TEMPLATE
@@ -0,0 +1,13 @@
+
+[peer-|NAME|]
+type = peer
+defaultuser = |DEFAULTUSER|
+fromuser = |FROMUSER|
+secret = |SECRET|
+host = |HOST|
+fromdomain = |FROMDOMAIN|
+context = context-incoming-|NAME|
+insecure = port,invite
+qualify = 2000
+|PORT|
+|OUTBOUNDPROXY|
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sip_registration.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/sip_registration.TEMPLATE
new file mode 100644
index 0000000000..e139d43f03
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sip_registration.TEMPLATE
@@ -0,0 +1,2 @@
+register => |DEFAULTUSER|:|SECRET|@peer-|NAME|
+
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sip_user.TEMPLATE b/applications/luci-app-pbx/root/etc/pbx-asterisk/sip_user.TEMPLATE
new file mode 100644
index 0000000000..61a8b0b86b
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sip_user.TEMPLATE
@@ -0,0 +1,11 @@
+
+[|DEFAULTUSER|]
+fullname = |FULLNAME|
+defaultuser = |DEFAULTUSER|
+secret = |SECRET|
+hassip = yes
+hasvoicemail = no
+host = dynamic
+type = friend
+context = context-user-|CONTEXTNAME|
+qualify = no \ No newline at end of file
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-alreadyon.gsm b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-alreadyon.gsm
new file mode 100644
index 0000000000..83fe27ecfa
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-alreadyon.gsm
Binary files differ
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-incorrect.gsm b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-incorrect.gsm
new file mode 100644
index 0000000000..27d934beb0
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-incorrect.gsm
Binary files differ
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-pass.gsm b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-pass.gsm
new file mode 100644
index 0000000000..f95637bb32
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/agent-pass.gsm
Binary files differ
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/auth-incorrect.gsm b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/auth-incorrect.gsm
new file mode 100644
index 0000000000..12fec25d56
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/auth-incorrect.gsm
Binary files differ
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/auth-thankyou.gsm b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/auth-thankyou.gsm
new file mode 100644
index 0000000000..93f936d1a0
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/auth-thankyou.gsm
Binary files differ
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/beep.gsm b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/beep.gsm
new file mode 100644
index 0000000000..d38eda9cc5
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/beep.gsm
Binary files differ
diff --git a/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/vm-goodbye.gsm b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/vm-goodbye.gsm
new file mode 100644
index 0000000000..735b281c8e
--- /dev/null
+++ b/applications/luci-app-pbx/root/etc/pbx-asterisk/sounds/vm-goodbye.gsm
Binary files differ