62 Commits

Author SHA1 Message Date
Diederik de Groot
d60e25d120 Fix ringlist
Signed-off-by: Diederik de Groot <dkgroot@talon.nl>
2020-07-15 19:03:22 +02:00
Diederik de Groot
3d1121f2fb Update XMLDefault loadinfo 2020-07-14 17:38:11 +02:00
Diederik de Groot
bc1b251248 Small fixes/cleanup
Signed-off-by: Diederik de Groot <dkgroot@talon.nl>
2020-04-07 12:54:51 +02:00
Diederik de Groot
4559c3fa16 Fix test
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-04-05 10:12:46 +02:00
Diederik de Groot
729dccb7f8 Fix UnitTests
Split ResolveResult from Resolve.php
Split up Device.php

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-22 14:06:33 +01:00
Diederik de Groot
5064cb3e36 Adopted composer autoload way
Split up classes into separate way, to allow autoloader to do it's work

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-22 10:15:31 +01:00
Diederik de Groot
fcf7e52370 Include tests/configTest.php
Add lib/device.php
Fixup lib/resolve.php

Signed-off-by: Diederik de Groot <dkgroot@talon.nl>
2020-03-20 11:23:32 +01:00
Diederik de Groot
3e9f731e9a Make config instantiation private
Fixup Paths
Moved all tests to phpunit tests

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-18 11:57:30 +01:00
Diederik de Groot
c535113c55 Renamed resolver -> resolve
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-18 11:21:48 +01:00
Diederik de Groot
3621e1d6e6 Add composer and phing dependency
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-18 09:05:01 +01:00
Diederik de Groot
822e2e5f90 Remove duplicate .gitkeep file
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-17 12:56:43 +01:00
Diederik de Groot
fcd767d290 Merge pull request #7 from marcelloceschia/feature/redesign
add crypto lib
2020-03-17 12:54:05 +01:00
Diederik de Groot
7d582df212 No Enum class to extend (at the moment) 2020-03-17 12:52:17 +01:00
Diederik de Groot
3151f30a78 Merge branch 'feature/redesign' into feature/redesign 2020-03-17 12:50:50 +01:00
Diederik de Groot
a36f459be2 - renamed tftproot => data
- Added strict_types=1
- Added NameSpaces
- Fixed config::replaceSubdirTreeStructure function
- Fix tftp server

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-17 12:29:06 +01:00
Diederik de Groot
4d0eab9693 Added php-xml to README
Added initial lib/xml.php
Renamed srv/tftp/tftp_provisioner.php -> srv/tftp/tftp_provisioner

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-17 12:29:01 +01:00
Diederik de Groot
3d213e6571 Reorder directory structure
/tftpboot -> /data
/tftpboot/index.php -> /srv/web/index.php
/tftp_provisioner.php -> /srv/tftp/tftp_provisioner.php

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-17 12:28:59 +01:00
Diederik de Groot
e3cea2d17c - Extended tlvfile to include CAPF, SRST and TVS
- Update the tlvfile help text
  - Update TLV Handling. Update index.php error output when no filename is provided. Update gitignore
- Use readfile
- Add .cache folder

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-17 12:18:28 +01:00
Diederik de Groot
4f0043117a - Fixed typo in lib/resolver.php
- Added temporary tftptestserver.php
- Added example file for nginx, for the new tftpboot server using index.php

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-17 12:18:11 +01:00
Diederik de Groot
5134349828 Move SPA Locale files
Signed-off-by: Diederik de Groot <dkgroot@talon.nl>
2020-03-17 12:18:06 +01:00
Diederik de Groot
745676bf53 - Refactored lib/config.php to use classes
- Added comments to config.php to clarify use

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-17 12:17:39 +01:00
Diederik de Groot
c46dd2f134 - Partial redesigned of resolver away from exceptions and returning ERROR Values instead
- Simplification of tftp_provisioner.php
- Refactored the filename cache into standalone abstract class which can be implemented using different backends
- Check cache for duplicate files when adding and report

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-17 12:17:14 +01:00
Diederik de Groot
7aa4524b19 - Copied github.com/tm1000/tftpserver/tftpserver.php over to lib/tftpserver.php
- Replaced logging functions with lib/logger.php
- First step for adding templated settings/file where placeholders can be filled out.
- Add 'settings' structure to config.ini
- Add 'settings' multidimensional config parser to lib/utils.php
- Added simple test implementation of tftpserver
- Renamed lib/tftpserver.php to lib/tftp.php
- Fixed error output from lib/tftp.php
- Note: current simple tftpserver.php test implementation stores/read files
- from memory (not fs). So you need to put a file, before you can get that
  file back.
- Cleanup some small config details
- First simple implementation of tftp_provisioner.php
2020-03-17 12:16:26 +01:00
Diederik de Groot
a4ebaee776 Initial checkin of resolver.php
- use \\ instead of just \ in FileName
- Use file_put_contents instead of open/write
- Use file_exist instead of stat
- Added /lib directory
- Moved /tftpboot/index.cfg -> /config.ini
- Moved /tftpboot/resolver.php -> /lib/resolver.php
- Added /lib/config.php
  - include /lib/config.php in resolver.php and index.php
- Changed $config array
- Remove print_r($config['main']['base_path']) from config.php
- Add isValidRequest() function
- Use Boolean in tree_base data
- Simplify config['subdirs'] substitution
- Add lib/utils.php file
- Added simple shell/utf/html escape checking
- Added a collection of test cases (we need some more escape checking ones)
- Added lib/logger.php (copied from tftpserver.php, so that it can be reused for that).
- Clarify config.ini logformat
- Update logger implementation
- Replaced index.php with version that uses lib/resolver.php
- Replaced ../etc/nginx/sites-available/tftpboot Example file
2020-03-17 10:03:55 +01:00
Marcello Ceschia
2c54cf0664 Merge remote-tracking branch 'upstream/feature/redesign' into feature/redesign 2020-03-16 15:06:59 +01:00
Diederik de Groot
c06cac4653 renamed tftproot => data
Added strict_types=1
Added NameSpaces
Fixed config::replaceSubdirTreeStructure function

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-16 11:33:02 +01:00
Marcello Ceschia
c150f5d4c5 Merge remote-tracking branch 'upstream/feature/redesign' into feature/redesign 2020-03-16 11:05:47 +01:00
Diederik de Groot
67bf5bdca5 Added php-xml to README
Added initial lib/xml.php
Renamed srv/tftp/tftp_provisioner.php -> srv/tftp/tftp_provisioner

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-16 08:27:00 +01:00
Diederik de Groot
ad70913459 Reorder directory structure
/tftpboot -> /data
/tftpboot/index.php -> /srv/web/index.php
/tftp_provisioner.php -> /srv/tftp/tftp_provisioner.php

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-16 08:06:10 +01:00
Marcello Ceschia
d4562e3683 add crypto lib 2020-03-15 22:29:09 +01:00
Diederik de Groot
22ae9c5ad1 Add .cache folder
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-15 18:52:05 +01:00
Diederik de Groot
873ab55f08 Use readfile
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-15 18:38:25 +01:00
Diederik de Groot
2c86ea62e7 Update TLV Handling. Update index.php error output when no filename is provided. Update gitignore
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-15 10:42:26 +01:00
Diederik de Groot
37f9c253dd Update the tlvfile help text 2020-03-12 14:58:06 +01:00
Diederik de Groot
6ef72cda50 Extended tlvfile to include CAPF, SRST and TVS 2020-03-12 14:55:07 +01:00
Diederik de Groot
b2708e4611 Added example file for nginx, for the new tftpboot server using index.php
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-03-12 10:50:19 +01:00
Diederik de Groot
f7924b0a94 Fixed typo in lib/resolver.php
Added temporary tftptestserver.php

Signed-off-by: Diederik de Groot <dkgroot@talon.nl>
2020-03-12 10:48:57 +01:00
Diederik de Groot
1af07a905e Move SPA Locale files
Signed-off-by: Diederik de Groot <dkgroot@talon.nl>
2020-02-24 21:20:26 +01:00
Diederik de Groot
6dae0556b2 Added comments to config.php to clarify use
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-18 18:31:41 +01:00
Diederik de Groot
3a4286628e Refactored lib/config.php to use classes
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-18 18:23:03 +01:00
Diederik de Groot
f3e5211ed5 Check cache for duplicate files when adding and report
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-18 04:00:58 +01:00
Diederik de Groot
0ce2a149fc Fixup
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-18 03:50:23 +01:00
Diederik de Groot
41516a5fc9 Refactored the filename cache into standalone abstract class which can be implemented using different backends
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-18 03:45:58 +01:00
Diederik de Groot
f28a90511b Partial redesigned of resolver away from exceptions and returning ERROR Values instead
Simplification of tftp_provisioner.php

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-17 19:41:02 +01:00
Diederik de Groot
70e99148f2 First simple implementation of tftp_provisioner.php
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-17 17:52:29 +01:00
Diederik de Groot
cc3ee10aaa Cleanup some small config details
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-17 02:46:15 +01:00
Diederik de Groot
8950fb92f8 Added simple test implementation of tftpserver
Renamed lib/tftpserver.php to lib/tftp.php
Fixed error output from lib/tftp.php

Note: current simple tftpserver.php test implementation stores/read files
from memory (not fs). So you need to put a file, before you can get that
file back.

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-17 02:41:01 +01:00
Diederik de Groot
8ea03118c6 First step for adding templated settings/file where placeholders can be filled out.
Add 'settings' structure to config.ini
Add 'settings' multidimensional config parser to lib/utils.php

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-17 01:59:32 +01:00
Diederik de Groot
5fc7beb627 Copied github.com/tm1000/tftpserver/tftpserver.php over to lib/tftpserver.php
Replaced logging functions with lib/logger.php

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-16 20:35:05 +01:00
Diederik de Groot
972beaf34b Replaced index.php with version that uses lib/resolver.php
Replaced ../etc/nginx/sites-available/tftpboot Example file

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-16 20:33:34 +01:00
Diederik de Groot
1f75a1dc97 Update logger implementation
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-16 12:02:57 +01:00
Diederik de Groot
ff7d44ce5d Clarify config.ini logformat
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-16 09:49:33 +01:00
Diederik de Groot
36c5b036f7 Added lib/logger.php (copied from tftpserver.php, so that it can be reused for that).
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-16 09:46:55 +01:00
Diederik de Groot
d039261022 Add lib/utils.php file
Added simple shell/utf/html escape checking
Added a collection of test cases (we need some more escape checking ones)

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-16 08:57:02 +01:00
Diederik de Groot
00b1241dfc Use Boolean in tree_base data
Simplify config['subdirs'] substitution

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-16 01:30:52 +01:00
Diederik de Groot
fcf0495a38 Add isValidRequest() function
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-15 23:42:46 +01:00
Diederik de Groot
b8903f761a Remove print_r($config['main']['base_path']) from config.php
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-15 23:25:31 +01:00
Diederik de Groot
ad87422c60 Added /lib directory
Moved /tftpboot/index.cfg -> /config.ini
Moved /tftpboot/resolver.php -> /lib/resolver.php
Added /lib/config.php
 - include /lib/config.php in resolver.php and index.php
Changed $config array

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-15 23:20:46 +01:00
Diederik de Groot
caa3827bc6 Use file_put_contents instead of open/write
Use file_exist instead of stat

Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-15 20:16:44 +01:00
Diederik de Groot
31c5a69460 Merge branch 'feature/redesign' of github.com:dkgroot/provision_sccp into feature/redesign 2020-02-15 19:31:37 +01:00
Diederik de Groot
2d7f939949 Initial checkin of resolver.php
Signed-off-by: Diederik de Groot <ddegroot@talon.nl>
2020-02-15 19:30:00 +01:00
Stoyan Marinov
7c03e38fec use \\ instead of just \ in FileName 2020-02-14 20:57:27 +00:00
2335 changed files with 2711 additions and 765 deletions

0
.cache/.gitkeep Normal file
View File

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
tests/ export-ignore

13
.gitignore vendored
View File

@@ -2,6 +2,17 @@
env/ env/
*~ *~
*.bak *.bak
*.enc
*.sgn
.requirements_satisfied
etc/nginx/site-available/nginx.rules etc/nginx/site-available/nginx.rules
etc/tftpd-hpa/tftpd.rules etc/tftpd-hpa/tftpd.rules
.requirements_satisfied etc/certs/*.pem
data/settings/*.cnf.xml
data/settings/*.tlv
data/settings/authorized_keys
data/settings/*.jar
data/settings/*.json
vendor/
bak/
build/

View File

@@ -1,25 +0,0 @@
SHELL := /usr/bin/env bash
PIP := /usr/bin/env pip
PYTHON := /usr/bin/env python
.PHONY: bootstrap clean
.DEFAULT_GOAL := all
all:
bootstrap: .requirements_satisfied tools/generate.py
@echo "running generate"
@$(PYTHON) tools/generate.py
.requirements_satisfied: tools/requirements.txt
@echo "checking requirements"
@$(PIP) install --user -r tools/requirements.txt
@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
# @find . -type f -name 'etc/tftpd-hpa/rewrite.rules' -delete
# @find . -type f -name 'etc/nginx/site-available/tftpboot' -delete

View File

@@ -10,6 +10,11 @@ The project also serves as a repository of current / up to date cisco skinny/scc
- [tftp-hpa](http://www.chschneider.eu/linux/server/tftpd-hpa.shtml) - [tftp-hpa](http://www.chschneider.eu/linux/server/tftpd-hpa.shtml)
- [nginx](https://www.nginx.com/resources/wiki/) - [nginx](https://www.nginx.com/resources/wiki/)
## PHP Dependencies
- php >= 7.x
- php-cli
- php-xml
## Usage ## Usage
- Clone the repository - Clone the repository
- Move the tftpboot directory (depends on your operating system): - Move the tftpboot directory (depends on your operating system):

36
build.xml Normal file
View File

@@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!-- phing build file -->
<project
name="provision_sccp"
default="build"
basedir="."
description="SCCP/Skinny Provisioner">
<target name="install">
<exec command="./composer.phar install" checkreturn="true" passthru="true"/>
<exec command="./composer.phar update" checkreturn="true" passthru="true"/>
</target>
<target name="clean">
<delete dir="build"/>
</target>
<target name="prepare">
<mkdir dir="build" mode="0755"/>
</target>
<target name="fixstyle">
<exec command="phpcbf --tab-width=4 --standard=PSR2 src test"
checkreturn="true"
passthru="false"/>
</target>
<target name="test">
<exec command="vendor/phpunit/phpunit/phpunit -v --debug tests"
checkreturn="true"
passthru="true"/>
</target>
<target name="build" depends="clean, prepare, test"/>
</project>

46
composer.json Normal file
View File

@@ -0,0 +1,46 @@
{
"name": "chan-sccp/provisioner",
"type": "library",
"description": "SCCP/Skinny Provisioner",
"keywords": ["sccp","skinny","sip","cisco","tftp","http","chan-sccp"],
"homepage": "http://github.com/dkgroot/provision_sccp",
"license": "Apache-2.0",
"authors": [
{
"name": "Diederik de Groot",
"email": "ddegroot@talon.nl",
"homepage": "http://github.com/chan-sccp/",
"role": "Developer"
},
{
"name": "Marcello Ceschia",
"email": "marcello@ceschia.de",
"homepage": "https://github.com/marcelloceschia/",
"role": "Developer"
}
],
"support": {
"issues": "https://github.com/dkgroot/provision_sccp/issues",
"wiki": "https://github.com/dkgroot/provision_sccp/wiki",
"source": "https://github.com/dkgroot/provision_sccp"
},
"autoload": {
"psr-4": {
"PROVISION\\": "lib/"
}
},
"require": {
"php": ">=5.6.0",
"psr/log": ">= 1.0.0",
"myclabs/php-enum": ">= 1.7.6"
},
"require-dev": {
"phing/phing": "*",
"phpunit/phpunit": "*",
"codeclimate/php-test-reporter": "*",
"php-coveralls/php-coveralls": "*",
"phpmd/phpmd": ">=2.5.0",
"squizlabs/php_codesniffer": ">=3.4.0",
"sebastian/phpcpd": "*"
}
}

67
config.ini Normal file
View File

@@ -0,0 +1,67 @@
[main]
debug = TRUE ; The output in the browser window for more information
cache_filename = "/tmp/provision_sccp_resolver.cache"
default_language = English_United_States
log_type = SYSLOG ; SYSLOG|STDERR|STDOUT|NULL|FILE
log_level = LOG_INFO ; LOG_EMERG|LOG_ALERT|LOG_CRIT|LOG_ERR|LOG_WARNING|LOG_NOTICE|LOG_INFO|LOG_DEBUG
;log_filename = provision.log ; only in case of log_type = FILE
auto_generate_settings = FALSE
auto_sign = FALSE
auto_encrypt = FALSE
localnet = 192.168.178.0/24
[config]
file = /etc/asterisk/sccp.conf
database = asterisk
database_driver = postgres
[security]
cert_ca = NULL
cert_priv = NULL
cert_pub = NULL
hash = NULL
;[subdirs]
;tftproot = data
;firmware = firmware
;settings = settings
;wallpapers = wallpapers
;ringtones = ringtones
;locales = locales
;countries = countries
;languages = languages
[settings]
sshUserId = cisco
sshPassword = cisco
ipAddress = ipv4|ipv6 ; ipv4 | ipv4 | ipv4|ipv6 | ipv6|ipv4
datetime.template = M/D/YA
datetime.timezone = W. Europe Standard/Daylight Time
datetime.ipaddress = 10.x.x.x
datetime.mode = Unicast
members.myhost.hostname = myhost.domain.com
members.myhost.ipv4 = 10.x.x.x
members.myhost.ipv6 = 2001:470::x:x
members.myhost.port = 2000
;srts.
;common.
;vendor.
locale.country = United_States
locale.language = English_United_States
locale.langcode = en_US
locale.charset = utf-8
urls.security = FALSE
urls.information = NULL
urls.authentication = NULL
urls.services = NULL
urls.direcory = NULL
urls.messages = NULL
urls.proxyserver = NULL
;vpn.
;phoneservices.
[SEP001122334455]
locale.country = Netherlands
locale.language = Dutch Netherlands
locale.langcode = nl_NL
locale.charset = utf-8

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