You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
548 lines
18 KiB
548 lines
18 KiB
-- Plugin to configure FritzCallMonitor.cfg
|
|
-- Copyright (C) 2014 NI-Team
|
|
|
|
function init()
|
|
caption="FritzCallMonitor Setup"
|
|
|
|
config="/var/tuxbox/config/FritzCallMonitor.cfg"
|
|
addressbook="/var/tuxbox/config/FritzCallMonitor.addr"
|
|
|
|
servicename="fritzcallmonitor"
|
|
flagfile=".fritzcallmonitor"
|
|
|
|
changed = 0
|
|
|
|
C={}
|
|
H={} -- hints
|
|
|
|
C["FRITZBOXIP"]="fritz.box"
|
|
H["FRITZBOXIP"]="Die IP-Adresse oder der Hostname deiner FRITZ!Box"
|
|
|
|
C["PORT"]=1012
|
|
H["PORT"]="Port 1012 der FRITZ!Box muss einmalig per Telefon aktiviert werden"
|
|
|
|
C["ADDRESSBOOK"]=addressbook
|
|
H["ADDRESSBOOK"]=""
|
|
|
|
C["EXEC"]=""
|
|
H["EXEC"]="Nach eingehendem Anruf, kann ein Script ausgeführt werden"
|
|
|
|
C["BACKWARDSEARCH"]=1
|
|
H["BACKWARDSEARCH"]="Rückwärtssuche über das Internet"
|
|
|
|
C["DEBUG"]=0
|
|
H["DEBUG"]="Startet den FCM zur Fehlersuche im Debugmodus"
|
|
|
|
C["MSGTYPE"]="nmsg"
|
|
H["MSGTYPE"]="Neutrino Nachrichtentyp Popup oder Message"
|
|
|
|
C["MSGTIMEOUT"]=""
|
|
H["MSGTIMEOUT"]="Maximale Anzeigedauer der Nachricht auf dem Bildschirm, bevor sie automatisch gelöscht wird. Keine Angabe = Neutrino default"
|
|
|
|
C["MSN_1"]=""
|
|
C["MSN_2"]=""
|
|
C["MSN_3"]=""
|
|
C["MSN_4"]=""
|
|
C["MSN_5"]=""
|
|
C["MSN_6"]=""
|
|
H["MSNMENU"]="MSN Rufnummern, die überwacht werden sollen. Wenn \"MSN_1\" frei bleibt, werden alle Rufnummern überwacht."
|
|
H["MSN"]="Ist hier eine Nummer eingetragen, reagiert der FCM bei einem eingehenden Anruf nur auf diese."
|
|
|
|
C["BOXIP_1"]="127.0.0.1"
|
|
C["BOXIP_2"]=""
|
|
C["BOXIP_3"]=""
|
|
C["BOXIP_4"]=""
|
|
H["BOXMENU"]="Einstellen der Adressen für die Neutrino-Boxen, auf denen ein eingehender Anruf angezeigt werden soll."
|
|
H["BOXIP"]="<BOXIP>:<Port> der Box, auf der die Nachricht angezeigt werden soll. Die Eingabe des Ports ist optional."
|
|
|
|
C["LOGON_1"]="root:coolstream"
|
|
C["LOGON_2"]=""
|
|
C["LOGON_3"]=""
|
|
C["LOGON_4"]=""
|
|
H["LOGON"]="<Name>:<Passwort> für das yWeb der entsprechenden Box, auf der die Nachricht angezeigt werden soll."
|
|
|
|
C["EASYMODE"]=0
|
|
H["EASYMODE"]="Einschalten wenn eine EasyBox statt einer Fritz!Box genutzt wird"
|
|
|
|
C["PASSWD"]=""
|
|
H["PASSWD"]="Das auf der Fritz!Box angegebene Passwort"
|
|
|
|
C["CITYPREFIX"]=""
|
|
H["CITYPREFIX"]="Bei Übernahme der FB Telefonbücher kann eine fehlende Vorwahl automatisch mit der hier eingetragenen Ortsvorwahl ergänzt werden."
|
|
|
|
C["DIALPREFIX"]=""
|
|
H["DIALPREFIX"]="Wenn die Wählhilfe verwendet wird (FIM), kann hier die Wählprefix verwendet werden (*111# stellt eine Verbindung ins Festnetz her)."
|
|
|
|
C["PORT_1"]="Fon 1, 1"
|
|
C["PORT_2"]="Fon 2, 2"
|
|
C["PORT_3"]="Fon 3, 3"
|
|
C["PORT_4"]="ISDN & DECT, 50"
|
|
C["PORT_5"]="ISDN 1, 51"
|
|
C["PORT_6"]="ISDN 2, 52"
|
|
C["PORT_7"]="DECT 1, 610"
|
|
C["PORT_8"]="DECT 2, 611"
|
|
H["DIALHELPER"]="Wählhilfe Ports, werden in der Auswahl des Menüs \"Wählhilfe\" (FIM) ausgegeben"
|
|
H["PORT"]="<Name>, <Nummer> des Gerätes in der FritzBox"
|
|
|
|
H["SEARCH_MODE_MENU"]="Wenn Nachrichten auf dem FRITZ-Anrufbeantworter vorliegen, kann mit einem NI-Image eine Info eingeblendet werden (NI-Infobar)"
|
|
C["SEARCH_MODE"]=0
|
|
H["SEARCH_MODE"]="Schaltet die Abfrage ein/aus"
|
|
|
|
C["SEARCH_QUERY"]="&var=tam:settings/TAM0/NumNewMessages"
|
|
H["SEARCH_QUERY"]="Querystring für die Abfrage des Anrufbeantworters. Liegen gespeicherte Nachrichten vor, wird das Flagfile gesetzt."
|
|
|
|
C["SEARCH_INT"]=300
|
|
H["SEARCH_INT"]="Intervall für die Suchabfrage (Query)"
|
|
|
|
C["AD_FLAGFILE"]="/var/etc/.call"
|
|
H["AD_FLAGFILE"]="Ist der Query erfolgreich, wird dieses Flagfile für die Anzeige in den NI-Infoicons gesetzt"
|
|
|
|
-- maybe todo --
|
|
C["CALLERLIST_STR"]="getpage=..%2Fhtml%2Fde%2FFRITZ%21Box_Anrufliste.csv"
|
|
C["CALLERLIST_FILE"]="/tmp/FRITZ!Box_Anrufliste.csv"
|
|
end -- init
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
function trim(s)
|
|
return (s:gsub("^%s*(.-)%s*$", "%1"))
|
|
end
|
|
|
|
function load()
|
|
local f = io.open(config, "r")
|
|
if f then
|
|
for line in f:lines() do
|
|
local key, val = line:match("^([^=#]+)=([^\n]*)")
|
|
if (key) then
|
|
if (val == nil) then
|
|
val=""
|
|
end
|
|
C[trim(key)]=trim(val)
|
|
end
|
|
end
|
|
f:close()
|
|
end
|
|
end
|
|
|
|
function check_for_restart()
|
|
local f = io.open("/var/etc/"..flagfile, "r")
|
|
if f == nil then
|
|
io.open("/etc/"..flagfile, "r")
|
|
end
|
|
|
|
if f ~= nil then
|
|
f:close()
|
|
os.execute("service "..servicename.." stop")
|
|
os.execute("sleep 1")
|
|
os.execute("service "..servicename.." start")
|
|
end
|
|
end
|
|
|
|
function save()
|
|
if (changed == 1) then
|
|
changed = 0
|
|
|
|
local h = hintbox.new{caption="Einstellungen werden gespeichert", text="Bitte warten ..."}
|
|
h:paint()
|
|
|
|
local f = io.open(config, "w")
|
|
if f then
|
|
f:write(
|
|
[[
|
|
# Der Port 1012 der FRITZBox muss einmalig per Telefon (analog!) aktiviert werden:
|
|
# Telefoncode zum öffnen des TCP-Ports: #96*5*
|
|
# Telefoncode zum schließen des TCP-Ports: #96*4*
|
|
# Diese Funktion wir ab der Firmware Version xx.03.99 von AVM unterstützt.
|
|
|
|
# IP von deiner Fritzbox und port
|
|
FRITZBOXIP=]].. C["FRITZBOXIP"] .. "\n" ..[[
|
|
PORT=]].. C["PORT"] .. "\n" ..[[
|
|
|
|
# Addressbuch File
|
|
ADDRESSBOOK=]].. C["ADDRESSBOOK"] .. "\n" ..[[
|
|
|
|
# Pfadangabe für den Aufruf eines Scripts.
|
|
# Nach eingehendem Anruf, kann ein Script ausgeführt werden,
|
|
# durch die z.B. die Lautstärke den Box herunter geregelt wird.
|
|
# Als Parameter wird der Inhalt der Nachricht, die auch über
|
|
# die Box ausgegeben wird, übergeben.
|
|
# Dieses Script muss natürlich vorhanden und ausführbar sein.
|
|
# Es wird per default kein Script mitgeliefert.
|
|
EXEC=]].. C["EXEC"] .. "\n" ..[[
|
|
|
|
# Rückwärtssuche über das Internet
|
|
BACKWARDSEARCH=]].. C["BACKWARDSEARCH"] .. "\n" ..[[
|
|
|
|
# Debug Ausgaben
|
|
DEBUG=]].. C["DEBUG"] .. "\n" ..[[
|
|
|
|
# Neutrino Nachrichtentyp Popup (popup) oder Message (nmsg)
|
|
MSGTYPE=]].. C["MSGTYPE"] .. "\n" ..[[
|
|
|
|
# Maximale Anzeigedauer der Nachricht auf dem Bildschirm, bevor sie automatisch gelöscht wird.
|
|
# Ist hier kein Wert eingetragen, wird der Neutrino default genommen (ab Revision 1782).
|
|
MSGTIMEOUT=]].. C["MSGTIMEOUT"] .. "\n" ..[[
|
|
|
|
# MSN Rufnummern, die überwacht werden sollen. Wenn "MSN_1" frei bleibt, werden alle Rufnummern überwacht.
|
|
# Optional kann auch der Name angegeben werden. Die Eingabe erfolgt dann <MSN>|<NAME>.
|
|
MSN_1=]].. C["MSN_1"] .. "\n" ..[[
|
|
MSN_2=]].. C["MSN_2"] .. "\n" ..[[
|
|
MSN_3=]].. C["MSN_3"] .. "\n" ..[[
|
|
MSN_4=]].. C["MSN_4"] .. "\n" ..[[
|
|
MSN_5=]].. C["MSN_5"] .. "\n" ..[[
|
|
MSN_6=]].. C["MSN_6"] .. "\n" ..[[
|
|
|
|
# IP Adresse der Box. Die erste Adresse sollte 127.0.0.1 sein (die Box auf dem der FritzCallMonitor läuft).
|
|
# Optional kann auch der Port angegeben werden. Die Eingabe erfolgt dann <BOXIP>:<Port>. Der Standardport ist 80
|
|
BOXIP_1=]].. C["BOXIP_1"] .. "\n" ..[[
|
|
BOXIP_2=]].. C["BOXIP_2"] .. "\n" ..[[
|
|
BOXIP_3=]].. C["BOXIP_3"] .. "\n" ..[[
|
|
BOXIP_4=]].. C["BOXIP_4"] .. "\n" ..[[
|
|
|
|
# Name und Passwort (Name:Passwort) für das yWeb der entsprechenden Box
|
|
LOGON_1=]].. C["LOGON_1"] .. "\n" ..[[
|
|
LOGON_2=]].. C["LOGON_2"] .. "\n" ..[[
|
|
LOGON_3=]].. C["LOGON_3"] .. "\n" ..[[
|
|
LOGON_4=]].. C["LOGON_4"] .. "\n" ..[[
|
|
|
|
# Wenn der CallMonitor in Verbindung mit einer Eeasybox eingesetzt wird "1" sonst immer "0"
|
|
EASYMODE=]].. C["EASYMODE"] .. "\n" ..[[
|
|
|
|
# Passwort für die !FritzBox (Achtung - nur neues Loginverfahren mit SID)
|
|
PASSWD=]].. C["PASSWD"] .. "\n" ..[[
|
|
|
|
# Bei der Übernahme der !FritzBox-Telefonbücher mit den FritzInfolMonitor (FIM),
|
|
# kann eine fehlende Vorwahl automatisch mit der hier eingetragenen Ortsvorwahl ergänzt werden.
|
|
CITYPREFIX=]].. C["CITYPREFIX"] .. "\n" ..[[
|
|
|
|
# Wenn die Wählhilfe verwendet wird (FIM), kann hier die Wählprefix verwendet werden.
|
|
# Das Beispiel DIALPREFIX=*111# stellt eine Verbindung ins Festnetz her.
|
|
DIALPREFIX=]].. C["DIALPREFIX"] .. "\n" ..[[
|
|
|
|
# Wählhilfe Ports, werden in der Auswahl des Menüs "Wählhilfe" (FIM) ausgegeben
|
|
# Name Port Intern
|
|
# ------------------------------
|
|
# "Fon 1", 1, "**1"
|
|
# "Fon 2", 2, "**2"
|
|
# "Fon 3", 3, "**3"
|
|
# "ISDN & DECT", 50, "**50"
|
|
# "ISDN 1", 51, "**51"
|
|
# "ISDN 2", 52, "**52"
|
|
# "ISDN 3", 53, "**53"
|
|
# "ISDN 4", 54, "**54"
|
|
# "ISDN 5", 55, "**55"
|
|
# "DECT 1", 610, "**610"
|
|
# "DECT 2", 611, "**611"
|
|
# "DECT 3", 612, "**612"
|
|
# "DECT 4", 613, "**613"
|
|
# "DECT 5", 614, "**614"
|
|
# "SIP 1", 620, "**620"
|
|
# "SIP 2", 621, "**621"
|
|
# "SIP 3", 622, "**622"
|
|
# "SIP 4", 623, "**623"
|
|
# "SIP 5", 624, "**624"
|
|
#
|
|
# Maximal sind 8 Einträge möglich.
|
|
# Dabei ist folgender Syntax einzuhalten:
|
|
# PORT_x=Name,Port
|
|
PORT_1=]].. C["PORT_1"] .. "\n" ..[[
|
|
PORT_2=]].. C["PORT_2"] .. "\n" ..[[
|
|
PORT_3=]].. C["PORT_3"] .. "\n" ..[[
|
|
PORT_4=]].. C["PORT_4"] .. "\n" ..[[
|
|
PORT_5=]].. C["PORT_5"] .. "\n" ..[[
|
|
PORT_6=]].. C["PORT_6"] .. "\n" ..[[
|
|
PORT_7=]].. C["PORT_7"] .. "\n" ..[[
|
|
PORT_8=]].. C["PORT_8"] .. "\n" ..[[
|
|
|
|
# Strings zum senden an die !FritzBox, Die Quelle hierfür ist:
|
|
# http://www.wehavemorefun.de/fritzbox/index.php/Anrufliste_von_der_Box_holen
|
|
|
|
# Anrufliste (CSV) herunterladen
|
|
CALLERLIST_STR=]].. C["CALLERLIST_STR"] .. "\n" ..[[
|
|
|
|
# Speicherort für die Anrufliste auf der Coolstream
|
|
CALLERLIST_FILE=]].. C["CALLERLIST_FILE"] .. "\n" ..[[
|
|
|
|
# 0 = AUS [default]
|
|
# 1 = An die FRITZ!Box wird eine Query-Abfrage gesendet
|
|
SEARCH_MODE=]].. C["SEARCH_MODE"] .. "\n" ..[[
|
|
|
|
# Querystring für die Abfrage der FRITZ!Box.
|
|
# Die Abfrage, ob neue Nachrichten vorhanden sind, wurde mit der Firmware Version 29.04.87 getestet.
|
|
# In älteren Versionen scheint die FB keine Information darüber bereit zu stellen.
|
|
#
|
|
# Liefert der Query "0" zurück, wird das Flagfile (AD_FLAGFILE) gelöscht.
|
|
# Ist das Ergebnis ungleich "0", wird das Flagfile (AD_FLAGFILE) erzeugt.
|
|
# default SEARCH_QUERY=&var=tam:settings/TAM0/NumNewMessages
|
|
SEARCH_QUERY=]].. C["SEARCH_QUERY"] .. "\n" ..[[
|
|
|
|
# Intervall in Sekunden, für die Suchabfrage in der Startseite der FRITZ!Box
|
|
# default SEARCH_INT=300
|
|
SEARCH_INT=]].. C["SEARCH_INT"] .. "\n" ..[[
|
|
|
|
# Standard im NI-Image ist /var/etc/.call
|
|
# default AD_FLAGFILE=/var/etc/.call
|
|
AD_FLAGFILE=]].. C["AD_FLAGFILE"] .. "\n" ..[[
|
|
]]
|
|
)
|
|
f:close()
|
|
|
|
check_for_restart()
|
|
|
|
local i = 0
|
|
repeat
|
|
i = i + 1
|
|
msg, data = n:GetInput(500)
|
|
until msg == RC.ok or msg == RC.home or i == 2
|
|
end
|
|
|
|
h:hide()
|
|
end
|
|
end
|
|
|
|
function handle_key(a)
|
|
if (changed == 0) then
|
|
return MENU_RETURN["EXIT"]
|
|
end
|
|
|
|
local res = messagebox.exec{title="Änderungen verwerfen?", text="Sollen die Änderungen verworfen werden?", buttons={ "yes", "no" } }
|
|
if (res == "yes") then
|
|
return MENU_RETURN["EXIT"]
|
|
else
|
|
return MENU_RETURN["REPAINT"]
|
|
end
|
|
end
|
|
|
|
function reset()
|
|
local res = messagebox.exec{title="Standardeinstellungen laden", text="Sollen die Standardeinstellungen geladen werden?", buttons={ "yes", "no" } }
|
|
if (res == "yes") then
|
|
init()
|
|
changed=1
|
|
|
|
-- ugly but it's works --
|
|
m:hide()
|
|
m = {}
|
|
m_menu("main")
|
|
|
|
return MENU_RETURN["EXIT_ALL"]
|
|
end
|
|
return MENU_RETURN["REPAINT"]
|
|
end
|
|
|
|
on="ein"
|
|
off="aus"
|
|
function num2onoff(a)
|
|
if (tonumber(a) == 0) then
|
|
return off
|
|
else
|
|
return on
|
|
end
|
|
end
|
|
function onoff2num(a)
|
|
if (a == on) then
|
|
return 1
|
|
else
|
|
return 0
|
|
end
|
|
end
|
|
function set_onoff(k, v)
|
|
if (C[k] ~= onoff2num(v)) then
|
|
C[k]=onoff2num(v)
|
|
changed=1
|
|
end
|
|
end
|
|
|
|
yes="ja"
|
|
no="nein"
|
|
function num2yesno(a)
|
|
if (tonumber(a) == 0) then
|
|
return no
|
|
else
|
|
return yes
|
|
end
|
|
end
|
|
function yesno2num(a)
|
|
if (a == yes) then
|
|
return 1
|
|
else
|
|
return 0
|
|
end
|
|
end
|
|
function set_yesno(k, v)
|
|
if (C[k] ~= yesno2num(v)) then
|
|
C[k]=yesno2num(v)
|
|
changed=1
|
|
end
|
|
end
|
|
|
|
function set_string(k, v)
|
|
if (C[k] ~= v) then
|
|
C[k]=v
|
|
changed=1
|
|
end
|
|
end
|
|
|
|
function get_desc_from_table(t, v)
|
|
local __d = ""
|
|
for _v, _w in ipairs(t) do
|
|
if (_w.value == v) then
|
|
__d = _w.desc
|
|
break
|
|
end
|
|
end
|
|
return __d
|
|
end
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
table_MSGTYPE = {
|
|
{ value = "nmsg", desc = "Message" },
|
|
{ value = "popup", desc = "Popup" }
|
|
}
|
|
|
|
descs_MSGTYPE = {}
|
|
|
|
for v, w in ipairs(table_MSGTYPE) do
|
|
descs_MSGTYPE[v] = w.desc
|
|
end
|
|
-- ---------------------------------------------------------------------------
|
|
table_DEBUG = {
|
|
{ value = "0", desc = "aus" },
|
|
{ value = "1", desc = "Level 1" },
|
|
{ value = "2", desc = "Level 2" }
|
|
}
|
|
|
|
descs_DEBUG = {}
|
|
|
|
for v, w in ipairs(table_DEBUG) do
|
|
descs_DEBUG[v] = w.desc
|
|
end
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
switch_table = {
|
|
["MSGTYPE"] = function (x) return table_MSGTYPE end,
|
|
["DEBUG"] = function (x) return table_DEBUG end,
|
|
}
|
|
|
|
function set_table(k, v)
|
|
local __v
|
|
for _v, _w in ipairs(switch_table[k]()) do
|
|
if (_w.desc == v) then
|
|
__v = _w.value
|
|
break
|
|
end
|
|
end
|
|
C[k]=__v
|
|
changed=1
|
|
end
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
|
|
function msn_menu(id)
|
|
local msn = menu.new{name="MSN Einstellungen", icon="settings"}
|
|
msn:addKey{directkey=RC["home"], id="home", action="handle_key"}
|
|
msn:addKey{directkey=RC["setup"], id="setup", action="handle_key"}
|
|
msn:addItem{type="separator"}
|
|
msn:addItem{type="back"}
|
|
msn:addItem{type="separatorline"}
|
|
for i=1,6 do
|
|
msn:addItem{type="stringinput", action="set_string", id="MSN_"..i.."", value=C["MSN_"..i..""], hint=H["MSN"] ,valid_chars="0123456789 ", directkey=RC[""..i..""], name="Rufnummer "..i..""}
|
|
end
|
|
msn:exec()
|
|
end
|
|
|
|
function box_menu(id)
|
|
local box = menu.new{name="Box Einstellungen", icon="settings"}
|
|
box:addKey{directkey=RC["home"], id="home", action="handle_key"}
|
|
box:addKey{directkey=RC["setup"], id="setup", action="handle_key"}
|
|
box:addItem{type="separator"}
|
|
box:addItem{type="back"}
|
|
box:addItem{type="separatorline"}
|
|
for i=1,4 do
|
|
box:addItem{type="stringinput", action="set_string", id="BOXIP_"..i.."", value=C["BOXIP_"..i..""], hint=H["BOXIP"], valid_chars="0123456789.: ", directkey=RC[""..i..""], name="Box "..i.." IP"}
|
|
box:addItem{type="keyboardinput", action="set_string", id="LOGON_"..i.."", value=C["LOGON_"..i..""], hint=H["LOGON"], name="Box "..i.." Login"}
|
|
if i < 4 then
|
|
box:addItem{type="separator"}
|
|
end
|
|
end
|
|
box:exec()
|
|
end
|
|
|
|
function port_menu(id)
|
|
local msn = menu.new{name="Wählhilfe", icon="settings"}
|
|
msn:addKey{directkey=RC["home"], id="home", action="handle_key"}
|
|
msn:addKey{directkey=RC["setup"], id="setup", action="handle_key"}
|
|
msn:addItem{type="separator"}
|
|
msn:addItem{type="back"}
|
|
msn:addItem{type="separatorline"}
|
|
for i=1,8 do
|
|
msn:addItem{type="keyboardinput", action="set_string", id="PORT_"..i.."", value=C["PORT_"..i..""], hint=H["PORT"], directkey=RC[""..i..""], name="Wählhilfe "..i..""}
|
|
end
|
|
msn:exec()
|
|
end
|
|
|
|
function query_menu(id)
|
|
local query = menu.new{name="Anrufbeantworter", icon="settings"}
|
|
query:addKey{directkey=RC["home"], id="home", action="handle_key"}
|
|
query:addKey{directkey=RC["setup"], id="setup", action="handle_key"}
|
|
query:addItem{type="separator"}
|
|
query:addItem{type="back"}
|
|
query:addItem{type="separatorline"}
|
|
query:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="SEARCH_MODE", hint=H["SEARCH_MODE"], value=num2yesno(C["SEARCH_MODE"]), name="Query-Abfrage"}
|
|
query:addItem{type="keyboardinput", action="set_string", id="SEARCH_QUERY", value=C["SEARCH_QUERY"], hint=H["SEARCH_QUERY"], name="Query-String"}
|
|
query:addItem{type="stringinput", action="set_string", id="SEARCH_INT", value=C["SEARCH_INT"], hint=H["SEARCH_INT"], valid_chars="0123456789 ", name="Abfrageintervall"}
|
|
query:addItem{type="keyboardinput", action="set_string", id="AD_FLAGFILE", value=C["AD_FLAGFILE"], hint=H["AD_FLAGFILE"], name="Signaldatei"}
|
|
query:exec()
|
|
end
|
|
|
|
function pwd_menu(id)
|
|
local pwd = menu.new{name="FRITZ!Box Passwort", icon="settings"}
|
|
pwd:addKey{directkey=RC["home"], id="home", action="handle_key"}
|
|
pwd:addKey{directkey=RC["setup"], id="setup", action="handle_key"}
|
|
pwd:addItem{type="separator"}
|
|
pwd:addItem{type="back"}
|
|
pwd:addItem{type="separatorline"}
|
|
pwd:addItem{type="keyboardinput", action="set_string", id="PASSWD", value=C["PASSWD"], name="Passwort"}
|
|
pwd:exec()
|
|
end
|
|
|
|
function m_menu(id)
|
|
m = menu.new{name=caption, icon="settings"}
|
|
m:addKey{directkey=RC["home"], id="home", action="handle_key"}
|
|
m:addKey{directkey=RC["setup"], id="setup", action="handle_key"}
|
|
m:addItem{type="separator"}
|
|
m:addItem{type="cancel"}
|
|
m:addItem{type="separatorline"}
|
|
m:addItem{type="forwarder", name="Speichern", action="save", icon="rot", directkey=RC["red"]}
|
|
m:addItem{type="separatorline"}
|
|
m:addItem{type="keyboardinput", action="set_string", id="FRITZBOXIP", value=C["FRITZBOXIP"], hint=H["FRITZBOXIP"], name="FRITZ!Box IP/Name"}
|
|
m:addItem{type="stringinput", action="set_string", id="PORT", value=C["PORT"], hint=H["PORT"], valid_chars="0123456789 ", name="FRITZ!Box Port"}
|
|
m:addItem{type="forwarder", name="Passwort eingeben", action="pwd_menu", hint=H["PASSWD"], id="PWD"}
|
|
m:addItem{type="separator"}
|
|
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="EASYMODE", hint=H["EASYMODE"], value=num2yesno(C["EASYMODE"]), name="EasyBox statt FRITZ!Box"}
|
|
m:addItem{type="separatorline"}
|
|
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="BACKWARDSEARCH", hint=H["BACKWARDSEARCH"], value=num2yesno(C["BACKWARDSEARCH"]), name="Rückwärtsuche"}
|
|
m:addItem{type="chooser", directkey=RC["green"], icon="gruen", action="set_table", options=descs_DEBUG, id="DEBUG", hint=H["DEBUG"], value=get_desc_from_table(table_DEBUG, C["DEBUG"]), name="Debugmodus"}
|
|
m:addItem{type="stringinput", action="set_string", id="CITYPREFIX", value=C["CITYPREFIX"], hint=H["CITYPREFIX"], valid_chars="0123456789 ", name="Ortsvorwahl", size="7"}
|
|
m:addItem{type="stringinput", action="set_string", id="DIALPREFIX", value=C["DIALPREFIX"], hint=H["DIALPREFIX"], valid_chars="0123456789 ", name="Wählprefix", size="7"}
|
|
m:addItem{type="separator"}
|
|
m:addItem{type="filebrowser", action="set_string", id="ADDRESSBOOK", value=C["ADDRESSBOOK"], hint=H["ADDRESSBOOK"], name="Adressbuch"}
|
|
m:addItem{type="filebrowser", action="set_string", id="EXEC", value=C["EXEC"], hint=H["EXEC"], name="Script starten"}
|
|
m:addItem{type="separatorline"}
|
|
m:addItem{type="chooser", action="set_table", options=descs_MSGTYPE, id="MSGTYPE", value=get_desc_from_table(table_MSGTYPE, C["MSGTYPE"]), hint=H["MSGTYPE"], name="Benachrichtung"}
|
|
m:addItem{type="stringinput", action="set_string", id="MSGTIMEOUT", value=C["MSGTIMEOUT"], hint=H["MSGTIMEOUT"], valid_chars="0123456789 ", name="Message Timeout"}
|
|
m:addItem{type="separatorline"}
|
|
m:addItem{type="forwarder", name="MSN Einstellungen", action="msn_menu", hint=H["MSNMENU"], id="MSN"}
|
|
m:addItem{type="forwarder", name="Box Einstellungen", action="box_menu", hint=H["BOXMENU"], id="BOX"}
|
|
m:addItem{type="forwarder", name="Wählhilfen", action="port_menu", hint=H["DIALHELPER"], id="PORT"}
|
|
m:addItem{type="forwarder", name="Statusabfrage des Anrufbeantworters", action="query_menu", hint=H["SEARCH_MODE_MENU"], id="PORT"}
|
|
m:addItem{type="separatorline"}
|
|
m:addItem{type="forwarder", name="Standardeinstellungen laden", action="reset", hint="Aktuelle Einstellungen verwerfen und die Standardeinstellungen laden" }
|
|
m:exec()
|
|
end
|
|
|
|
-- MAIN ----------------------------------------------------------------------
|
|
n = neutrino()
|
|
init()
|
|
load()
|
|
m_menu("main")
|
|
|