Initial check-in

This commit is contained in:
Diederik de Groot
2017-11-13 01:43:48 +01:00
commit 82b5aadc13
1623 changed files with 350739 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
*.pyc
env/
*~
*.bak
.requirements_satisfied

7
.travis.yml Normal file
View File

@@ -0,0 +1,7 @@
language: python
install: make bootstrap
script: make
branches:
except:
- /^v[0-9]/
#after_success: coveralls

22
Makefile Normal file
View File

@@ -0,0 +1,22 @@
SHELL := /usr/bin/env bash
PIP := /usr/bin/env pip
PYTHON := /usr/bin/env python
.PHONY: bootstrap clean
.DEFAULT_GOAL := all
all: .requirements_satisfied
@$(PYTHON) generate.py
bootstrap:
@$(PIP) install --user -r requirements.txt
.requirements_satisfied:
$(MAKE) bootstrap
@touch $@
clean:
@find . -type f -name '*.pyc' -delete
@find . -type f -name '*~' -delete
@find . -type f -name '*.bak' -delete
@find . -type f -name '.requirements_satisfied' -delete

1
README.md Normal file
View File

@@ -0,0 +1 @@
https://software.cisco.com/download/navigator.html?mdfid=286037605

26
config.json Normal file
View File

@@ -0,0 +1,26 @@
{
"basedir": "/",
"os": "debian",
"pbx": {
"ip": "10.1.2.3",
"port": 2000
},
"generate_config": [
"dhcpd",
"nginx",
"apache",
"tftpd-hpa",
"inetd.d",
"xinetd.d",
"init.d"
],
"generate_xml": [
"ringlist"
],
"install": [
"nginx",
"tftpd-hpa",
"init.d",
"tftpboot"
]
}

View File

@@ -0,0 +1,29 @@
rewrite ^(APP6901SCCP.9-2-1-a.zz.sgn|KNL6901SCCP.9-2-1-a.zz.sgn|SCCP6901.9-2-1-a.loads)$ /firmware/6901/$1
rewrite ^(APP6911SCCP.9-2-1-a.zz.sgn|BFS6911SCCP.9-2-1-a.zz.sgn|KNL6911SCCP.9-2-1-a.zz.sgn|SCCP6911.9-2-1-a.loads)$ /firmware/6911/$1
rewrite ^CP7902080002SCCP060817A.sbin$ /firmware/7902/$1
rewrite ^CP7905080003SCCP070409A.(sbin|zup)$ /firmware/7905/$1
rewrite ^P00405000700.(bin|sbn)$ /firmware/7910/$1
rewrite ^B015-1-0-4.SBN$ /firmware/7915/$1
rewrite ^(APPSS-1.4.1SR1.SBN|CP7926G-1.4.1SR1.LOADS|EA15FW-BF3-220.SBN|GUIS-1.4.1SR1.SBN|J(SYSS-1.4.1SR1.SBN|UIS-1.4.1SR1.SBN)|SYSS-1.4.1SR1.SBN|TNUX(RS-1.4.1SR1.SBN|S-1.4.1SR1.SBN)|WLANS-1.4.1SR1.SBN)$ /firmware/7926/$1
rewrite ^(apps31.9-2-1TH1-13.sbn|c(nu31.9-2-1TH1-13.sbn|vm31sccp.9-2-1TH1-13.sbn)|dsp31.9-2-1TH1-13.sbn|jar31sccp.9-2-1TH1-13.sbn|SCCP31.9-2-1S.loads|term31.default.loads)$ /firmware/7931/$1
rewrite ^P00503021900.bin$ /firmware/7935/$1
rewrite ^cmterm_7936.3-3-21-0.bin$ /firmware/7936/$1
rewrite ^(BOOT69xx.0-0-0-14.zz.sgn|DSP69xx.12-4-123-2.160119.zz.sgn|SCCP69xx.9-4-1-3SR3.(loads|zz.sgn))$ /firmware/6921/$1
rewrite ^SCCP6945.9-3-1-3.(bin(1.sgn|2.sgn|3.sgn|4.sgn)|loads)$ /firmware/6945/$1
rewrite ^(BOOT69xx.0-0-0-14.zz.sgn|DSP69xx.0-0-0-11-124120.zz.sgn|SCCP69xx.9-3-1-3.(loads|zz.sgn))$ /firmware/69xx/$1
rewrite ^CP7912080004SCCP080108A.sbin$ /firmware/7912/$1
rewrite ^B016-1-0-4.SBN$ /firmware/7916/$1
rewrite ^cmterm_7920.4.0-03-02.bin$ /firmware/7920/$1
rewrite ^apps37sccp.1-4-5-7.bin$ /firmware/7937/$1
rewrite ^(apps75.9-3-1ES8.sbn|c(nu75.9-3-1ES8.sbn|vm75sccp.9-3-1ES8.sbn)|dsp75.9-3-1ES8.sbn|jar75sccp.9-3-1ES8.sbn|SCCP75.9-3-1SR1-1S.loads|term75.default.loads)$ /firmware/7975/$1
rewrite ^cmterm_7985.4-1-7-0.bin$ /firmware/7985/$1
rewrite ^(BOOT894x.0-0-2-0.bin.sgn|SCCP894x.9-4-2SR1-2.(bin(1.sgn|2.sgn|3.sgn|4.sgn|5.sgn|6.sgn|7.sgn|8.sgn|9.sgn)|loads))$ /firmware/894x/$1
rewrite ^(apps11.9-1-1TH1-16.sbn|c(nu11.9-1-1TH1-16.sbn|vm11sccp.9-1-1TH1-16.sbn)|dsp11.9-1-1TH1-16.sbn|jar11sccp.9-1-1TH1-16.sbn|SCCP11.9-1-1SR1S.loads|term(06.default.loads|11.default.loads))$ /firmware/7906_7911/$1
rewrite ^(APPS-1.4.3.4.SBN|CP7921G-1.4.3.4.LOADS|GUI-1.4.3.4.SBN|SYS-1.4.3.4.SBN|TNUX(-1.4.3.4.SBN|R-1.4.3.4.SBN)|WLAN-1.4.3.4.SBN)$ /firmware/7921_7925/$1
rewrite ^P0030801SR01.(sb[2n]|bin|loads)$ /firmware/7940_7960/$1
rewrite ^(apps41.9-3-1ES8.sbn|c(nu41.9-3-1ES8.sbn|vm41sccp.9-3-1ES8.sbn)|dsp41.9-3-1ES8.sbn|jar41sccp.9-3-1ES8.sbn|SCCP41.9-3-1SR1-1S.loads|term(41.default.loads|61.default.loads))$ /firmware/7941_7961/$1
rewrite ^(apps42.9-4-2ES26.sbn|c(nu42.9-4-2ES26.sbn|vm42sccp.9-4-2ES26.sbn)|dsp42.9-4-2ES26.sbn|jar42sccp.9-4-2ES26.sbn|SCCP42.9-4-2SR3-1S.loads|term(42.default.loads|62.default.loads))$ /firmware/7942_7962/$1
rewrite ^(apps45.9-3-1ES8.sbn|c(nu45.9-3-1ES8.sbn|vm45sccp.9-3-1ES8.sbn)|dsp45.9-3-1ES8.sbn|jar45sccp.9-3-1ES8.sbn|SCCP45.9-3-1SR1-1S.loads|term(45.default.loads|65.default.loads))$ /firmware/7945_7965/$1
rewrite ^(apps70.9-3-1ES8.sbn|c(nu70.9-3-1ES8.sbn|vm70sccp.9-3-1ES8.sbn)|dsp70.9-3-1ES8.sbn|jar70sccp.9-3-1ES8.sbn|SCCP70.9-3-1SR1-1S.loads|term7(0.default.loads|1.default.loads))$ /firmware/7970_7971/$1
rewrite ^ATA030204SCCP090202A.zup$ /firmware/ata186/$1
rewrite ^ATA030204SCCP090202A.zup$ /firmware/ata188/$1

View File

@@ -0,0 +1,222 @@
server {
listen 6970;
server_name tftp.servername.org;
#root /tftpboot;
root /data/development/sccp/sources/tftp/tftpboot;
index XMLDefault.cnf.xml;
# Normal Logging
access_log /var/log/nginx/tftp.access.log;
error_log /var/log/nginx/tftp.error.log;
# Debug Rewrite Rules
#rewrite_log on;
#access_log /var/log/nginx/tftp.access.log;
#error_log /var/log/nginx/tftp.error.log notice;
location / {
rewrite ^/((.*).cnf.xml)$ /settings/$1 last;
rewrite ^/((.*).(bin|bin.|loads|LOADS|sbn|SBN|sb2|sbin|zz|zup)(|.sgn))$ /firmware/$1;
rewrite ^/(RINGLIST|RingList|Ringlist|ringlist).(xml|XML)$ /ringtones/ringlist.xml;
try_files $uri $uri/ =404;
autoindex off;
}
# settings
location /settings {
try_files $uri $uri/ =404;
autoindex off;
}
# firmware
location /firmware {
# 6901 firmware (java-based)
rewrite ^/firmware/(APP6901SCCP.+\.sgn)$ /firmware/6901/$1 last;
rewrite ^/firmware/(KNL6901SCCP.+\.sgn)$ /firmware/6901/$1 last;
rewrite ^/firmware/(SCCP6901.+\.loads)$ /firmware/6901/$1 last;
# 6911 firmware (java-based)
rewrite ^/firmware/(APP6911SCCP.+\.sgn)$ /firmware/6911/$1 last;
rewrite ^/firmware/(BFS6911SCCP.+\.sgn)$ /firmware/6911/$1 last;
rewrite ^/firmware/(KNL6911SCCP.+\.sgn)$ /firmware/6911/$1 last;
rewrite ^/firmware/(SCCP6911.+\.loads)$ /firmware/6911/$1 last;
# 6921 firmware (java-based)
rewrite ^/firmware/(BOOT69xx.+\.sgn)$ /firmware/6921/$1 last;
rewrite ^/firmware/(DSP69xx.+\.sgn)$ /firmware/6921/$1 last;
rewrite ^/firmware/(SCCP69xx.+\.loads)$ /firmware/6921/$1 last;
rewrite ^/firmware/(SCCP69xx.+\.sgn)$ /firmware/6921/$1 last;
# 6945 firmware (java-based)
rewrite ^/firmware/(SCCP6945.+\.sgn)$ /firmware/6945/$1 last;
rewrite ^/firmware/(SCCP6945.+\.loads)$ /firmware/6945/$1 last;
# 69xx firmware (java-based)
rewrite ^/firmware/(BOOT69xx.+\.sgn)$ /firmware/69xx/$1 last;
rewrite ^/firmware/(DSP69xx.+\.sgn)$ /firmware/69xx/$1 last;
rewrite ^/firmware/(SCCP69xx.+\.loads)$ /firmware/69xx/$1 last;
rewrite ^/firmware/(SCCP69xx.+\.sgn)$ /firmware/69xx/$1 last;
# 7902 firmware (ancient)
rewrite ^/firmware/(CP7902080002SCCP060817A.sbin)$ /firmware/7902/$1 last;
# 7905 firmware (ancient)
rewrite ^/firmware/(CP7905080003SCCP070409A.sbin)$ /firmware/7905/$1 last;
rewrite ^/firmware/(CP7905080003SCCP070409A.zup)$ /firmware/7905/$1 last;
# 7906_7911 firmware (java-based)
rewrite ^/firmware/(apps11.+\.sbn)$ /firmware/7906_7911/$1 last;
rewrite ^/firmware/(cnu11.+\.sbn)$ /firmware/7906_7911/$1 last;
rewrite ^/firmware/(cvm11sccp.+\.sbn)$ /firmware/7906_7911/$1 last;
rewrite ^/firmware/(dsp11.+\.sbn)$ /firmware/7906_7911/$1 last;
rewrite ^/firmware/(jar11sccp.+\.sbn)$ /firmware/7906_7911/$1 last;
rewrite ^/firmware/(SCCP11.+\.loads)$ /firmware/7906_7911/$1 last;
rewrite ^/firmware/(term06.+\.loads)$ /firmware/7906_7911/$1 last;
rewrite ^/firmware/(term11.+\.loads)$ /firmware/7906_7911/$1 last;
# 7910 firmware (ancient)
rewrite ^/firmware/(P00405000700.bin)$ /firmware/7910/$1 last;
rewrite ^/firmware/(P00405000700.sbn)$ /firmware/7910/$1 last;
# 7912 firmware (ancient)
rewrite ^/firmware/(CP7912080004SCCP080108A.sbin)$ /firmware/7912/$1 last;
# 7915 firmware (ancient)
rewrite ^/firmware/(B015-1-0-4.SBN)$ /firmware/7915/$1 last;
# 7916 firmware (ancient)
rewrite ^/firmware/(B016-1-0-4.SBN)$ /firmware/7916/$1 last;
# 7920 firmware (ancient)
rewrite ^/firmware/(cmterm_7920.4.0-03-02.bin)$ /firmware/7920/$1 last;
# 7921_7925 firmware (ancient)
rewrite ^/firmware/(APPS-1.4.3.4.SBN)$ /firmware/7921_7925/$1 last;
rewrite ^/firmware/(CP7921G-1.4.3.4.LOADS)$ /firmware/7921_7925/$1 last;
rewrite ^/firmware/(GUI-1.4.3.4.SBN)$ /firmware/7921_7925/$1 last;
rewrite ^/firmware/(SYS-1.4.3.4.SBN)$ /firmware/7921_7925/$1 last;
rewrite ^/firmware/(TNUX-1.4.3.4.SBN)$ /firmware/7921_7925/$1 last;
rewrite ^/firmware/(TNUXR-1.4.3.4.SBN)$ /firmware/7921_7925/$1 last;
rewrite ^/firmware/(WLAN-1.4.3.4.SBN)$ /firmware/7921_7925/$1 last;
# 7926 firmware (ancient)
rewrite ^/firmware/(APPSS-1.4.1SR1.SBN)$ /firmware/7926/$1 last;
rewrite ^/firmware/(CP7926G-1.4.1SR1.LOADS)$ /firmware/7926/$1 last;
rewrite ^/firmware/(EA15FW-BF3-220.SBN)$ /firmware/7926/$1 last;
rewrite ^/firmware/(GUIS-1.4.1SR1.SBN)$ /firmware/7926/$1 last;
rewrite ^/firmware/(JSYSS-1.4.1SR1.SBN)$ /firmware/7926/$1 last;
rewrite ^/firmware/(JUIS-1.4.1SR1.SBN)$ /firmware/7926/$1 last;
rewrite ^/firmware/(SYSS-1.4.1SR1.SBN)$ /firmware/7926/$1 last;
rewrite ^/firmware/(TNUXRS-1.4.1SR1.SBN)$ /firmware/7926/$1 last;
rewrite ^/firmware/(TNUXS-1.4.1SR1.SBN)$ /firmware/7926/$1 last;
rewrite ^/firmware/(WLANS-1.4.1SR1.SBN)$ /firmware/7926/$1 last;
# 7931 firmware (java-based)
rewrite ^/firmware/(apps31.+\.sbn)$ /firmware/7931/$1 last;
rewrite ^/firmware/(cnu31.+\.sbn)$ /firmware/7931/$1 last;
rewrite ^/firmware/(cvm31sccp.+\.sbn)$ /firmware/7931/$1 last;
rewrite ^/firmware/(dsp31.+\.sbn)$ /firmware/7931/$1 last;
rewrite ^/firmware/(jar31sccp.+\.sbn)$ /firmware/7931/$1 last;
rewrite ^/firmware/(SCCP31.+\.loads)$ /firmware/7931/$1 last;
rewrite ^/firmware/(term31.+\.loads)$ /firmware/7931/$1 last;
# 7935 firmware (ancient)
rewrite ^/firmware/(P00503021900.bin)$ /firmware/7935/$1 last;
# 7936 firmware (ancient)
rewrite ^/firmware/(cmterm_7936.3-3-21-0.bin)$ /firmware/7936/$1 last;
# 7937 firmware (ancient)
rewrite ^/firmware/(apps37sccp.1-4-5-7.bin)$ /firmware/7937/$1 last;
# 7940_7960 firmware (ancient)
rewrite ^/firmware/(P0030801SR01.bin)$ /firmware/7940_7960/$1 last;
rewrite ^/firmware/(P0030801SR01.loads)$ /firmware/7940_7960/$1 last;
rewrite ^/firmware/(P0030801SR01.sb2)$ /firmware/7940_7960/$1 last;
rewrite ^/firmware/(P0030801SR01.sbn)$ /firmware/7940_7960/$1 last;
# 7941_7961 firmware (java-based)
rewrite ^/firmware/(apps41.+\.sbn)$ /firmware/7941_7961/$1 last;
rewrite ^/firmware/(cnu41.+\.sbn)$ /firmware/7941_7961/$1 last;
rewrite ^/firmware/(cvm41sccp.+\.sbn)$ /firmware/7941_7961/$1 last;
rewrite ^/firmware/(dsp41.+\.sbn)$ /firmware/7941_7961/$1 last;
rewrite ^/firmware/(jar41sccp.+\.sbn)$ /firmware/7941_7961/$1 last;
rewrite ^/firmware/(SCCP41.+\.loads)$ /firmware/7941_7961/$1 last;
rewrite ^/firmware/(term41.+\.loads)$ /firmware/7941_7961/$1 last;
rewrite ^/firmware/(term61.+\.loads)$ /firmware/7941_7961/$1 last;
# 7942_7962 firmware (java-based)
rewrite ^/firmware/(apps42.+\.sbn)$ /firmware/7942_7962/$1 last;
rewrite ^/firmware/(cnu42.+\.sbn)$ /firmware/7942_7962/$1 last;
rewrite ^/firmware/(cvm42sccp.+\.sbn)$ /firmware/7942_7962/$1 last;
rewrite ^/firmware/(dsp42.+\.sbn)$ /firmware/7942_7962/$1 last;
rewrite ^/firmware/(jar42sccp.+\.sbn)$ /firmware/7942_7962/$1 last;
rewrite ^/firmware/(SCCP42.+\.loads)$ /firmware/7942_7962/$1 last;
rewrite ^/firmware/(term42.+\.loads)$ /firmware/7942_7962/$1 last;
rewrite ^/firmware/(term62.+\.loads)$ /firmware/7942_7962/$1 last;
# 7945_7965 firmware (java-based)
rewrite ^/firmware/(apps45.+\.sbn)$ /firmware/7945_7965/$1 last;
rewrite ^/firmware/(cnu45.+\.sbn)$ /firmware/7945_7965/$1 last;
rewrite ^/firmware/(cvm45sccp.+\.sbn)$ /firmware/7945_7965/$1 last;
rewrite ^/firmware/(dsp45.+\.sbn)$ /firmware/7945_7965/$1 last;
rewrite ^/firmware/(jar45sccp.+\.sbn)$ /firmware/7945_7965/$1 last;
rewrite ^/firmware/(SCCP45.+\.loads)$ /firmware/7945_7965/$1 last;
rewrite ^/firmware/(term45.+\.loads)$ /firmware/7945_7965/$1 last;
rewrite ^/firmware/(term65.+\.loads)$ /firmware/7945_7965/$1 last;
# 7970_7971 firmware (java-based)
rewrite ^/firmware/(apps70.+\.sbn)$ /firmware/7970_7971/$1 last;
rewrite ^/firmware/(cnu70.+\.sbn)$ /firmware/7970_7971/$1 last;
rewrite ^/firmware/(cvm70sccp.+\.sbn)$ /firmware/7970_7971/$1 last;
rewrite ^/firmware/(dsp70.+\.sbn)$ /firmware/7970_7971/$1 last;
rewrite ^/firmware/(jar70sccp.+\.sbn)$ /firmware/7970_7971/$1 last;
rewrite ^/firmware/(SCCP70.+\.loads)$ /firmware/7970_7971/$1 last;
rewrite ^/firmware/(term70.+\.loads)$ /firmware/7970_7971/$1 last;
rewrite ^/firmware/(term71.+\.loads)$ /firmware/7970_7971/$1 last;
# 7975 firmware (java-based)
rewrite ^/firmware/(apps75.+\.sbn)$ /firmware/7975/$1 last;
rewrite ^/firmware/(cnu75.+\.sbn)$ /firmware/7975/$1 last;
rewrite ^/firmware/(cvm75sccp.+\.sbn)$ /firmware/7975/$1 last;
rewrite ^/firmware/(dsp75.+\.sbn)$ /firmware/7975/$1 last;
rewrite ^/firmware/(jar75sccp.+\.sbn)$ /firmware/7975/$1 last;
rewrite ^/firmware/(SCCP75.+\.loads)$ /firmware/7975/$1 last;
rewrite ^/firmware/(term75.+\.loads)$ /firmware/7975/$1 last;
# 7985 firmware (ancient)
rewrite ^/firmware/(cmterm_7985.4-1-7-0.bin)$ /firmware/7985/$1 last;
# 894x firmware (java-based)
rewrite ^/firmware/(BOOT894x.+\.sgn)$ /firmware/894x/$1 last;
rewrite ^/firmware/(SCCP894x.+\.sgn)$ /firmware/894x/$1 last;
rewrite ^/firmware/(SCCP894x.+\.loads)$ /firmware/894x/$1 last;
# ata186 firmware (ancient)
rewrite ^/firmware/(ATA030204SCCP090202A.zup)$ /firmware/ata186/$1 last;
# ata188 firmware (ancient)
rewrite ^/firmware/(ATA030204SCCP090202A.zup)$ /firmware/ata188/$1 last;
try_files $uri $uri/ =404;
autoindex off;
}
# ringtones
location /ringtones/(.*).(xml|raw|pcm) {
try_files ringtones/$uri ringtones/$uri/ =404;
autoindex off;
}
# Deny access to .htaccess
location ~ /\.ht {
deny all;
}
error_page 404 /;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

197
etc/tftpd-hpa/rewrite.rules Normal file
View File

@@ -0,0 +1,197 @@
# 6901 firmware (java-based)
ri ^(APP6901SCCP)(.+\.sgn)$ firmware/6901/\1\2
ri ^(KNL6901SCCP)(.+\.sgn)$ firmware/6901/\1\2
ri ^(SCCP6901)(.+\.loads)$ firmware/6901/\1\2
# 6911 firmware (java-based)
ri ^(APP6911SCCP)(.+\.sgn)$ firmware/6911/\1\2
ri ^(BFS6911SCCP)(.+\.sgn)$ firmware/6911/\1\2
ri ^(KNL6911SCCP)(.+\.sgn)$ firmware/6911/\1\2
ri ^(SCCP6911)(.+\.loads)$ firmware/6911/\1\2
# 6921 firmware (java-based)
ri ^(BOOT69xx)(.+\.sgn)$ firmware/6921/\1\2
ri ^(DSP69xx)(.+\.sgn)$ firmware/6921/\1\2
ri ^(SCCP69xx)(.+\.loads)$ firmware/6921/\1\2
ri ^(SCCP69xx)(.+\.sgn)$ firmware/6921/\1\2
# 6945 firmware (java-based)
ri ^(SCCP6945)(.+\.sgn)$ firmware/6945/\1\2
ri ^(SCCP6945)(.+\.loads)$ firmware/6945/\1\2
# 69xx firmware (java-based)
ri ^(BOOT69xx)(.+\.sgn)$ firmware/69xx/\1\2
ri ^(DSP69xx)(.+\.sgn)$ firmware/69xx/\1\2
ri ^(SCCP69xx)(.+\.loads)$ firmware/69xx/\1\2
ri ^(SCCP69xx)(.+\.sgn)$ firmware/69xx/\1\2
# 7902 firmware (ancient)
ri ^(CP7902080002SCCP060817A.sbin)$ firmware/7902/\1
# 7905 firmware (ancient)
ri ^(CP7905080003SCCP070409A.sbin)$ firmware/7905/\1
ri ^(CP7905080003SCCP070409A.zup)$ firmware/7905/\1
# 7906_7911 firmware (java-based)
ri ^(apps11)(.+\.sbn)$ firmware/7906_7911/\1\2
ri ^(cnu11)(.+\.sbn)$ firmware/7906_7911/\1\2
ri ^(cvm11sccp)(.+\.sbn)$ firmware/7906_7911/\1\2
ri ^(dsp11)(.+\.sbn)$ firmware/7906_7911/\1\2
ri ^(jar11sccp)(.+\.sbn)$ firmware/7906_7911/\1\2
ri ^(SCCP11)(.+\.loads)$ firmware/7906_7911/\1\2
ri ^(term06)(.+\.loads)$ firmware/7906_7911/\1\2
ri ^(term11)(.+\.loads)$ firmware/7906_7911/\1\2
# 7910 firmware (ancient)
ri ^(P00405000700.bin)$ firmware/7910/\1
ri ^(P00405000700.sbn)$ firmware/7910/\1
# 7912 firmware (ancient)
ri ^(CP7912080004SCCP080108A.sbin)$ firmware/7912/\1
# 7915 firmware (ancient)
ri ^(B015-1-0-4.SBN)$ firmware/7915/\1
# 7916 firmware (ancient)
ri ^(B016-1-0-4.SBN)$ firmware/7916/\1
# 7920 firmware (ancient)
ri ^(cmterm_7920.4.0-03-02.bin)$ firmware/7920/\1
# 7921_7925 firmware (ancient)
ri ^(APPS-1.4.3.4.SBN)$ firmware/7921_7925/\1
ri ^(CP7921G-1.4.3.4.LOADS)$ firmware/7921_7925/\1
ri ^(GUI-1.4.3.4.SBN)$ firmware/7921_7925/\1
ri ^(SYS-1.4.3.4.SBN)$ firmware/7921_7925/\1
ri ^(TNUX-1.4.3.4.SBN)$ firmware/7921_7925/\1
ri ^(TNUXR-1.4.3.4.SBN)$ firmware/7921_7925/\1
ri ^(WLAN-1.4.3.4.SBN)$ firmware/7921_7925/\1
# 7926 firmware (ancient)
ri ^(APPSS-1.4.1SR1.SBN)$ firmware/7926/\1
ri ^(CP7926G-1.4.1SR1.LOADS)$ firmware/7926/\1
ri ^(EA15FW-BF3-220.SBN)$ firmware/7926/\1
ri ^(GUIS-1.4.1SR1.SBN)$ firmware/7926/\1
ri ^(JSYSS-1.4.1SR1.SBN)$ firmware/7926/\1
ri ^(JUIS-1.4.1SR1.SBN)$ firmware/7926/\1
ri ^(SYSS-1.4.1SR1.SBN)$ firmware/7926/\1
ri ^(TNUXRS-1.4.1SR1.SBN)$ firmware/7926/\1
ri ^(TNUXS-1.4.1SR1.SBN)$ firmware/7926/\1
ri ^(WLANS-1.4.1SR1.SBN)$ firmware/7926/\1
# 7931 firmware (java-based)
ri ^(apps31)(.+\.sbn)$ firmware/7931/\1\2
ri ^(cnu31)(.+\.sbn)$ firmware/7931/\1\2
ri ^(cvm31sccp)(.+\.sbn)$ firmware/7931/\1\2
ri ^(dsp31)(.+\.sbn)$ firmware/7931/\1\2
ri ^(jar31sccp)(.+\.sbn)$ firmware/7931/\1\2
ri ^(SCCP31)(.+\.loads)$ firmware/7931/\1\2
ri ^(term31)(.+\.loads)$ firmware/7931/\1\2
# 7935 firmware (ancient)
ri ^(P00503021900.bin)$ firmware/7935/\1
# 7936 firmware (ancient)
ri ^(cmterm_7936.3-3-21-0.bin)$ firmware/7936/\1
# 7937 firmware (ancient)
ri ^(apps37sccp.1-4-5-7.bin)$ firmware/7937/\1
# 7940_7960 firmware (ancient)
ri ^(P0030801SR01.bin)$ firmware/7940_7960/\1
ri ^(P0030801SR01.loads)$ firmware/7940_7960/\1
ri ^(P0030801SR01.sb2)$ firmware/7940_7960/\1
ri ^(P0030801SR01.sbn)$ firmware/7940_7960/\1
# 7941_7961 firmware (java-based)
ri ^(apps41)(.+\.sbn)$ firmware/7941_7961/\1\2
ri ^(cnu41)(.+\.sbn)$ firmware/7941_7961/\1\2
ri ^(cvm41sccp)(.+\.sbn)$ firmware/7941_7961/\1\2
ri ^(dsp41)(.+\.sbn)$ firmware/7941_7961/\1\2
ri ^(jar41sccp)(.+\.sbn)$ firmware/7941_7961/\1\2
ri ^(SCCP41)(.+\.loads)$ firmware/7941_7961/\1\2
ri ^(term41)(.+\.loads)$ firmware/7941_7961/\1\2
ri ^(term61)(.+\.loads)$ firmware/7941_7961/\1\2
# 7942_7962 firmware (java-based)
ri ^(apps42)(.+\.sbn)$ firmware/7942_7962/\1\2
ri ^(cnu42)(.+\.sbn)$ firmware/7942_7962/\1\2
ri ^(cvm42sccp)(.+\.sbn)$ firmware/7942_7962/\1\2
ri ^(dsp42)(.+\.sbn)$ firmware/7942_7962/\1\2
ri ^(jar42sccp)(.+\.sbn)$ firmware/7942_7962/\1\2
ri ^(SCCP42)(.+\.loads)$ firmware/7942_7962/\1\2
ri ^(term42)(.+\.loads)$ firmware/7942_7962/\1\2
ri ^(term62)(.+\.loads)$ firmware/7942_7962/\1\2
# 7945_7965 firmware (java-based)
ri ^(apps45)(.+\.sbn)$ firmware/7945_7965/\1\2
ri ^(cnu45)(.+\.sbn)$ firmware/7945_7965/\1\2
ri ^(cvm45sccp)(.+\.sbn)$ firmware/7945_7965/\1\2
ri ^(dsp45)(.+\.sbn)$ firmware/7945_7965/\1\2
ri ^(jar45sccp)(.+\.sbn)$ firmware/7945_7965/\1\2
ri ^(SCCP45)(.+\.loads)$ firmware/7945_7965/\1\2
ri ^(term45)(.+\.loads)$ firmware/7945_7965/\1\2
ri ^(term65)(.+\.loads)$ firmware/7945_7965/\1\2
# 7970_7971 firmware (java-based)
ri ^(apps70)(.+\.sbn)$ firmware/7970_7971/\1\2
ri ^(cnu70)(.+\.sbn)$ firmware/7970_7971/\1\2
ri ^(cvm70sccp)(.+\.sbn)$ firmware/7970_7971/\1\2
ri ^(dsp70)(.+\.sbn)$ firmware/7970_7971/\1\2
ri ^(jar70sccp)(.+\.sbn)$ firmware/7970_7971/\1\2
ri ^(SCCP70)(.+\.loads)$ firmware/7970_7971/\1\2
ri ^(term70)(.+\.loads)$ firmware/7970_7971/\1\2
ri ^(term71)(.+\.loads)$ firmware/7970_7971/\1\2
# 7975 firmware (java-based)
ri ^(apps75)(.+\.sbn)$ firmware/7975/\1\2
ri ^(cnu75)(.+\.sbn)$ firmware/7975/\1\2
ri ^(cvm75sccp)(.+\.sbn)$ firmware/7975/\1\2
ri ^(dsp75)(.+\.sbn)$ firmware/7975/\1\2
ri ^(jar75sccp)(.+\.sbn)$ firmware/7975/\1\2
ri ^(SCCP75)(.+\.loads)$ firmware/7975/\1\2
ri ^(term75)(.+\.loads)$ firmware/7975/\1\2
# 7985 firmware (ancient)
ri ^(cmterm_7985.4-1-7-0.bin)$ firmware/7985/\1
# 894x firmware (java-based)
ri ^(BOOT894x)(.+\.sgn)$ firmware/894x/\1\2
ri ^(SCCP894x)(.+\.sgn)$ firmware/894x/\1\2
ri ^(SCCP894x)(.+\.loads)$ firmware/894x/\1\2
# ata186 firmware (ancient)
ri ^(ATA030204SCCP090202A.zup)$ firmware/ata186/\1
# ata188 firmware (ancient)
ri ^(ATA030204SCCP090202A.zup)$ firmware/ata188/\1
# Keep firmware in a separate directory (optional)
#ri ^(.+\.loads)$ firmware/\1
#ri ^(.+\.sbn)$ firmware/\1
# Keep locales in a separate directory (optional)
ri ^(.+)/(.+-sip.jar)$ locales/\1/\2
ri ^(.+)/(.+-tones.xml)$ locales/\1/\2
# Keep ring-tones in a separate directory (optional)
ri ^(Ringlist)(\.xml|-wb\.xml)(\.sgn)?$ ringtones/\1\2\3
ri ^(.+)(\.raw|\.rwb)(\.sgn)?$ ringtones/\1\2\3
# Rename Desktops to wallpapers (optional)
ri ^Desktops/(.+)/(List\.xml)(\.sgn)?$ wallpapers/\1/\2\3
ri ^Desktops/(.+)/(.+\.png)(\.sgn)?$ wallpapers/\1/\2\3
#
# Generic Rules
#
ri ^[a-z]: # Remove "drive letters"
rg \\ / # Convert backslashes to slashes
rg \# @ # Convert hash marks to @ signs
rg /../ /..no../ # Convert /../ to /..no../
e ^ok/ # These are always ok
r ^[^/] /tftpboot/\0 # Convert non-absolute files
a \.pvt$ # Reject requests for private files

29
etc/tftpd-hpa/tftpd.rules Normal file
View File

@@ -0,0 +1,29 @@
ri ^(APP6901SCCP.9-2-1-a.zz.sgn|KNL6901SCCP.9-2-1-a.zz.sgn|SCCP6901.9-2-1-a.loads)$ /firmware/6901/\1
ri ^(APP6911SCCP.9-2-1-a.zz.sgn|BFS6911SCCP.9-2-1-a.zz.sgn|KNL6911SCCP.9-2-1-a.zz.sgn|SCCP6911.9-2-1-a.loads)$ /firmware/6911/\1
ri ^CP7902080002SCCP060817A.sbin$ /firmware/7902/\1
ri ^CP7905080003SCCP070409A.(sbin|zup)$ /firmware/7905/\1
ri ^P00405000700.(bin|sbn)$ /firmware/7910/\1
ri ^B015-1-0-4.SBN$ /firmware/7915/\1
ri ^(APPSS-1.4.1SR1.SBN|CP7926G-1.4.1SR1.LOADS|EA15FW-BF3-220.SBN|GUIS-1.4.1SR1.SBN|J(SYSS-1.4.1SR1.SBN|UIS-1.4.1SR1.SBN)|SYSS-1.4.1SR1.SBN|TNUX(RS-1.4.1SR1.SBN|S-1.4.1SR1.SBN)|WLANS-1.4.1SR1.SBN)$ /firmware/7926/\1
ri ^(apps31.9-2-1TH1-13.sbn|c(nu31.9-2-1TH1-13.sbn|vm31sccp.9-2-1TH1-13.sbn)|dsp31.9-2-1TH1-13.sbn|jar31sccp.9-2-1TH1-13.sbn|SCCP31.9-2-1S.loads|term31.default.loads)$ /firmware/7931/\1
ri ^P00503021900.bin$ /firmware/7935/\1
ri ^cmterm_7936.3-3-21-0.bin$ /firmware/7936/\1
ri ^(BOOT69xx.0-0-0-14.zz.sgn|DSP69xx.12-4-123-2.160119.zz.sgn|SCCP69xx.9-4-1-3SR3.(loads|zz.sgn))$ /firmware/6921/\1
ri ^SCCP6945.9-3-1-3.(bin(1.sgn|2.sgn|3.sgn|4.sgn)|loads)$ /firmware/6945/\1
ri ^(BOOT69xx.0-0-0-14.zz.sgn|DSP69xx.0-0-0-11-124120.zz.sgn|SCCP69xx.9-3-1-3.(loads|zz.sgn))$ /firmware/69xx/\1
ri ^CP7912080004SCCP080108A.sbin$ /firmware/7912/\1
ri ^B016-1-0-4.SBN$ /firmware/7916/\1
ri ^cmterm_7920.4.0-03-02.bin$ /firmware/7920/\1
ri ^apps37sccp.1-4-5-7.bin$ /firmware/7937/\1
ri ^(apps75.9-3-1ES8.sbn|c(nu75.9-3-1ES8.sbn|vm75sccp.9-3-1ES8.sbn)|dsp75.9-3-1ES8.sbn|jar75sccp.9-3-1ES8.sbn|SCCP75.9-3-1SR1-1S.loads|term75.default.loads)$ /firmware/7975/\1
ri ^cmterm_7985.4-1-7-0.bin$ /firmware/7985/\1
ri ^(BOOT894x.0-0-2-0.bin.sgn|SCCP894x.9-4-2SR1-2.(bin(1.sgn|2.sgn|3.sgn|4.sgn|5.sgn|6.sgn|7.sgn|8.sgn|9.sgn)|loads))$ /firmware/894x/\1
ri ^(apps11.9-1-1TH1-16.sbn|c(nu11.9-1-1TH1-16.sbn|vm11sccp.9-1-1TH1-16.sbn)|dsp11.9-1-1TH1-16.sbn|jar11sccp.9-1-1TH1-16.sbn|SCCP11.9-1-1SR1S.loads|term(06.default.loads|11.default.loads))$ /firmware/7906_7911/\1
ri ^(APPS-1.4.3.4.SBN|CP7921G-1.4.3.4.LOADS|GUI-1.4.3.4.SBN|SYS-1.4.3.4.SBN|TNUX(-1.4.3.4.SBN|R-1.4.3.4.SBN)|WLAN-1.4.3.4.SBN)$ /firmware/7921_7925/\1
ri ^P0030801SR01.(sb[2n]|bin|loads)$ /firmware/7940_7960/\1
ri ^(apps41.9-3-1ES8.sbn|c(nu41.9-3-1ES8.sbn|vm41sccp.9-3-1ES8.sbn)|dsp41.9-3-1ES8.sbn|jar41sccp.9-3-1ES8.sbn|SCCP41.9-3-1SR1-1S.loads|term(41.default.loads|61.default.loads))$ /firmware/7941_7961/\1
ri ^(apps42.9-4-2ES26.sbn|c(nu42.9-4-2ES26.sbn|vm42sccp.9-4-2ES26.sbn)|dsp42.9-4-2ES26.sbn|jar42sccp.9-4-2ES26.sbn|SCCP42.9-4-2SR3-1S.loads|term(42.default.loads|62.default.loads))$ /firmware/7942_7962/\1
ri ^(apps45.9-3-1ES8.sbn|c(nu45.9-3-1ES8.sbn|vm45sccp.9-3-1ES8.sbn)|dsp45.9-3-1ES8.sbn|jar45sccp.9-3-1ES8.sbn|SCCP45.9-3-1SR1-1S.loads|term(45.default.loads|65.default.loads))$ /firmware/7945_7965/\1
ri ^(apps70.9-3-1ES8.sbn|c(nu70.9-3-1ES8.sbn|vm70sccp.9-3-1ES8.sbn)|dsp70.9-3-1ES8.sbn|jar70sccp.9-3-1ES8.sbn|SCCP70.9-3-1SR1-1S.loads|term7(0.default.loads|1.default.loads))$ /firmware/7970_7971/\1
ri ^ATA030204SCCP090202A.zup$ /firmware/ata186/\1
ri ^ATA030204SCCP090202A.zup$ /firmware/ata188/\1

36
generate.py Normal file
View File

@@ -0,0 +1,36 @@
#!/usr/bin/env python
#from __future__ import absolute_import
import json
import os
import hachoir_regex
with open('config.json') as f:
config = json.load(f)
def generate_regex(subdir):
paths = os.listdir(subdir)
as_regex = [hachoir_regex.parse(path) for path in paths]
return reduce(lambda x, y: x | y, as_regex)
def generate_tftpd_rules(regex, dirname, outfile):
if "tftpd-hpa" in config["generate_config"]:
outfile.write("ri ^{}$ /firmware/{}/\\1\n".format(regex, dirname))
def generate_nginx_rules(regex, dirname, outfile):
if "nginx" in config["generate_config"]:
outfile.write("rewrite ^{}$ /firmware/{}/$1\n".format(regex, dirname))
if __name__ == '__main__':
rootdir = "./tftpboot/firmware/"
tftpd_rules = open("etc/tftpd-hpa/tftpd.rules", "w")
nginx_rules = open("etc/nginx/site-available/nginx.rules", "w")
for subdir in next(os.walk(rootdir))[1]:
regex = generate_regex(os.path.join(rootdir, subdir))
generate_tftpd_rules(regex, os.path.basename(subdir), tftpd_rules)
generate_nginx_rules(regex, os.path.basename(subdir), nginx_rules)
tftpd_rules.close();
nginx_rules.close();
#app.debug = os.environ.get('FLASK_DEBUG', True)
#print config.get["scopes"]

1
requirements.txt Normal file
View File

@@ -0,0 +1 @@
hachoir_regex >= 1.0.5

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,7 @@
Release Notes:
P0030801SR02
This release is based on 8.1(2)_SR1, with the following bug fix added:
CSCtg01287 7940/60 Edit dial screen does not display number with + sign

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More