summaryrefslogtreecommitdiffhomepage
path: root/applications
diff options
context:
space:
mode:
Diffstat (limited to 'applications')
-rw-r--r--applications/luci-ltqtapi/Makefile4
-rw-r--r--applications/luci-ltqtapi/luasrc/controller/ltqtapi.lua51
-rw-r--r--applications/luci-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua26
-rw-r--r--applications/luci-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua30
-rw-r--r--applications/luci-ltqtapi/luasrc/view/admin_status/index/telephony.htm1
-rw-r--r--applications/luci-ltqtapi/luasrc/view/telephony_status.htm32
6 files changed, 144 insertions, 0 deletions
diff --git a/applications/luci-ltqtapi/Makefile b/applications/luci-ltqtapi/Makefile
new file mode 100644
index 000000000..77925c4e3
--- /dev/null
+++ b/applications/luci-ltqtapi/Makefile
@@ -0,0 +1,4 @@
+PO = telephony
+
+include ../../build/config.mk
+include ../../build/module.mk
diff --git a/applications/luci-ltqtapi/luasrc/controller/ltqtapi.lua b/applications/luci-ltqtapi/luasrc/controller/ltqtapi.lua
new file mode 100644
index 000000000..81baf397d
--- /dev/null
+++ b/applications/luci-ltqtapi/luasrc/controller/ltqtapi.lua
@@ -0,0 +1,51 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2019 John Crispin <blogic@openwrt.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+]]--
+
+module("luci.controller.ltqtapi", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/telephony") then
+ return
+ end
+
+ page = node("admin", "telephony")
+ page.target = firstchild()
+ page.title = _("VoIP")
+ page.order = 90
+ page.i18n = "telephony"
+
+ entry({"admin", "telephony", "account"}, cbi("luci_ltqtapi/account") , _("Account"), 10)
+ entry({"admin", "telephony", "contact"}, cbi("luci_ltqtapi/contact") , _("Contacts"), 20)
+
+ entry({"admin", "telephony", "status"}, call("tapi_status")).leaf = true
+end
+
+function tapi_status()
+ local st = { }
+ local state = require "luci.model.uci".cursor_state()
+ state:load("telephony")
+
+ st.status = "Offline";
+ if state:get("telephony", "state", "port1", "0") == "0" then
+ st.line1 = "Idle";
+ else
+ st.line1 = "Calling";
+ end
+ if state:get("telephony", "state", "port2", "0") == "0" then
+ st.line2 = "Idle";
+ else
+ st.line2 = "Calling";
+ end
+ luci.http.prepare_content("application/json")
+ luci.http.write_json(st)
+end
diff --git a/applications/luci-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua b/applications/luci-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua
new file mode 100644
index 000000000..40e00f346
--- /dev/null
+++ b/applications/luci-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua
@@ -0,0 +1,26 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2010 John Crispin <blogic@openwrt.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+]]--
+
+m = Map("telephony", translate("VoIP"))
+m.on_after_commit = function() luci.sys.call("/etc/init.d/telephony restart") end
+
+s = m:section(TypedSection, "account", translate("Account"), translate("Here You can specify the SIP account that you want to use."))
+s.anonymous = true
+s.addremove = true
+
+s:option(Value, "realm", translate("Realm"))
+s:option(Value, "username", translate("Username"))
+s:option(Value, "password", translate("Password"))
+s:option(Flag, "disabled", translate("Disabled"))
+
+return m
diff --git a/applications/luci-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua b/applications/luci-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua
new file mode 100644
index 000000000..08311b515
--- /dev/null
+++ b/applications/luci-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua
@@ -0,0 +1,30 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2010 John Crispin <blogic@openwrt.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+]]--
+
+m = Map("telephony", translate("VoIP"))
+m.on_after_commit = function() luci.sys.call("/etc/init.d/telephony reload") end
+
+s = m:section(TypedSection, "contact", translate("Contact"), translate("Here You can specify the SIP contacts that you want to use."))
+s.anonymous = true
+s.addremove = true
+s.template = "cbi/tsection"
+
+s:option(Value, "desc", translate("Name"))
+s:option(Value, "code", translate("Shortdial"))
+s:option(Value, "dial", translate("Dial"))
+
+t = s:option(ListValue, "type", translate("Type"))
+t:value("sip", "SIP")
+t:value("realm", "Landline")
+
+return m
diff --git a/applications/luci-ltqtapi/luasrc/view/admin_status/index/telephony.htm b/applications/luci-ltqtapi/luasrc/view/admin_status/index/telephony.htm
new file mode 100644
index 000000000..c7a58dd3e
--- /dev/null
+++ b/applications/luci-ltqtapi/luasrc/view/admin_status/index/telephony.htm
@@ -0,0 +1 @@
+<%+telephony_status%>
diff --git a/applications/luci-ltqtapi/luasrc/view/telephony_status.htm b/applications/luci-ltqtapi/luasrc/view/telephony_status.htm
new file mode 100644
index 000000000..234f90934
--- /dev/null
+++ b/applications/luci-ltqtapi/luasrc/view/telephony_status.htm
@@ -0,0 +1,32 @@
+<script type="text/javascript">//<![CDATA[
+XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "telephony", "status")%>', null,
+ function(x, st)
+ {
+ var tb = document.getElementById('telephony_status_table');
+ if (st && tb)
+ {
+ tb.deleteRow(1);
+ var tr = tb.insertRow(-1);
+ tr.className = 'cbi-section-table-row cbi-rowstyle-1';
+
+ tr.insertCell(-1).innerHTML = st.status;
+ tr.insertCell(-1).innerHTML = st.line1;
+ tr.insertCell(-1).innerHTML = st.line2;
+ }
+ }
+);
+//]]></script>
+
+<fieldset class="cbi-section">
+ <legend><%:Current Telephony State%></legend>
+ <table class="cbi-section-table" id="telephony_status_table">
+ <tr class="cbi-section-table-titles">
+ <th class="cbi-section-table-cell"><%:Uplink%></th>
+ <th class="cbi-section-table-cell"><%:Port1%></th>
+ <th class="cbi-section-table-cell"><%:Port2%></th>
+ </tr>
+ <tr class="cbi-section-table-row">
+ <td colspan="5"><em><br /><%:Collecting data...%></em></td>
+ </tr>
+ </table>
+</fieldset>