Compare commits

..

8 Commits
vcl ... usp-460

Author SHA1 Message Date
yyashvardhan
bf125d0750 Ticket#576: Implement rest of the operate commands 2019-05-01 11:58:24 +05:30
vdutta
26efd8075e PoC#578: [USPD] multiple element set in one set command 2019-04-25 13:08:39 +05:30
vdutta
369a371fd3 Ticket#460: Updated group logic in uspd get operation 2019-04-18 11:43:16 +05:30
vdutta
672a2914ba Ticket#460: Update get and operate command in uspd 2019-04-17 18:32:32 +05:30
vdutta
24a4cea696 Ticket#460: Updated output format of uspd 2019-04-11 14:29:16 +05:30
vdutta
02700e01c7 Ticket#460: Updated search by reference logic in uspd 2019-04-10 13:01:40 +05:30
vdutta
e280e6e2ac Ticket#460: Added operate in uspd 2019-04-09 18:21:32 +05:30
vdutta
9f454afaef Ticket-460: USP extention for TR-069
Description:
 - First draft of the changes

Test Done:
 - Below ubus call tested
   ubus call usp get '{"path":"Device.WiFi.SSID.[BSSID==\"00:22:07:6D:5E:DD\"].SSID"}'
   ubus call usp get '{"path":"Device.IP.Interface.*.IPv4Address.*.IPAddress"}'
   ubus call usp get '{"path":"Device.WiFi.AccessPoint.[SSIDReference+BSSID==\"00:22:07:6D:5E:DD\"].SSID"}'
   ubus call usp set '{"path":"Device.WiFi.AccessPoint.[SSIDReference+BSSID==\"00:22:07:6D:5E:D\"].SSID", "value":"Test-2G"}'

Not Covered:
 - Operate command
 - Alias based addressing
 - Searching with List of References
2019-04-05 19:41:38 +05:30
55 changed files with 454 additions and 1072 deletions

View File

@@ -8,10 +8,10 @@
include $(TOPDIR)/rules.mk
PKG_RELEASE:=1
PKG_VERSION:=1.3.0
PKG_VERSION:=1.2.0
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=5a5c94b289c79bc3a635b8d742dd9b73dcc0615f
PKG_SOURCE_VERSION:=0c029ed2486342e7e7687631b702d5c743f3c41a
PKG_NAME:=dectmngr2

View File

@@ -13,7 +13,7 @@ PKG_VERSION:=1.0.0
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=7522faab4142fe2c0ac8cbf71bb0cc5bd49f0750
PKG_SOURCE_VERSION:=be5b0d0c0a1c2abd335aaf19f01f63284d8cc285
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dslmngr.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
endif

View File

@@ -1,37 +0,0 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=easy-qos
PKG_VERSION:=1.0
PKG_RELEASE:=0
include $(INCLUDE_DIR)/package.mk
define Package/easy-qos
SECTION:=net
CATEGORY:=Network
TITLE:=Easy QoS
endef
define Package/easy-qos/description
This package contains Easy QoS utitie
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./files/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
endef
define Package/easy-qos/install
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(CP) ./files/etc/config/easy_qos $(1)/etc/config/
$(CP) ./files/etc/init.d/easy_qos.iptables $(1)/etc/init.d/easy_qos
$(CP) ./files/etc/uci-defaults/* $(1)/etc/uci-defaults/
$(CP) ./files/etc/firewall.easyqos $(1)/etc/firewall.easyqos
endef
$(eval $(call BuildPackage,easy-qos))

View File

@@ -1 +0,0 @@
/etc/init.d/easy_qos reload

View File

@@ -1,140 +0,0 @@
#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1
log() {
echo "${@}"|logger -t easy_qos.ebtable -p debug
}
exec_log() {
${@}
if [ "${?}" -ne 0 ]; then
log "Failed to create ${@}";
fi
}
get_priority() {
local prio=$(echo $1|tr [A-Z] [a-z]);
case "${prio}" in
"lowest")
echo 0;;
"low")
echo 1;;
"besteffort")
echo 2;;
"normal")
echo 3;;
"video")
echo 4;;
"medium")
echo 5;;
"high")
echo 6;;
"highest")
echo 7;;
esac
}
validate_rule_section()
{
uci_validate_section easy_qos rule "${1}" \
'priority:string' \
'macaddr:string' \
'proto:string:none' \
'port:list(uinteger)' \
'comment:string:none'
}
# Clear existing rules before applying new rules
clear_existing_rules() {
local rule=$(ebtables -t broute -L BROUTING|grep -m 1 mark)
while [ -n "${rule}" ]; do
exec_log ebtables -t broute -D BROUTING ${rule}
rule=$(ebtables -t broute -L BROUTING|grep -m 1 mark)
done
}
create_rule() {
local protocol=$1; shift
local mac=$1; shift
local mark="0x$1"; shift
local forward_port=$1;
local cmd="";
local protocol_number
cmd="-j mark --mark-or ${mark}";
if [ -n "${forward_port}" ]; then
cmd="--ip-destination-port ${forward_port} ${cmd}";
fi
case "${protocol}" in
"tcp")
protocol_number=6;;
"udp")
protocol_number=17;;
"dccp")
protocol_number=33;;
"sctp")
protocol_number=132;;
*)
log "Protocol ${protocol} not supported in ebtables"
return;;
esac
cmd="--ip-proto ${protocol_number} $cmd"
cmd="-p ip $cmd"
cmd="-s ${mac} $cmd"
exec_log ebtables -t broute -A BROUTING ${cmd}
}
manage_rule() {
local cfg="$1"
local priority macaddr proto port comment prio_num protocol
validate_rule_section "${1}" || {
log "Validation of section failed"
return 1;
}
protocol=$(echo ${proto}|tr [A-Z] [a-z])
prio_num=$(get_priority ${priority})
if [ -n "${macaddr}" -a -n "${prio_num}" ]; then
for p in ${port}; do
if [ "${protocol}" == "none" ]; then
create_rule tcp ${macaddr} ${prio_num} ${p}
create_rule udp ${macaddr} ${prio_num} ${p}
else
create_rule ${protocol} ${macaddr} ${prio_num} ${p}
fi
done
# Create rule for all ports if port is not mentioned in uci
if [ -z "${port}" ]; then
if [ "${protocol}" == "none" ]; then
create_rule tcp ${macaddr} ${prio_num}
create_rule udp ${macaddr} ${prio_num}
else
create_rule ${protocol} ${macaddr} ${prio_num}
fi
fi
fi
}
reload_service() {
# Do not apply rules if ebtables is not present in system
[ -x /usr/sbin/ebtables ] || return;
clear_existing_rules
config_load easy_qos
config_foreach manage_rule rule
}
start_service() {
reload_service
}
service_triggers() {
procd_add_reload_trigger "easy_qos"
}

View File

@@ -1,186 +0,0 @@
#!/bin/sh /etc/rc.common
. /usr/share/libubox/jshn.sh
START=99
USE_PROCD=1
CLIENT_LIST="/tmp/easy_qos_client.list"
log() {
echo "${@}"|logger -t easy_qos -p debug
}
exec_log() {
${@}
if [ "${?}" -ne 0 ]; then
log "Failed to create ${@}";
fi
}
get_priority() {
local prio=$(echo $1|tr [A-Z] [a-z]);
case "${prio}" in
"lowest")
echo 0;;
"low")
echo 1;;
"besteffort")
echo 2;;
"normal")
echo 3;;
"video")
echo 4;;
"medium")
echo 5;;
"high")
echo 6;;
"highest")
echo 7;;
esac
}
clean_client_entries() {
[ -f ${CLIENT_LIST} ] && rm ${CLIENT_LIST}
}
map_client_entries() {
local clients ip mac host
json_load "$(ubus call router.network 'clients')"
json_get_keys keys
for key in ${keys};
do
json_select ${key}
json_get_vars ipaddr macaddr hostname
clients="${macaddr} ${ipaddr} ${hostname};${clients}"
json_select ..
done
json_init
# json_add_array "clients"
IFS=";"
for client in ${clients};
do
macaddr=$(echo ${client} | cut -d" " -f1)
json_add_object "${macaddr//:/_}"
json_add_string "ip" "$(echo ${client} | cut -d" " -f2)"
json_add_string "macaddr" "$(echo ${client} | cut -d" " -f1)"
json_add_string "host" "$(echo ${client} | cut -d" " -f3)"
json_close_object
done
IFS=' '
echo `json_dump` > ${CLIENT_LIST}
json_cleanup
}
# Find the IP of a corresponding mac from arp table
get_ipaddress() {
local clients ip mac host
json_load "$(cat ${CLIENT_LIST})"
json_get_keys keys
# jshn seems a bit iffy on having : in key, replace by _
json_select "${1//:/_}" 2 > /dev/null
json_get_var ip ip
echo "$ip"
}
validate_rule_section()
{
uci_validate_section easy_qos rule "${1}" \
'priority:string' \
'macaddr:string' \
'proto:string:none' \
'port:list(uinteger)' \
'comment:string:none'
}
# Clear existing rules before applying new rules
clear_existing_rules() {
local rule=$(iptables -t mangle -S OUTPUT|grep -m 1 MARK |sed 's/-A/-D/1')
while [ -n "${rule}" ]; do
exec_log iptables -t mangle ${rule}
rule=$(iptables -t mangle -S OUTPUT|grep -m 1 MARK |sed 's/-A/-D/1')
done
}
check_and_create() {
iptables -t mangle -C OUTPUT ${@} 2>/dev/null
# Create rule if not exists
if [ ${?} -ne 0 ]; then
exec_log iptables -t mangle -A OUTPUT ${@}
else
log "Rule exists for ${@}"
fi
}
create_rule() {
local proto=$1; shift
local src_ip=$1; shift
local mark="0x$1/0x$1"; shift
local ports=$1;
local cmd="";
cmd="-j MARK --set-xmark ${mark}";
if [ -n "${ports}" ]; then
cmd="--match multiport --dports ${ports} ${cmd}";
fi
if [ "${proto}" == "icmp" ]; then
cmd="-p icmp -m icmp --icmp-type 8 $cmd"
elif [ "${proto}" == "all" ]; then
cmd="-p all $cmd"
else
cmd="-p ${proto} -m ${proto} $cmd"
fi
cmd="-s ${src_ip} $cmd"
check_and_create ${cmd}
}
manage_rule() {
local cfg="$1"
local priority macaddr proto port comment prio_num ip port_list
validate_rule_section "${1}" || {
log "Validation of section failed"
return 1;
}
prio_num=$(get_priority ${priority})
ip=$(get_ipaddress ${macaddr})
port_list=$(echo ${port}|sed 's/ /,/g')
if [ -n "${ip}" -a -n "${prio_num}" ]; then
if [ "${proto}" == "none" ]; then
create_rule tcp ${ip} ${prio_num} ${port_list}
create_rule udp ${ip} ${prio_num} ${port_list}
else
create_rule ${proto} ${ip} ${prio_num} ${port_list}
fi
fi
}
reload_service() {
clear_existing_rules
map_client_entries
config_load easy_qos
config_foreach manage_rule rule
clean_client_entries
}
start_service() {
reload_service
echo "Easy QoS installed">/dev/console;
}
service_triggers() {
procd_add_reload_trigger "easy_qos"
}

View File

@@ -1,10 +0,0 @@
# Add firewall include
uci -q batch <<-EOT
delete firewall.easyqos
set firewall.easyqos=include
set firewall.easyqos.path=/etc/firewall.easyqos
set firewall.easyqos.reload=1
uci del_list firewall.easyqos._access_w="root"
uci add_list firewall.easyqos._access_w="root"
commit firewall
EOT

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=easy-soc-libs
PKG_VERSION:=1.0.1
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=c656cd47a9f911cfe3946e3d4a374b4ae9e5d801
PKG_SOURCE_VERSION:=359524ddd8a17df39c70c5ba39e723e9641d5956
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/easy-soc-libs.git
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@inteno.se>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_RELEASE:=1
PKG_VERSION:=0.2
PKG_SOURCE_VERSION:=631e61b7ab5d86f2f4c86756a117badff9fb0f2c
PKG_SOURCE_VERSION:=44e2472e8c08bef01fab27e8e908d5672f7af136
ifeq ($(CONFIG_ENDPT_OPEN),y)

View File

@@ -82,6 +82,7 @@ static ssize_t set_led_color(struct device *dev,
}
// Update the LED array here
printk(KERN_DEBUG "Set LED color\n");
ret = sk9822_set_color_str(sk9822, buf);
if (ret != 0) {
printk(KERN_ERR "Failed to set led color\n");
@@ -118,6 +119,8 @@ static int canyon_led_probe(struct platform_device *pdev)
int ret;
struct sk9822_leds *leds;
printk(KERN_NOTICE "Begin probing...\n");
leds = devm_kzalloc(&pdev->dev, sizeof(*leds), GFP_KERNEL);
if (!leds) {
return -ENOMEM;
@@ -140,6 +143,8 @@ static int canyon_led_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, leds);
printk(KERN_INFO "Allocated memory\n");
#if LINUX_VERSION_CODE <= KERNEL_VERSION(3, 16, 0)
leds->clock_gpio = gpiod_get_index(&pdev->dev, "led", 0);
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
@@ -187,16 +192,14 @@ static int canyon_led_probe(struct platform_device *pdev)
return ret;
}
#if 0
printk(KERN_INFO "Flash LEDs to verify they work\n");
sk9822_set_color_str(leds, "00FF00");
sk9822_update(leds);
msleep(200);
sk9822_set_color_str(leds, "000000");
sk9822_update(leds);
#endif
printk(KERN_INFO "canyon led successfully probed\n");
printk(KERN_NOTICE "We made it, carry on...\n");
return 0;
}

View File

@@ -56,27 +56,31 @@ int sk9822_set_color_str(struct sk9822_leds *sk9822, const char *hex)
int sk9822_update(struct sk9822_leds *sk9822)
{
uint16_t i;
uint8_t *rawarray = (uint8_t *)sk9822->led_colors;
uint16_t led_count = sk9822->led_count;
// Start Frame
sk9822_bb_write(sk9822, 0x00);
sk9822_bb_write(sk9822, 0x00); // Start Frame
sk9822_bb_write(sk9822, 0x00);
sk9822_bb_write(sk9822, 0x00);
sk9822_bb_write(sk9822, 0x00);
for (i = 0; i < led_count; i++) {
cRGB *p = &sk9822->led_colors[i];
for (i = 0; i < (led_count*3); i += 3) {
sk9822_bb_write(sk9822, 0xe0+sk9822->led_brightness); // Maximum global brightness
sk9822_bb_write(sk9822, p->b);
sk9822_bb_write(sk9822, p->g);
sk9822_bb_write(sk9822, p->r);
sk9822_bb_write(sk9822, rawarray[i+0]);
sk9822_bb_write(sk9822, rawarray[i+1]);
sk9822_bb_write(sk9822, rawarray[i+2]);
}
// End frame
sk9822_bb_write(sk9822, 0xff);
sk9822_bb_write(sk9822, 0xff);
sk9822_bb_write(sk9822, 0xff);
sk9822_bb_write(sk9822, 0xff);
// Reset frame - Only needed for SK9822, has no effect on APA102
sk9822_bb_write(sk9822, 0x00);
sk9822_bb_write(sk9822, 0x00);
sk9822_bb_write(sk9822, 0x00);
sk9822_bb_write(sk9822, 0x00);
// End frame: 8+8*(leds >> 4) clock cycles
for (i = 0; i < led_count; i += 16) {
sk9822_bb_write(sk9822, 0xff); // 8 more clock cycles
}
return 0;
}

View File

@@ -22,7 +22,7 @@
#include <linux/types.h>
#define SK9822_DEFAULT_NUM_LEDS 32 // U16, used if DT param fails
#define SK9822_DEFAULT_BRIGHTNESS 1 // 5-bit brightness, 0-31
#define SK9822_DEFAULT_BRIGHTNESS 31 // 5-bit brightness, 0-31
typedef struct {
uint8_t b;

View File

@@ -8,11 +8,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=4.0-2019-05-21
PKG_VERSION:=4.0-2019-04-01
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=3ae6954f55e90a339561719a0328c0cf3a4b018c
PKG_SOURCE_VERSION:=434174439789e7e78e30063d6cf472f381e5b5f1
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
@@ -51,13 +51,6 @@ define Package/icwmp_xmpp
DEPENDS:=+libuci +libubox +libexpat +libstrophe
endef
define Package/icwmp_twamp
SECTION:=utils
CATEGORY:=Utilities
TITLE:=TR-069 twamp feature
DEPENDS:=+libuci
endef
define Package/icwmp_udpechoserver
SECTION:=utils
CATEGORY:=Utilities
@@ -226,15 +219,6 @@ define Package/icwmp_udpechoserver/install
$(INSTALL_CONF) $(PKG_BUILD_DIR)/config/cwmp_udpechoserver $(1)/etc/config
endef
define Package/icwmp_twamp/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/icwmp_twampd $(1)/usr/sbin/icwmp_twampd
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/init/icwmp_twampd $(1)/etc/init.d/icwmp_twampd
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) $(PKG_BUILD_DIR)/config/cwmp_twamp $(1)/etc/config
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/include/libdatamodel
@@ -271,5 +255,4 @@ $(eval $(call BuildPackage,libdatamodel))
$(eval $(call BuildPackage,icwmp_stun))
$(eval $(call BuildPackage,icwmp_xmpp))
$(eval $(call BuildPackage,icwmp_udpechoserver))
$(eval $(call BuildPackage,icwmp_twamp))
$(eval $(call BuildPackage,icwmp-zstream))

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2018 iopsys
# Copyright (C) 2018 Inteno
#
include $(TOPDIR)/rules.mk
@@ -15,6 +15,7 @@ PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/imonitor.git
PKG_SOURCE_VERSION:=532f4900862bcb45d8cd4bf37555fabda81750b6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=${PKG_NAME}-${PKG_VERSION}
PKG_MAINTAINER:=Sartura Support for Inteno <support-inteno@sartura.hr>
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
@@ -23,7 +24,7 @@ include $(INCLUDE_DIR)/cmake.mk
define Package/imonitor
CATEGORY:=Utilities
TITLE:=iopsysWrt process supervisor
TITLE:=Inteno process supervisor
DEPENDS:=+ubox +uci +ubus +rpcd +rpcd-mod-file
endef

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2016 iopsys
# Copyright (C) 2016 Inteno
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@@ -34,7 +34,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/inbd
CATEGORY:=Utilities
TITLE:=iopsys Netlink Bridge Daemon
TITLE:=Inteno Netlink Bridge Daemon
URL:=
DEPENDS:=+libuci +libubus +libblobmsg-json +libnl-genl
endef

View File

@@ -20,7 +20,7 @@ define Package/iop
endef
define Package/iop/description
This package contains iopsysWrt SDK utilities
This package contains Intenos Iop utilities
endef
define Build/Compile

View File

@@ -44,6 +44,7 @@ CONFIG_PACKAGE_juci-minidlna=y
CONFIG_PACKAGE_juci-mod-status=y
CONFIG_PACKAGE_juci-mod-system=y
CONFIG_PACKAGE_juci-mwan3=y
CONFIG_PACKAGE_juci-natalie-dect=y
CONFIG_PACKAGE_juci-netmode=y
CONFIG_PACKAGE_juci-network-device=y
CONFIG_PACKAGE_juci-network-dsl=y

View File

@@ -171,8 +171,8 @@ function genconfig {
echo -e " -a|--list-all\t\tList all Customers and their board types"
echo -e " -b|--boards\t\tList all board types"
echo
echo "Example ./iop genconfig dg200 TELIA"
echo "(if no customerconfig is chosen, iopsys config will be used)"
echo "Example ./iop genconfig vg50 TELIA"
echo "(if no customerconfig is chosen the Inteno Config will be used)"
echo
exit 0
}
@@ -362,7 +362,7 @@ function genconfig {
[ $mediatekAllowed -eq 0 ] && echo "CONFIG_MEDIATEK_OPEN=y" >> .config
[ $wifilifeAllowed -eq 0 ] && echo "CONFIG_WIFILIFE_OPEN=y" >> .config
else
echo "# CONFIG_GITMIRROR_REWRITE is not set" >>.config
echo "CONFIG_GITMIRROR_REWRITE=n" >>.config
echo "CONFIG_BCM_OPEN=y" >> .config
echo "CONFIG_ICE_OPEN=y" >> .config
echo "CONFIG_ENDPT_OPEN=y" >> .config
@@ -439,7 +439,7 @@ function genconfig {
shift;
done
CUSTREPO="${CUSTREPO:-git@dev.iopsys.eu:consumer/iopsys.git}"
CUSTREPO="${CUSTREPO:-git@private.inteno.se:customerconfigs}"
setup_dirs
create_and_copy_files "$@"

View File

@@ -496,7 +496,6 @@ check_feeds()
for feed in `echo $feeds`
do
feed_hash=$(feeds_hash $feed)
[ -n "$feed_hash" ] || continue
if [ -d feeds/$feed ]; then
in_git=$(cd feeds/$feed; git rev-parse HEAD)

View File

@@ -21,6 +21,7 @@ upd_ubi_id="" # num, UBI volume number for the volume name
run_cleanup=0 # if set the cleanup should be run otherwise we skip it.
run_mount_cleanup=0 # set if we should run umount in cleanup
upd_kernel=0 # set to 1 if system has the kernel in own mtd partition
upd_cfe=0 # set to 1 if system is using cfe as bootloader.
log_stdout=1 # set to 0 to prevent the log to also print to stdout
upd_noreboot=0 # set to 1 if we should not reboot after programming
upd_forceimage=0 # set this to force upgrade even if image is for wrong board.

View File

@@ -12,8 +12,7 @@
"CG300",
"CG301",
"EX400",
"SDX810-AP",
"NORRLAND"
"SDX810-AP"
],
"acl" : [
"admin",

View File

@@ -47,10 +47,10 @@ config wifi-iface
option cipher 'auto'
option key '$WPAKEY'
option gtk_rekey '3600'
option macfilter 'disable'
option wps '1'
option macfilter '0'
option wps_pbc '1'
option wmf_bss_enable '1'
option maxassoc '32'
option bss_max '32'
option ifname 'wl0'
config wifi-device 'wl1'
@@ -87,9 +87,9 @@ config wifi-iface
option cipher 'auto'
option key '$WPAKEY'
option gtk_rekey '3600'
option macfilter 'disable'
option wps '1'
option macfilter '0'
option wps_pbc '1'
option wmf_bss_enable '1'
option maxassoc '32'
option bss_max '32'
option ifname 'wl1'

View File

@@ -9,8 +9,7 @@
],
"excluded_boards" : [
"*G*",
"F*",
"NORRLAND"
"F*"
],
"uplink_band" : 'a',
"downlink_band" : 'a b',

View File

@@ -27,7 +27,7 @@ config wifi-iface
option encryption psk2
option key $WPAKEY
option ifname ra0
option wps 1
option wps_pbc 1
config wifi-device rai0
option band a
@@ -46,7 +46,7 @@ config wifi-iface
option encryption psk2
option key $WPAKEY
option ifname rai0
option wps 1
option wps_pbc 1
config wifi-iface
option device rai0

View File

@@ -9,8 +9,7 @@
],
"excluded_boards" : [
"EX4*",
"SDX810-AP",
"NORRLAND"
"SDX810-AP"
],
"credentials" : 0
}

View File

@@ -47,10 +47,10 @@ config wifi-iface
option cipher 'auto'
option key '$WPAKEY'
option gtk_rekey '3600'
option macfilter 'disable'
option wps '1'
option macfilter '0'
option wps_pbc '1'
option wmf_bss_enable '1'
option maxassoc '32'
option bss_max '32'
option ifname 'wl0'
config wifi-device 'wl1'
@@ -87,9 +87,9 @@ config wifi-iface
option cipher 'auto'
option key '$WPAKEY'
option gtk_rekey '3600'
option macfilter 'disable'
option wps '1'
option macfilter '0'
option wps_pbc '1'
option wmf_bss_enable '1'
option maxassoc '32'
option bss_max '32'
option ifname 'wl1'

View File

@@ -9,8 +9,7 @@
],
"excluded_boards" : [
"*G*",
"F*",
"NORRLAND"
"F*"
],
"reboot" : 0,
"credentials" : 0

View File

@@ -27,7 +27,7 @@ config wifi-iface
option ssid iopsys-$BSSID4
option encryption psk2
option key $WPAKEY
option wps 1
option wps_pbc 1
option ifname ra0
config wifi-device rai0
@@ -47,6 +47,6 @@ config wifi-iface
option ssid iopsys-$BSSID4
option encryption psk2
option key $WPAKEY
option wps 1
option wps_pbc 1
option ifname rai0

View File

@@ -5,7 +5,6 @@
NMTMPDIR=/var/netmodes
OLD_MODE_FILE=/var/netmodes/old_mode
CONF_BACKUP_DIR=/var/netmodes/backup/
SWITCHMODELOCK="/tmp/switching_mode"
MODEDIR=$(uci -q get netmode.setup.dir)
MTK=0
@@ -180,11 +179,6 @@ switch_netmode() {
run_netmode_scripts $curmode "pre"
# make backup of current config before switching
rm -rf $CONF_BACKUP_DIR
mkdir -p $CONF_BACKUP_DIR
cp -af /etc/config/* $CONF_BACKUP_DIR
logger -s -p user.info -t $0 "[netmode] Copying /etc/netmodes/$curmode in /etc/config" >/dev/console
for file in $(ls /etc/netmodes/$curmode/); do
@@ -232,28 +226,6 @@ switch_netmode() {
run_netmode_scripts $curmode "post"
}
revert_netmode() {
local from="$1"
local to="$2"
local rready="$3"
ubus call leds set '{"state" : "allflash"}'
echo "Could not switch to '$from' mode; going back to '$to' mode" > /dev/console
uci -q set netmode.setup.curmode="$to"
uci -q set netmode.setup.repeaterready="$rready"
uci commit netmode
cp -af $CONF_BACKUP_DIR/* /etc/config/
sync
rm -rf $CONF_BACKUP_DIR
rm -rf $OLD_MODE_FILE
echo "Restarting network services" > /dev/console
ubus call network reload
wifi reload
ubus call router.network reload
ubus call leds set '{"state" : "normal"}'
}
wificontrol_takes_over() {
local ret
[ -f /sbin/wificontrol ] || return

View File

@@ -3,10 +3,6 @@
. /usr/share/libubox/jshn.sh
. /lib/functions.sh
WIFISTA=0
STACONF="/etc/Wireless/iNIC/iNIC_ap.dat"
[ -f $STACONF ] && WIFISTA=1
get_if_creds() {
local section=$1
local network=$2
@@ -88,22 +84,9 @@ duplicate_if_single_radio() {
done
}
get_wifi_iface_cfgstr() {
get_cfgno() {
config_get ifname "$1" ifname
[ "$ifname" == "$2" ] && echo "wireless.$1"
}
config_load wireless
config_foreach get_cfgno wifi-iface $1
}
case "$1" in
list)
if [ $WIFISTA -eq 1 ]; then
echo '{ "get_creds": { "network": "str", "file": "str" }, "set_creds": { "file": "str", "from_gui": "str" }, "connect": { "ssid": "str", "key": "str" }, "forget_network": {} }'
else
echo '{ "get_creds": { "network": "str", "file": "str" }, "set_creds": { "file": "str", "from_gui": "str" } }'
fi
echo '{ "get_creds": { "network": "str", "file": "str" }, "set_creds": { "file": "str", "from_gui": "str" } }'
;;
call)
case "$2" in
@@ -153,64 +136,6 @@ case "$1" in
json_dump
;;
connect)
local ssid key enc auth wetif wetcfg wetssid wetkey code
read input
json_load "$input"
json_get_var ssid ssid
json_get_var key key
code=1
[ $WIFISTA -eq 1 ] && wetif="$(uci -q get wireless.$(uci show wireless | grep 'mode=.*wet.*' | cut -d'.' -f2 | head -1).ifname)"
if [ -s /sys/class/net/$wetif/operstate ]; then
wetcfg="$(get_wifi_iface_cfgstr $wetif)"
wetssid="$(uci -q get $wetcfg.ssid)"
wetkey="$(uci -q get $wetcfg.key)"
ssid="${ssid:-$wetssid}"
key="${key:-$wetkey}"
if [ -n "$key" ]; then
auth="WPA2PSK"
enc="AES"
else
auth="OPEN"
enc="NONE"
fi
iwpriv $wetif set ApCliEnable=0
iwpriv $wetif set ApCliSsid="$ssid"
iwpriv $wetif set ApCliAuthMode="$auth"
iwpriv $wetif set ApCliEncrypType="$enc"
iwpriv $wetif set ApCliWPAPSK="$key"
iwpriv $wetif set ApCliEnable=1
iwpriv $wetif set ApCliAutoConnect=1
code=0
fi
json_init
json_add_int "code" $code
json_dump
;;
forget_network)
local wetif wetcfg code
code=1
[ $WIFISTA -eq 1 ] && wetif="$(uci -q get wireless.$(uci show wireless | grep 'mode=.*wet.*' | cut -d'.' -f2 | head -1).ifname)"
if [ -s /sys/class/net/$wetif/operstate ]; then
wetcfg="$(get_wifi_iface_cfgstr $wetif)"
uci -q set $wetcfg.ssid=""
uci -q set $wetcfg.key=""
uci -q commit wireless
sed -i "s/ApCliSsid=.*/ApCliSsid=/g" $STACONF
sed -i "s/ApCliAuthMode=.*/ApCliAuthMode=/g" $STACONF
sed -i "s/ApCliEncrypType=.*/ApCliEncrypType=/g" $STACONF
sed -i "s/ApCliWPAPSK=.*/ApCliWPAPSK=/g" $STACONF
ifconfig $wetif down
ifconfig $wetif up
code=0
fi
json_init
json_add_int "code" $code
json_dump
;;
esac
;;
esac

View File

@@ -1,9 +1,9 @@
choice
prompt "Select IPC Bus"
prompt "Select Bus"
default OWSD_USE_UBUS
depends on PACKAGE_owsd
help
Select which IPC bus to compile owsd for
Select which bus to compile owsd for
config OWSD_USE_DBUS
bool "Use DBUS"
@@ -15,11 +15,3 @@ config OWSD_USE_DBUS_UBUS
bool "Use UBUS and DBUS"
endchoice
config OWSD_UPROXYD
bool "Enable UBUS Proxy Daemon"
default y if OWSD_USE_UBUS || OWSD_USE_DBUS_UBUS
help
Enabling uproxyd automates detection of other
UBUS-X enabled devices in the network

View File

@@ -1,31 +1,30 @@
#
# Copyright (C) 2018 iopsys
# Copyright (C) 2018 Inteno
#
include $(TOPDIR)/rules.mk
PKG_NAME:=owsd
PKG_VERSION:=1.1.2
PKG_VERSION:=1.1.1
PKG_RELEASE:=1
PKG_SOURCE_PROTO=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/owsd.git
PKG_SOURCE_VERSION:=f1d6bff1971640006b3137b342fafa1c40cfb835
PKG_SOURCE_VERSION:=f0eedeb6fd061edf3784d6bf86fa60b176bf3fe7
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=${PKG_NAME}-${PKG_VERSION}
PKG_MAINTAINER:=Sartura Support for Inteno <support-inteno@sartura.hr>
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_CONFIG_DEPENDS:=CONFIG_OWSD_USE_DBUS CONFIG_OWSD_USE_UBUS CONFIG_OWSD_USE_DBUS_UBUS CONFIG_OWSD_UPROXYD
PKG_CONFIG_DEPENDS:=CONFIG_OWSD_USE_DBUS CONFIG_OWSD_USE_UBUS CONFIG_OWSD_USE_DBUS_UBUS
USE_UBUS-y:=-DWSD_HAVE_UBUS=ON
USE_DBUS-y:=-DWSD_HAVE_DBUS=ON
USE_BOTH-y:=${USE_UBUS-y} ${USE_DBUS-y}
USE_UPROXYD-y:=-DOWSD_UPROXYD=ON
CMAKE_OPTIONS:=${USE_UBUS-${CONFIG_OWSD_USE_UBUS}} \
${USE_DBUS-${CONFIG_OWSD_USE_DBUS}} \
${USE_BOTH-${CONFIG_OWSD_USE_DBUS_UBUS}} \
${USE_UPROXYD-${CONFIG_OWSD_UPROXYD}}
${USE_BOTH-${CONFIG_OWSD_USE_DBUS_UBUS}}
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -53,14 +52,14 @@ endef
define Package/owsd/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owsd $(1)/usr/bin/owsd
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uproxyd $(1)/sbin/uproxyd
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/owsd.init $(1)/etc/init.d/owsd
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/owsd.config $(1)/etc/config/owsd
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_BIN) ./files/owsd.hotplug $(1)/etc/hotplug.d/iface/55-owsd
# $(INSTALL_DIR) $(1)/etc/uci-defaults
# $(INSTALL_BIN) ./files/owsd.uci_default $(1)/etc/uci-defaults/55-owsd-interfaces
endef
define Package/owsd-testdata

View File

@@ -301,15 +301,11 @@ start_service() {
procd_set_param respawn
procd_close_instance
if [ "${enable}" -eq 1 ]; then
# Start uproxyd
procd_open_instance
procd_set_param command $UPROXYD
procd_set_param respawn
procd_close_instance
fi
# Start uproxyd
procd_open_instance
procd_set_param command $UPROXYD
procd_set_param respawn
procd_close_instance
}
#stop_service()

View File

@@ -0,0 +1,87 @@
#!/bin/sh
. /lib/functions.sh
MGMT_INTERFACES=""
OWSD_INTERFACES=""
NOT_DEFAULT=0
mgmt_interfaces() {
local interface=$1
[ "$interface" == "loopback" ] && return
[ "$interface" == "lan" ] && return
[ "$interface" == "wan" ] && return
[ "$interface" == "wan6" ] && return
local type proto
config_get type $interface type
config_get proto $interface proto "none"
[ "$type" == "bridge" -a "$proto" == "none" ] && return
local is_lan
config_get is_lan $interface is_lan
[ "$is_lan" == "1" ] && return
local ifname
config_get ifname $interface ifname
[ "${ifname:0:1}" == "@" ] && return
MGMT_INTERFACES="$MGMT_INTERFACES $interface"
}
owsd_interfaces() {
local config=$1
local interface
config_get interface $config interface
[ "$interface" == "loopback" ] && return
[ "$interface" == "lan" ] && return
[ "$interface" == "wan" ] && return
[ "$interface" == "wan6" ] && return
OWSD_INTERFACES="$OWSD_INTERFACES $interface"
NOT_DEFAULT=1
}
not_owsd() {
local interface=$1
local there=0
for owsd in $OWSD_INTERFACES; do
if [ "$interface" == "$owsd" ]; then
there=1
break
fi
done
return $there
}
config_load network
config_foreach mgmt_interfaces interface
config_load owsd
config_foreach owsd_interfaces owsd-listen
if [ $NOT_DEFAULT -eq 0 ]; then
for mgmt in $MGMT_INTERFACES; do
if $(not_owsd $mgmt); then
uci -q set owsd.$mgmt=owsd-listen
uci -q set owsd.$mgmt.port=80
uci -q set owsd.$mgmt.interface="$mgmt"
uci -q set owsd.$mgmt.ipv6="on"
uci -q set owsd.$mgmt.whitelist_interface_as_origin="1"
uci -q set owsd.$mgmt.origin="*"
uci -q set owsd.$mgmt"_8080"=owsd-listen
uci -q set owsd.$mgmt"_8080".port=8080
uci -q set owsd.$mgmt"_8080".interface="$mgmt"
uci -q set owsd.$mgmt"_8080".ipv6="on"
uci -q set owsd.$mgmt"_8080".whitelist_interface_as_origin="1"
uci -q set owsd.$mgmt"_8080".origin="*"
uci commit owsd
fi
done
fi
exit 0

View File

@@ -12,7 +12,7 @@ PKG_NAME:=peripheral_manager
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PKG_SOURCE_VERSION:=769430115b6dd984313574c3fa2a6d99c65cd223
PKG_SOURCE_VERSION:=02903ce5b594420331f80c6973fa3635921d7080
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/peripheral-manager

View File

@@ -1,14 +1,14 @@
#
# Copyright (C) 2013-2019 iopsys
# Copyright (C) 2013 Inteno
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=questd
PKG_VERSION:=4.1.0
PKG_VERSION:=3.1.40
PKG_SOURCE_VERSION:=3c7c4da8cdf14e4abb75a41e3ef9f2eddc9d75ae
PKG_SOURCE_VERSION:=dd8f4a956ce652d483b8f8878deaa6d5586c2860
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/questd
@@ -27,7 +27,7 @@ else ifeq ($(CONFIG_TARGET_iopsys_linksys),y)
QUESTD_TARGET:=-DIOPSYS_MARVELL
else ifeq ($(CONFIG_TARGET_intel_mips),y)
# BUG FIXME the Intel mips target is not handled in questd this is just to get it to compile
QUESTD_TARGET:=-DIOPSYS_INTEL
QUESTD_TARGET:=-DIOPSYS_BROADCOM
else ifeq ($(CONFIG_TARGET_iopsys_ramips),y)
QUESTD_TARGET:=-DIOPSYS_MEDIATEK
QUESTD_CFLAGS:=\
@@ -59,6 +59,7 @@ define Package/questd/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/questd $(1)/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/wificontrol $(1)/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/graphd $(1)/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uproxyd $(1)/sbin/
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/netcheck $(1)/usr/bin/
endef

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2018 iopsys
# Copyright (C) 2018 Inteno
#
include $(TOPDIR)/rules.mk
@@ -12,7 +12,7 @@ PKG_INSTALL:=1
PKG_SOURCE_PROTO=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/rulengd.git
PKG_SOURCE_VERSION:=ad94ccdd82b22527ab32937ca1a2682030319ed3
PKG_SOURCE_VERSION:=63569245b62d90d3106cc826f2d2b18f51c0b885
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=${PKG_NAME}-${PKG_VERSION}
PKG_INSTALL:=1

View File

@@ -0,0 +1,7 @@
config rule
option event 'test.event'
list event_data "{'test': 1, 'reason': 1}"
list event_data "{'tests': [1, 2, 3]}"
option method 'file->write'
list method_data "{'path': '/tmp/test_event.txt'}"
list method_data "{'data': 'test event received!'}"

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2018 iopsys
# Copyright (C) 2013 Inteno
#
include $(TOPDIR)/rules.mk

View File

@@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git
ifdef CONFIG_TARGET_intel_mips
PKG_SOURCE_URL:=git@dev.iopsys.eu:intel/uboot.git
PKG_SOURCE_VERSION:=c77089efc41ea3292125330221bd5016796631b9
PKG_SOURCE_VERSION:=0ef53f269c27f8e736fd30fd1a874159f70c76bf
else
PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/uboot.git
PKG_SOURCE_VERSION:=3ef2ba866a99205496e0ce01935c89a1778d9b85
@@ -74,7 +74,7 @@ define uboot/grx500_norrland
TITLE:=U-Boot for Norrland Board
UBOOT_IMG:=u-boot-nand.bin
DEPENDS:=@TARGET_intel_mips
PKG_RELEASE:=14
PKG_RELEASE:=10
endef
UBOOTS := \

View File

@@ -5,10 +5,10 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=uspd
PKG_VERSION:=1.0.1
PKG_VERSION:=1.0.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=50a4346d518fd80d22cd9694ee3c1dba336bd072
PKG_SOURCE_VERSION:=e9aa8a42f1da90b44fbd6bca3f4131a24fe79efb
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/uspd.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
@@ -19,7 +19,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/uspd
SECTION:=utils
CATEGORY:=Utilities
TITLE:=USP ubus backend
TITLE:=TR069 extention for USP
DEPENDS:=+libubox +ubus +icwmp-curl
endef

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2014 iopsys
# Copyright (C) 2014 Inteno
#
include $(TOPDIR)/rules.mk

View File

@@ -130,7 +130,7 @@ exten => s,1, Goto(s-${DIALSTATUS},1)
exten => s,n, Hangup()
;handle busy (with CBBS support)
exten => s-BUSY,1, Read(DIGIT,Busy,1,i,30)
exten => s-BUSY,1, Read(DIGIT,Busy,1,in,30)
exten => s-BUSY,n, GotoIf($["${DIGIT}" = "${ARG8}"]?ccbs)
exten => s-BUSY,n, Hangup()
exten => s-BUSY,n(ccbs), Set(result=${SHELL(/usr/lib/asterisk/cbbs.sh ${ARG1} ${ARG2} ${ARG3} ${ARG4} ${ARG5} ${ARG6} ${ARG7})})

View File

@@ -1,138 +1,138 @@
config tel_line 'brcm0'
option extension '0000'
option noise '0'
option vad '0'
option txgain 4
option rxgain 4
option echo_cancel 1
option callwaiting '0'
option clir '0'
option sip_account 'sip0'
config 'tel_line' 'brcm0'
option 'extension' '0000'
option 'sip_account' 'sip0'
option 'noise' '0'
option 'vad' '0'
option 'txgain' 4
option 'rxgain' 4
option 'echo_cancel' 1
option 'callwaiting' '0'
option 'clir' '0'
config tel_line 'brcm1'
option extension '1111'
option noise '0'
option vad '0'
option txgain 4
option rxgain 4
option echo_cancel 1
option callwaiting '0'
option clir '0'
option sip_account 'sip0'
config 'tel_line' 'brcm1'
option 'extension' '1111'
option 'sip_account' 'sip0'
option 'noise' '0'
option 'vad' '0'
option 'txgain' 4
option 'rxgain' 4
option 'echo_cancel' 1
option 'callwaiting' '0'
option 'clir' '0'
config tel_line 'brcm2'
option extension '2222'
option sip_account 'sip0'
option noise '0'
option vad '0'
option txgain 4
option rxgain 4
option echo_cancel 1
option callwaiting '0'
option clir '0'
config 'tel_line' 'brcm2'
option 'extension' '2222'
option 'sip_account' 'sip0'
option 'noise' '0'
option 'vad' '0'
option 'txgain' 4
option 'rxgain' 4
option 'echo_cancel' 1
option 'callwaiting' '0'
option 'clir' '0'
config tel_line 'brcm3'
option extension '3333'
option sip_account 'sip0'
option noise '0'
option vad '0'
option txgain 4
option rxgain 4
option echo_cancel 1
option callwaiting '0'
option clir '0'
config 'tel_line' 'brcm3'
option 'extension' '3333'
option 'sip_account' 'sip0'
option 'noise' '0'
option 'vad' '0'
option 'txgain' 4
option 'rxgain' 4
option 'echo_cancel' 1
option 'callwaiting' '0'
option 'clir' '0'
config tel_line 'brcm4'
option extension '4444'
option sip_account 'sip0'
option noise '0'
option vad '0'
option txgain 4
option rxgain 4
option echo_cancel 1
option callwaiting '0'
option clir '0'
config 'tel_line' 'brcm4'
option 'extension' '4444'
option 'sip_account' 'sip0'
option 'noise' '0'
option 'vad' '0'
option 'txgain' 4
option 'rxgain' 4
option 'echo_cancel' 1
option 'callwaiting' '0'
option 'clir' '0'
config tel_line 'brcm5'
option extension '5555'
option sip_account 'sip0'
option noise '0'
option vad '0'
option txgain 4
option rxgain 4
option echo_cancel 1
option callwaiting '0'
option clir '0'
config 'tel_line' 'brcm5'
option 'extension' '5555'
option 'sip_account' 'sip0'
option 'noise' '0'
option 'vad' '0'
option 'txgain' 4
option 'rxgain' 4
option 'echo_cancel' 1
option 'callwaiting' '0'
option 'clir' '0'
config tel_line 'brcm6'
option extension '6666'
option sip_account 'sip0'
option noise '0'
option vad '0'
option txgain 4
option rxgain 4
option echo_cancel 1
option callwaiting '0'
option clir '0'
config 'tel_line' 'brcm6'
option 'extension' '6666'
option 'sip_account' 'sip0'
option 'noise' '0'
option 'vad' '0'
option 'txgain' 4
option 'rxgain' 4
option 'echo_cancel' 1
option 'callwaiting' '0'
option 'clir' '0'
config tel_line 'brcm7'
option extension '7777'
option sip_account 'sip0'
option noise '0'
option vad '0'
option txgain 4
option rxgain 4
option echo_cancel 1
option callwaiting '0'
option clir '0'
config 'tel_line' 'brcm7'
option 'extension' '7777'
option 'sip_account' 'sip0'
option 'noise' '0'
option 'vad' '0'
option 'txgain' 4
option 'rxgain' 4
option 'echo_cancel' 1
option 'callwaiting' '0'
option 'clir' '0'
config dialplan 'custom_dialplan'
option custom_outgoing_enabled '0'
option custom_incoming_enabled '0'
option custom_hangup_enabled '0'
option all_ports_extension '#123456'
option test_audio_extension '#123457'
option test_echo_extension '#123458'
option record_message_extension '#999999'
config 'dialplan' 'custom_dialplan'
option 'custom_outgoing_enabled' '0'
option 'custom_incoming_enabled' '0'
option 'custom_hangup_enabled' '0'
option 'all_ports_extension' '#123456'
option 'test_audio_extension' '#123457'
option 'test_echo_extension' '#123458'
option 'record_message_extension' '#999999'
config sip_advanced 'SIP'
option rtpstart '10000'
option rtpend '20000'
option dtmfmode 'rfc2833'
option remotehold 'yes'
option contact_line_suffix '1'
option registertimeoutbackoff '512'
option registerattemptsbackoff '0'
option register403timeout '0'
option register503timeout '0'
option registertimeoutguardsecs '15'
option registertimeoutguardlimit '30'
option registertimeoutguardpct '0.2'
config 'sip_advanced' 'SIP'
option 'rtpstart' '10000'
option 'rtpend' '20000'
option 'dtmfmode' 'rfc2833'
option 'remotehold' 'yes'
option 'contact_line_suffix' '1'
option 'registertimeoutbackoff' '512'
option 'registerattemptsbackoff' '0'
option 'register403timeout' '0'
option 'register503timeout' '0'
option 'registertimeoutguardsecs' '15'
option 'registertimeoutguardlimit' '30'
option 'registertimeoutguardpct' '0.2'
option defaultexpiry '300'
option tls_version 'tlsv1'
option tls_cipher 'DES-CBC3-SHA'
option stun_server ''
option dnsmgr 'no'
option dnsmgr_refresh_interval '300'
option srvlookup 'yes'
option 'tls_version' 'tlsv1'
option 'tls_cipher' 'DES-CBC3-SHA'
option 'stun_server' ''
option 'dnsmgr' 'no'
option 'dnsmgr_refresh_interval' '300'
option 'srvlookup' 'yes'
config tel_advanced 'TEL'
option country 'SWE'
option jbenable 'yes'
option jbforce 'no'
option jbmaxsize '500'
option jbimpl 'adaptive'
option genericplc 'yes'
option dialoutmsec '4000'
option cw_enable 'yes'
config 'tel_advanced' 'TEL'
option 'country' 'SWE'
option 'jbenable' 'yes'
option 'jbforce' 'no'
option 'jbmaxsize' '500'
option 'jbimpl' 'adaptive'
option 'genericplc' 'yes'
option 'dialoutmsec' '4000'
option 'cw_enable' 'yes'
config features 'features'
option cbbs_enabled '1'
option callforward_enabled '1'
option callwaiting_enabled '1'
option redial_enabled '1'
option callreturn_enabled '1'
option advanced_register_settings '1'
config 'features' 'features'
option 'cbbs_enabled' '1'
option 'callforward_enabled' '1'
option 'callwaiting_enabled' '1'
option 'redial_enabled' '1'
option 'callreturn_enabled' '1'
option 'advanced_register_settings' '1'
config log 'LOG'
option console 'notice,warning,error'
@@ -146,32 +146,31 @@ config ringing_status 'RINGING_STATUS'
option shouldring '1'
config call_filter 'call_filter0'
option block_foreign '0'
option block_special_rate '0'
option block_outgoing '0'
option block_incoming '0'
option block_foreign '0'
option block_special_rate '0'
option block_outgoing '0'
option block_incoming '0'
config cdr_log 'CDR_LOG'
option cdr_syslog '0'
config sip_service_provider 'sip0'
option name 'Account 1'
option enabled '0'
option codec0 'alaw'
config 'sip_service_provider' 'sip0'
option 'name' 'Account 1'
option 'enabled' '0'
option 'codec0' 'alaw'
option cbbs_key '5'
option cbbs_maxretry '5'
option cbbs_retrytime '300'
option cbbs_waittime '30'
option autoframing '1'
option cfim_on '*21*'
option cfim_off '#21#'
option cfbs_on '*61*'
option cfbs_off '#61#'
option 'autoframing' '1'
option 'cfim_on' '*21*'
option 'cfim_off' '#21#'
option 'cfbs_on' '*61*'
option 'cfbs_off' '#61#'
option cw_on '*43#'
option cw_off '#43#'
option cw_status '*#43#'
option call_return '*69'
option redial '*66'
option is_fax '0'
option transport 'udp'
option 'call_return' '*69'
option 'redial' '*66'
option 'is_fax' '0'
option 'transport' 'udp'
config cdr_log 'CDR_LOG'
option cdr_syslog '0'

View File

@@ -17,8 +17,8 @@ START=60
USE_PROCD=1
# Some global variables
SERIAL="$(getSerial)"
BASEMAC="$(getBaseMAC)"
SERIAL=$(getSerial)
BASEMAC=$(getBaseMAC)
MODULENAME=voice
USERAGENT="Inteno_${SERIAL}_${BASEMAC}"
@@ -32,10 +32,7 @@ ASTERISKDIR=/etc/asterisk
WORKDIR=/tmp/$MODULENAME.$$
MD5SUMSFILE=/tmp/$MODULENAME-sums.$$
LINENAME="$(getLineName)"
CHANNELNAME="$(getChannelName)"
# Whitespace separated list of $CHANNELNAME feature access codes
# Whitespace separated list of $(getChannelName) feature access codes
CHANNEL_FAC=
#TODO: go through templates, check usage
@@ -85,7 +82,7 @@ TMPL_ACL=$TEMPLATEDIR/acl.conf.TEMPLATE
TMPL_CONFBRIDGE=$TEMPLATEDIR/confbridge.conf.TEMPLATE
TMPL_UDPTL=$TEMPLATEDIR/udptl.conf.TEMPLATE
TMPL_CHANNEL=$TEMPLATEDIR/$LINENAME.conf.TEMPLATE
TMPL_CHANNEL=$TEMPLATEDIR/$(getLineName).conf.TEMPLATE
TMPL_CHANNEL_LINE=$TEMPLATEDIR/tel_line.TEMPLATE
TMPL_MEETME=$TEMPLATEDIR/meetme.conf.TEMPLATE
@@ -185,7 +182,7 @@ assemble_and_copy_config()
mv $WORKDIR/sip_registrations.tmp $WORKDIR/sip_registrations.conf
mv $WORKDIR/sip_providers.tmp $WORKDIR/sip_providers.conf
mv $WORKDIR/sip_users.tmp $WORKDIR/sip_users.conf
mv $WORKDIR/$LINENAME.tmp $WORKDIR/$LINENAME.conf
mv $WORKDIR/$(getLineName).tmp $WORKDIR/$(getLineName).conf
mv $WORKDIR/extensions.tmp $WORKDIR/extensions.conf
mv $WORKDIR/codecs.tmp $WORKDIR/codecs.conf
mv $WORKDIR/rtp.tmp $WORKDIR/rtp.conf
@@ -260,41 +257,90 @@ read_codecs_ptime()
#
read_lines()
{
local line call_lines lineid ldx lines llength clength
local loffset=$(ubus -t 1 call voice.asterisk platform | jsonfilter -e @.lineoffset)
loffset=${loffset:-0}
local lines=""
local call_lines
local fxsIdx fxsEpt dectIdx dectEpt
config_get call_lines $1 call_lines "0"
# Are lines already set by user conf?
config_get call_lines $1 call_lines
for line in $call_lines ; do
# Otherwise set default depending on board HW. This
# is only done at very first boot or a default reset.
if test -z "$call_lines"; then
# Get all FSX voice endpoints. Translate to uppercase with awk
# due to tr [:upper:] doesn't work in our BusyBox.
voicePorts=$(db get hw.board.VoicePortOrder | \
awk '{ print toupper($0) }' | \
sed -e "s/\([[:alpha:]]*\)\([[:digit:]]\)/\1\/\2/g")
voiceNames=$(db get hw.board.VoicePortNames)
hasVoice=0
# convert line format to <LINENAME><LINEID>
case $line in
[0-9])
line="$LINENAME$line"
;;
"$CHANNELNAME"/[0-9])
clength=$(echo $CHANNELNAME | wc -c)
line="$LINENAME${line:$clength}"
;;
if test $(db get hw.board.hasVoice) = "1"; then
# Get the first FSX voice endpoint index by
# searching for the name usually used.
fxsIdx=$(echo $voiceNames | \
awk -e '{
i = 1;
while(i <= NF && tolower($i) !~ /^tel.*$/) {
i++;
}
print i;
}'
)
# Convert index to endpoint ID
if test $fxsIdx -gt 0; then
fxsEpt=$(echo $voicePorts | awk '{ print $'$fxsIdx' }')
fi
hasVoice=1
fi
if test $(db get hw.board.hasDect) = "1"; then
# Get the first Dect voice endpoint index by
# searching for the name usually used.
dectIdx=$(echo $voiceNames | \
awk -e '{
i = 1;
while(i <= NF && tolower($i) !~ /^dect.*$/) {
i++;
}
print i;
}
')
if test $dectIdx -gt 0; then
dectEpt=$(echo $voicePorts | awk '{ print $'$dectIdx' }')
fi
hasVoice=1
fi
if test $hasVoice -eq 1; then
call_lines="$dectEpt $fxsEpt"
# Remove leading/trailing spaces
call_lines=$(echo $call_lines | xargs echo -n)
# If we didn't find any endpoint ID we
# fallback to activate them all.
if test -z "$call_lines"; then
call_lines="$voicePorts"
fi
fi
# Save the endpoint IDs we found where the
# GUI expects to find them.
uci_set voice_client "${1}" "call_lines" "$call_lines"
uci_commit voice_client
fi
for i in $call_lines ; do
case $i in
''|*[!0-9]*) lines=$lines"$i&" ;;
*) lines=$lines"$(getChannelName)/$i&" ;;
esac
# get the index from line name
# llength=$(echo $LINENAME | wc -c)
# lineid="${lineid:$llength}"
# get the index from uci config order
lineid="$(uci show voice_client | grep =tel_line | grep -wn $line | cut -d ':' -f1)"
[ -n "$lineid" ] || continue
# -1 to get uci config index (which starts from 0)
# +loffset to give correct number of channel driver
ldx=$((lineid-1+loffset))
lines="$lines$CHANNELNAME/$ldx&"
done
lines=$(escape_sed_substitution $lines)
echo "${lines%??}"
}
@@ -986,9 +1032,9 @@ configure_queue()
do
local out=""
re='^[0-9]+$'
num=${member#$LINENAME}
num=${member#$(getLineName)}
if [ -z "${num##[0-9]*}" ] ; then
out="$CHANNELNAME/$num"
out="$(getChannelName)/$num"
else
local sip_user
config_get sip_user $member user
@@ -1642,7 +1688,7 @@ configure_extensions_provider()
echo "exten => $user,n(norewrite),NoOp()">> $tmp
# read a list of lines that should be dialled on incoming calls
incoming_lines="$(read_lines $1)"
incoming_lines=$(read_lines $1)
config_get call_queue $1 call_queue
config_get call_ivr $1 call_ivr
if [ -n "$incoming_lines" ]; then
@@ -1691,7 +1737,7 @@ configure_tel_line_extension()
local cbbs_retrytime
local cbbs_waittime
local mailbox
local line_name=$LINENAME
local line_name=$(getLineName)
line=${1:${#line_name}}
config_get extension $1 extension
@@ -1796,11 +1842,11 @@ configure_codecs()
}
#
# Configure default settings for $LINENAME.conf
# Configure default settings for $(getLineName).conf
#
configure_tel()
{
echo "Configuring $CHANNELNAME"
echo "Configuring $(getChannelName)"
local jbenable
local jbforce
local jbmaxsize
@@ -1827,29 +1873,29 @@ configure_tel()
dialoutmsec=4000
fi
sed -i "s/|JBENABLE|/$jbenable/" $WORKDIR/$LINENAME.tmp
sed -i "s/|JBFORCE|/$jbforce/" $WORKDIR/$LINENAME.tmp
sed -i "s/|JBMAXSIZE|/$jbmaxsize/" $WORKDIR/$LINENAME.tmp
sed -i "s/|JBIMPL|/$jbimpl/" $WORKDIR/$LINENAME.tmp
sed -i "s/|DIALOUTMSEC|/$dialoutmsec/" $WORKDIR/$LINENAME.tmp
sed -i "s/|FAC|/$CHANNEL_FAC/" $WORKDIR/$LINENAME.tmp
sed -i "s/|CHANNELS|/$(db get hw.board.VoicePorts)/" $WORKDIR/$LINENAME.tmp
sed -i "s/|ECHOCANCEL|/$(getEchoCancellingValue $echocancel)/" $WORKDIR/$LINENAME.tmp
sed -i "s/|JBENABLE|/$jbenable/" $WORKDIR/$(getLineName).tmp
sed -i "s/|JBFORCE|/$jbforce/" $WORKDIR/$(getLineName).tmp
sed -i "s/|JBMAXSIZE|/$jbmaxsize/" $WORKDIR/$(getLineName).tmp
sed -i "s/|JBIMPL|/$jbimpl/" $WORKDIR/$(getLineName).tmp
sed -i "s/|DIALOUTMSEC|/$dialoutmsec/" $WORKDIR/$(getLineName).tmp
sed -i "s/|FAC|/$CHANNEL_FAC/" $WORKDIR/$(getLineName).tmp
sed -i "s/|CHANNELS|/$(db get hw.board.VoicePorts)/" $WORKDIR/$(getLineName).tmp
sed -i "s/|ECHOCANCEL|/$(getEchoCancellingValue $echocancel)/" $WORKDIR/$(getLineName).tmp
if [ "$dtmfmode" == "compatibility" ] ; then
dtmfcompatibility="1"
else
dtmfcompatibility="0"
fi
sed -i "s/|DTMFCOMPATIBILITY|/$dtmfcompatibility/" $WORKDIR/$LINENAME.tmp
sed -i "s/|DTMFCOMPATIBILITY|/$dtmfcompatibility/" $WORKDIR/$(getLineName).tmp
}
#
# Configure settings for individual line in $LINENAME.conf
# Configure settings for individual line in $(getLineName).conf
#
configure_tel_line()
{
echo "Configuring $CHANNELNAME line $1"
echo "Configuring $(getChannelName) line $1"
local extension
local sip_provider
local codecs
@@ -1906,7 +1952,7 @@ configure_tel_line()
sed -i "s/|DTMFRELAY|/$dtmfmode/" $WORKDIR/tel_line.tmp
sed -i "s/|CALLWAITING|/$callwaiting/" $WORKDIR/tel_line.tmp
sed -i "s/|CLIR|/$clir/" $WORKDIR/tel_line.tmp
sed -i "s/|LINE_NAME|/$LINENAME/" $WORKDIR/tel_line.tmp
sed -i "s/|LINE_NAME|/$(getLineName)/" $WORKDIR/tel_line.tmp
#Configure CHANNEL line with codecs according to the SIP line settings
# local is_fax
@@ -1917,7 +1963,7 @@ configure_tel_line()
# sed -i "s/|ALLOW|/$(read_codecs $sip_provider)/" $WORKDIR/tel_line.tmp
# fi
cat $WORKDIR/tel_line.tmp >> $WORKDIR/$LINENAME.tmp
cat $WORKDIR/tel_line.tmp >> $WORKDIR/$(getLineName).tmp
rm -f $WORKDIR/tel_line.tmp
}
@@ -2017,14 +2063,14 @@ pbx_fix_ownership()
}
#
# Calculate a name for each $LINENAME line, depending on port type
# Calculate a name for each $(getLineName) line, depending on port type
# and number. The name is used to make UI look better.
#
set_line_name()
{
local maxlinenum=$2
local curname name_ix ix item lnum
local line_name=$LINENAME
local line_name=$(getLineName)
local line_name_len=${#line_name}
local tel_line=$1
@@ -2130,7 +2176,7 @@ start_service() {
cp $TMPL_SIP $WORKDIR/sip.tmp
cp $TMPL_RTP $WORKDIR/rtp.tmp
cp $TMPL_STUN $WORKDIR/res_stun_monitor.tmp
cp $TMPL_CHANNEL $WORKDIR/$LINENAME.tmp
cp $TMPL_CHANNEL $WORKDIR/$(getLineName).tmp
cp $TMPL_CODECS $WORKDIR/codecs.tmp
cp $TMPL_VOICEMAIL $WORKDIR/voicemail.tmp
cp $TMPL_DNSMGR $WORKDIR/dnsmgr.tmp
@@ -2250,11 +2296,13 @@ reload_service() {
# if there is a registered account
ubus call led.voice1 set '{"state":"off"}'
asterisk -rx "config reload $ASTERISKDIR/sip.conf"
sleep 1
asterisk -rx "core reload"
asterisk -rx "dialplan reload"
asterisk -rx "$(getChipVendor) reload"
[ -f /var/run/asterisk/asterisk.pid ] && /etc/init.d/asterisk restart
# asterisk -rx "config reload $ASTERISKDIR/sip.conf"
# sleep 1
# asterisk -rx "core reload"
# asterisk -rx "dialplan reload"
# asterisk -rx "$(getChipVendor) reload"
}
service_triggers() {

View File

@@ -5,7 +5,6 @@
# Adapt to config section name changes
grep -q brcm_line /etc/config/voice_client && sed -i 's/brcm_line/tel_line/g' /etc/config/voice_client
grep -q brcm_advanced /etc/config/voice_client && sed -i 's/brcm_advanced/tel_advanced/g' /etc/config/voice_client
grep -q BRCM /etc/config/voice_client && sed -i 's/BRCM/TEL/g' /etc/config/voice_client
# Add call filter section
uci -q get voice_client.call_filter0 >/dev/null || {
@@ -71,9 +70,9 @@ EOT
# If dtmfmode is set to the obsolete compatability change to auto
sed -i 's/dtmfmode\s*=\s*compatibility/dtmfmode=auto/' /etc/asterisk/sip.conf
if [ "$(uci get voice_client.SIP.dtmfmode)" == "compatibility" ]; then
uci set voice_client.SIP.dtmfmode="auto"
uci commit voice_client
if [ $(uci get voice_client.SIP.dtmfmode) == 'compatibility' ]; then
uci set voice_client.SIP.dtmfmode='auto'
uci commit
fi
exit 0

View File

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wifilife
PKG_VERSION:=1.0.3
PKG_VERSION:=1.0.2
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=c5a0776ec6798175bb7a03d68006c9bab4971a7f
PKG_SOURCE_VERSION:=de6183cda406fbd1a98779bda2ea1b2ffb8f2e04
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
ifeq ($(CONFIG_WIFILIFE_OPEN),y)
@@ -52,8 +52,10 @@ TARGET_CFLAGS += \
MAKE_PATH:=src
define Package/wifilife/install
$(INSTALL_DIR) $(1)/etc
$(CP) -r ./files/* $(1)/
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/wifilife.init $(1)/etc/init.d/wifilife
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/etc/uci-defaults/* $(1)/etc/uci-defaults/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/wifiagent $(1)/usr/sbin/
endef

View File

@@ -1,67 +0,0 @@
#!/bin/sh
. /lib/functions/mbid.sh
remove_mbid_rules() {
old_rules="$(cat "/tmp/mbid_rules" 2>/dev/null)"
IFS=$'\n'
for old_rule in $old_rules; do
old_rule=${old_rule/-A /-D }
eval $old_rule 2>/dev/null
done
rm /tmp/mbid_rules
}
# read firewall parental rules and add repeated addresses
append_mbid_rules() {
[ "$(uci -q get owsd.ubusproxy.enable)" == "1" ] || return
octets=$(get_octets)
mobid=$(get_mobid)
[ -z "$mobid" -o -z "$octets" ] && return
rule=""
oct2="$(echo $mobid | awk '{print $1}')"
oct3="$(echo $mobid | awk '{print $2}')"
rules="$(cat /tmp/fw3.rules.ipv4 | grep -i forward | grep -i "\-\-mac\-source")"
[ -z "$rules" ] && return
IFS=$'\n'
for rule in $rules; do
chain="$(echo $rule | awk '{print tolower($5)}')"
[ -z "$chain" -o "$chain" != "forward" ] && continue
# delete rule, replace --append with --delete
del_rule=${rule/-A /-D }
while [ -z "$(eval "$del_rule" 2>&1)" ]; do
:
done
mac=$(echo $rule | awk '{print $9}')
# re-append rule
eval $rule
rpt_macs=$(repeated_macs $octets $oct2 $oct3 $mac | awk '{print toupper($0)}')
> /tmp/mbid_rules
for rpt_mac in $rpt_macs; do
[ -z "$rpt_mac" ] && continue
rpt_rule=${rule/$mac/$rpt_mac}
del_rule=${rpt_rule/-A /-D }
while [ -z "$(eval "$del_rule" 2>&1)" ]; do
:
done
eval $rpt_rule
echo $rpt_rule >> /tmp/mbid_rules
done
done
}
while [ -f /tmp/mbid.lock ]; do
sleep 2
done
touch /tmp/mbid.lock
remove_mbid_rules
append_mbid_rules
rm /tmp/mbid.lock

View File

@@ -1,21 +0,0 @@
{
"if" : [
{
"event": "ubus.object.add",
"regex": true,
"match": {
"path":".*\/wifi\\.agent"
}
}
],
"then" : [
{
"object": "file",
"method":"exec",
"args": {
"command": "sh",
"params": ["/etc/firewall.mbid"]
}
}
]
}

View File

@@ -18,27 +18,5 @@ add_dnsmasq_lease_hwmask() {
fi
}
add_firewall_mbid() {
local ubusx="$(uci -q get owsd.ubusproxy.enable)"
if [ -f /etc/firewall.mbid ]; then
uci -q get firewall.mbid || {
uci -q set firewall.mbid=include
uci -q set firewall.mbid.path="/etc/firewall.mbid"
uci -q set firewall.mbid.reload=1
uci del_list firewall.mbid._access_w=root
uci add_list firewall.mbid._access_w=root
uci commit firewall
}
fi
}
add_ruleng_section() {
uci -q add ruleng rule
uci -q set ruleng.@rule[-1].recipe='/etc/ruleng/mbid.json'
uci commit ruleng
}
add_owsd_object_wifi
add_dnsmasq_lease_hwmask
add_firewall_mbid
add_ruleng_section

View File

@@ -1,147 +0,0 @@
#!/bin/sh /etc/rc.common
. /usr/share/libubox/jshn.sh
. /lib/functions.sh
mobid_cb() {
local device mobility_domain
config_get device $1 device
[ "$device" != "$2" ] && return;
config_get mobility_domain $1 mobility_domain
echo "$mobility_domain"
}
_get_mobid() {
vif=$1
config_load wireless
mobid="$(config_foreach mobid_cb wifi-iface $vif)"
echo $mobid
}
repeated_macs() {
octets=$1
oct2=$2
oct3=$3
mac=$4
macs=""
oct456=${mac:9}
[ -z "$octets" -o -z "$oct2" -o -z "$oct3" -o -z "$mac" -o -z "$oct456" ] && return
IFS=$' '
for oct1 in $octets; do
macs="$oct1:$oct2:$oct3:$oct456 $macs"
done
echo "$macs"
}
# transform a mac address to all possibly repeated - recommended when parsing one or few MACs
mac_to_repeated() {
mac=$1
octets=""
oct2=""
oct3=""
octets=$(get_octets)
mobid=$(get_mobid)
[ -z "$mobid" -o -z "$octets" ] && return
oct2="$(echo $mobid | awk '{print $1}')"
oct3="$(echo $mobid | awk '{print $2}')"
echo "$(repeated_macs $octets $oct2 $oct3 $mac)"
}
assocl_match_mac() {
mac=$1
res="$(ubus call wifix assoclist 2>/dev/null)"
json_load "$res"
json_select assoclist 2>/dev/null
json_get_keys keys
IFS=$' '
for key in $keys; do
json_select $key 2>/dev/null
json_get_var macaddr macaddr
json_select ..
[ "$macaddr" = "$mac" ] || continue
octet=$(echo $macaddr | cut -c1-2)
echo "$octet"
done
}
get_octet() {
ip=$1
res="$(ubus call router.net arp 2>/dev/null)"
json_load "$res"
json_select table 2>/dev/null
json_get_keys keys
IFS=$' '
for key in $keys; do
json_select $key 2>/dev/null
json_get_var ipaddr ipaddr
json_get_var macaddr macaddr
json_select ..
[ "$ipaddr" = "$ip" ] || continue
echo "$(assocl_match_mac $macaddr)"
done
}
# only get all first octets - use when parsing several MACS
get_octets() {
octets=""
assoclist=""
neighbors=""
objects=$(ubus list | grep -E '.*\/wifix$')
[ -z "$objects" ] && return
for obj in $objects; do
ip=$(echo $obj | cut -d'/' -f1)
octet="$(get_octet $ip)"
[ "$octets" != "${octets/$octet/}" ] && continue
octets="$octet $octets"
done
echo "$octets"
}
# get only mobid - use when parsing several MACS
get_mobid() {
mobid="500"
radios="$(ubus -t1 call wifix radios 2>/dev/null)"
[ -z "$radios" ] && return
json_load "$radios"
json_get_keys keys
IFS=$' '
for key in $keys; do
val="$(_get_mobid $key)"
[ -n "$val" ] && mobid=$val;
done
mobid=$(printf "%04x" $mobid)
# if little endian
if [ "$(echo -n I | hexdump -o | awk '{ print substr($2,6,1); exit}')" = "1" ]; then
oct2=${mobid:2}
oct3=${mobid%??}
else
oct2=${mobid%??}
oct3=${mobid:2}
fi
echo "$oct2 $oct3"
}

View File

@@ -9,8 +9,6 @@ EXTRA_COMMANDS="enable_check"
start_service() {
[ "$(uci -q get wifilife.@wifilife[0].enabled)" == "0" ] && return
procd_open_instance
procd_set_param command ${PROG} -d -l -f -o /tmp/wifiagent.log
procd_set_param respawn

View File

@@ -8,7 +8,7 @@ PKG_NAME:=wifimngr
PKG_VERSION:=1.0.2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=5ab0a61b2d8dc34be0e0053670a13876e648f94b
PKG_SOURCE_VERSION:=1de666d20954b818c075c9166a005d1ae13526d6
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wifimngr.git
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>