master
mr13.3.1
mr13.2.1
mr12.5.1
mr13.3
mr13.2
mr12.5
mr11.5.1
mr11.5
mr10.5.8
mr10.5
mr13.1.1
mr13.0.1
mr13.1
mr13.0
mr10.5.7
mr12.4.1
mr12.3.1
mr12.2.1
mr12.1.1
mr12.0.1
mr11.4.1
mr11.3.1
mr12.4
mr12.3
mr12.2
mr12.1
mr12.0
mr11.4
mr11.3
mr10.5.3
mr9.5
mr9.5.9
mr10.5.2
mr9.5.1
mr9.5.2
mr9.5.3
mr9.5.4
mr9.5.5
mr9.5.6
mr9.5.7
mr9.5.8
mr10.5.1
mr10.5.4
mr10.5.5
mr10.5.6
mr8.5
mr8.5.12
mr8.5.11
mr11.2.1
mr11.1.1
mr11.0.1
mr10.4.1
mr10.3.1
mr10.2.1
mr10.1.1
mr10.0.1
mr9.4.1
mr9.3.1
mr9.2.1
mr9.1.1
mr9.0.1
mr8.5.10
mr8.5.9
mr8.5.8
mr8.5.7
mr8.5.6
mr8.5.5
mr8.5.4
mr8.5.3
mr8.5.2
mr8.5.1
mr11.2
mr11.1
mr11.0
mr10.4
mr10.3
mr10.2
mr10.1
mr10.0
mr9.4
mr9.3
mr9.2
mr9.1
mr9.0
mr7.5.5
mr7.5
mr7.5.13
mr7.5.12
mr7.5.6
mr7.5.11
mr7.5.9
mr6.5
mr6.5.13
mr7.5.10
mr6.5.11
mr6.5.10
mr6.5.12
mr6.5.9
mr7.5.4
mr7.5.8
mr6.5.1
mr6.5.2
mr6.5.3
mr6.5.4
mr6.5.5
mr6.5.6
mr6.5.7
mr6.5.8
mr7.5.1
mr7.5.2
mr7.5.3
mr7.5.7
mr8.4.2
mr5.5
mr5.5.13
mr8.4
mr8.3.2
mr8.4.1
mr8.3
mr5.5.12
mr5.5.11
mr5.5.10
mr8.3.1
mr8.2
mr8.1
mr8.0
mr8.1.1
mr8.2.2
mr8.2.1
mr8.1.2
mr8.0.2
mr7.3.2
mr8.0.1
mr7.4.2
mr7.4
mr5.5.6
mr5.5.7
mr5.5.8
mr5.5.9
mr4.5
mr4.5.13
mr5.5.5
mr7.4.1
mr6.0.2
mr6.1.2
mr6.2.2
mr6.3.2
mr6.4.2
mr6.0
mr6.1
mr6.2
mr6.3
mr6.4
mr4.5.12
mr7.3
mr7.3.1
mr4.5.4
mr7.2
mr7.2.2
mr7.0
mr7.1
mr7.2.1
mr7.0.2
mr7.1.2
mr7.1.1
mr7.0.1
mr4.5.11
mr5.5.1
mr5.5.2
mr5.5.3
mr5.5.4
mr6.0.1
mr6.1.1
mr6.2.1
mr6.3.1
mr6.4.1
mr4.5.10
mr3.8
mr3.8.13
mr4.5.9
mr4.5.8
mr4.3.1
mr4.3.2
mr4.3
mr4.4.1
mr4.4.2
mr4.4
mr4.5.7
mr5.4.2
mr4.5.6
mr5.4
mr3.8.12
mr5.4.1
mr5.3
mr3.8.11
mr5.3.2
mr4.5.3
mr4.5.5
mr5.2
mr5.2.1
mr5.3.1
mr3.8.10
mr5.2.2
mr5.1
mr5.1.2
mr5.1.1
mr5.0
ipeshinskaya/17173_remove_code_save_2017_02_26
ipeshinskaya/sms
mr5.0.2
mr5.0.1
mr3.8.9
mr3.8.8
mr4.5.2
mr3.8.7
ipeshinskaya/master
mr4.5.1
ipeshinskaya/17173_save_2016_08_31_00
ipeshinskaya/17173
ipeshinskaya/17173_2016_08_31_00
mr3.8.6
mr3.8.5
mr3.8.4
ipeshinskaya/paths
ieshinskaya/autologin
ipeshinskaya/14253_script_only
mr4.2.2
mr4.2
rkrenn/lnp_unique
mr4.2.1
mr4.1
ipeshinskaya/15213_cloudpbx_patch
rkrenn/apidump_tempfiles
ipeshinskaya/testscache
ipeshinskaya/17173_code_reduce_example_review
ipeshinskaya/17173_code_reduction_example_review
mr4.1.2
mr4.1.1
mr3.8.3
ipeshinskaya/17173_inheritance_pure
ipeshinskaya/17173_inheritance_clear
ipeshinskaya/17173_moo
rkrenn/callist
ipeshinskaya/api_0
mr4.0
ipeshinskaya/autotests
mr4.0.2
apogrebennyk/14659_mr384
mr4.0.1
mprokop/docker
ipeshinskaya/12347
agranig/multi-billprof
alutay/MT14585_more_rest_api
mr3.7.2
mr3.7.1
mr3.7
ipeshinskaya/14767
mr3.8.1
mr3.8.2
ipeshinskaya/14767_1
ipeshinskaya/lost
agranig/baseclean
gjungwirth/img_api
ipeshinskaya/11147_2
ipeshinskaya/11147
mr3.6.2
mr3.6.1
mr3.6
ipeshinskaya/5435
ipeshinskaya/10715
ipeshinskaya/9177
mr3.5.1
mr3.5
mr3.4.2
mr3.4
mprokop/10181
mr3.4.1
agranig/gpp
ipeshinskaya/9431
ipeshinskaya/InvoiceTemplate6
agranig/webphone
mr3.3.2
mr3.3
1.1
agranig/8279-csc-normalize-number
gjungwirth/email_test
agranig/pbx-dev-map
gjungwirth/voicemail_number
mr3.3.1
mr3.2.2
ipeshinskaya/InvoiceTemplate5
mr3.2
agranig/subprof
agranig/selfsignup
mr3.2.1
agranig/dummydel
agranig/pbxapi
gjungwirth/testcover
gjungwirth/test_sleeps
apogrebennyk/3_1_force_outbound
agranig/mt5661_update_prepaid
agranig/auth-refactoring
gjungwirth/fix_tests
agranig/rest
ldieckow/rest
apogrebennyk/preloaded_route_1_0
1.0
agranig/1_0_subfix
ldieckow/cert-manage
agranig/peering-route
1.1.17
1.1.16
1.1.13
1.1.12
1.1.11
1.1.10
1.1.9
1.1.7
1.1.6
1.1.5
1.0.26
1.0.25
1.1.4
1.1.2
1.0.22
1.1.0
1.0.19
1.0.18
1.0.17
1.0.16
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.15
1.0.20
1.0.21
1.0.23
1.0.24
1.1.1
1.1.14
1.1.15
1.1.3
1.1.8
mr10.0.1.1
mr10.0.1.10
mr10.0.1.11
mr10.0.1.12
mr10.0.1.2
mr10.0.1.3
mr10.0.1.4
mr10.0.1.5
mr10.0.1.6
mr10.0.1.7
mr10.0.1.8
mr10.0.1.9
mr10.1.1.1
mr10.1.1.10
mr10.1.1.11
mr10.1.1.12
mr10.1.1.13
mr10.1.1.2
mr10.1.1.3
mr10.1.1.4
mr10.1.1.5
mr10.1.1.6
mr10.1.1.7
mr10.1.1.8
mr10.1.1.9
mr10.2.1.1
mr10.2.1.2
mr10.2.1.3
mr10.2.1.4
mr10.2.1.5
mr10.2.1.6
mr10.2.1.7
mr10.2.1.8
mr10.2.1.9
mr10.3.1.1
mr10.3.1.2
mr10.3.1.3
mr10.3.1.4
mr10.3.1.5
mr10.3.1.6
mr10.3.1.7
mr10.4.1.1
mr10.4.1.2
mr10.4.1.3
mr10.4.1.4
mr10.4.1.5
mr10.4.1.6
mr10.4.1.7
mr10.4.1.8
mr10.5.1.1
mr10.5.1.10
mr10.5.1.11
mr10.5.1.12
mr10.5.1.13
mr10.5.1.14
mr10.5.1.15
mr10.5.1.16
mr10.5.1.17
mr10.5.1.18
mr10.5.1.19
mr10.5.1.2
mr10.5.1.20
mr10.5.1.21
mr10.5.1.22
mr10.5.1.23
mr10.5.1.24
mr10.5.1.25
mr10.5.1.26
mr10.5.1.27
mr10.5.1.28
mr10.5.1.29
mr10.5.1.3
mr10.5.1.30
mr10.5.1.31
mr10.5.1.32
mr10.5.1.33
mr10.5.1.34
mr10.5.1.35
mr10.5.1.36
mr10.5.1.37
mr10.5.1.38
mr10.5.1.39
mr10.5.1.4
mr10.5.1.40
mr10.5.1.41
mr10.5.1.5
mr10.5.1.6
mr10.5.1.7
mr10.5.1.8
mr10.5.1.9
mr10.5.2.1
mr10.5.2.10
mr10.5.2.11
mr10.5.2.12
mr10.5.2.13
mr10.5.2.14
mr10.5.2.15
mr10.5.2.16
mr10.5.2.17
mr10.5.2.18
mr10.5.2.19
mr10.5.2.2
mr10.5.2.20
mr10.5.2.21
mr10.5.2.22
mr10.5.2.3
mr10.5.2.4
mr10.5.2.5
mr10.5.2.6
mr10.5.2.7
mr10.5.2.8
mr10.5.2.9
mr10.5.3.1
mr10.5.3.10
mr10.5.3.11
mr10.5.3.12
mr10.5.3.13
mr10.5.3.14
mr10.5.3.15
mr10.5.3.2
mr10.5.3.3
mr10.5.3.4
mr10.5.3.5
mr10.5.3.6
mr10.5.3.7
mr10.5.3.8
mr10.5.3.9
mr10.5.4.1
mr10.5.4.10
mr10.5.4.2
mr10.5.4.3
mr10.5.4.4
mr10.5.4.5
mr10.5.4.6
mr10.5.4.7
mr10.5.4.8
mr10.5.4.9
mr10.5.5.1
mr10.5.5.10
mr10.5.5.11
mr10.5.5.2
mr10.5.5.3
mr10.5.5.4
mr10.5.5.5
mr10.5.5.6
mr10.5.5.7
mr10.5.5.8
mr10.5.5.9
mr10.5.6.1
mr10.5.6.2
mr10.5.6.3
mr10.5.6.4
mr10.5.6.5
mr10.5.6.6
mr10.5.6.7
mr10.5.7.1
mr10.5.7.2
mr10.5.7.3
mr10.5.8.1
mr10.5.8.2
mr10.5.8.3
mr10.5.8.4
mr11.0.1.1
mr11.0.1.10
mr11.0.1.11
mr11.0.1.12
mr11.0.1.2
mr11.0.1.3
mr11.0.1.4
mr11.0.1.5
mr11.0.1.6
mr11.0.1.7
mr11.0.1.8
mr11.0.1.9
mr11.1.1.1
mr11.1.1.10
mr11.1.1.11
mr11.1.1.12
mr11.1.1.2
mr11.1.1.3
mr11.1.1.4
mr11.1.1.5
mr11.1.1.6
mr11.1.1.7
mr11.1.1.8
mr11.1.1.9
mr11.2.1.1
mr11.2.1.10
mr11.2.1.11
mr11.2.1.2
mr11.2.1.3
mr11.2.1.4
mr11.2.1.5
mr11.2.1.6
mr11.2.1.7
mr11.2.1.8
mr11.2.1.9
mr11.3.1.1
mr11.3.1.10
mr11.3.1.11
mr11.3.1.12
mr11.3.1.13
mr11.3.1.14
mr11.3.1.15
mr11.3.1.16
mr11.3.1.17
mr11.3.1.18
mr11.3.1.19
mr11.3.1.2
mr11.3.1.20
mr11.3.1.21
mr11.3.1.3
mr11.3.1.4
mr11.3.1.5
mr11.3.1.6
mr11.3.1.7
mr11.3.1.8
mr11.3.1.9
mr11.4.1.1
mr11.4.1.2
mr11.4.1.3
mr11.4.1.4
mr11.4.1.5
mr11.4.1.6
mr11.4.1.7
mr11.5.1.1
mr11.5.1.10
mr11.5.1.11
mr11.5.1.12
mr11.5.1.13
mr11.5.1.14
mr11.5.1.15
mr11.5.1.16
mr11.5.1.17
mr11.5.1.18
mr11.5.1.19
mr11.5.1.2
mr11.5.1.20
mr11.5.1.21
mr11.5.1.22
mr11.5.1.23
mr11.5.1.24
mr11.5.1.25
mr11.5.1.26
mr11.5.1.27
mr11.5.1.28
mr11.5.1.29
mr11.5.1.3
mr11.5.1.30
mr11.5.1.31
mr11.5.1.32
mr11.5.1.33
mr11.5.1.34
mr11.5.1.35
mr11.5.1.36
mr11.5.1.37
mr11.5.1.4
mr11.5.1.5
mr11.5.1.6
mr11.5.1.7
mr11.5.1.8
mr11.5.1.9
mr12.0.1.1
mr12.0.1.2
mr12.0.1.3
mr12.0.1.4
mr12.0.1.5
mr12.0.1.6
mr12.0.1.7
mr12.1.1.1
mr12.1.1.2
mr12.1.1.3
mr12.1.1.4
mr12.1.1.5
mr12.1.1.6
mr12.2.1.1
mr12.2.1.10
mr12.2.1.11
mr12.2.1.12
mr12.2.1.13
mr12.2.1.14
mr12.2.1.15
mr12.2.1.16
mr12.2.1.2
mr12.2.1.3
mr12.2.1.4
mr12.2.1.5
mr12.2.1.6
mr12.2.1.7
mr12.2.1.8
mr12.2.1.9
mr12.3.1.1
mr12.3.1.10
mr12.3.1.11
mr12.3.1.12
mr12.3.1.13
mr12.3.1.14
mr12.3.1.15
mr12.3.1.2
mr12.3.1.3
mr12.3.1.4
mr12.3.1.5
mr12.3.1.6
mr12.3.1.7
mr12.3.1.8
mr12.3.1.9
mr12.4.1.1
mr12.4.1.2
mr12.4.1.3
mr12.5.1.1
mr12.5.1.10
mr12.5.1.11
mr12.5.1.12
mr12.5.1.13
mr12.5.1.14
mr12.5.1.15
mr12.5.1.16
mr12.5.1.17
mr12.5.1.18
mr12.5.1.19
mr12.5.1.2
mr12.5.1.20
mr12.5.1.21
mr12.5.1.22
mr12.5.1.23
mr12.5.1.24
mr12.5.1.3
mr12.5.1.4
mr12.5.1.5
mr12.5.1.6
mr12.5.1.7
mr12.5.1.8
mr12.5.1.9
mr13.0.1.1
mr13.0.1.2
mr13.0.1.3
mr13.0.1.4
mr13.0.1.5
mr13.0.1.6
mr13.0.1.7
mr13.0.1.8
mr13.1.1.1
mr13.1.1.2
mr13.1.1.3
mr13.1.1.4
mr13.1.1.5
mr13.1.1.6
mr13.2.1.1
mr13.2.1.2
mr13.2.1.3
mr13.2.1.4
mr13.2.1.5
mr13.2.1.6
mr13.2.1.7
mr13.2.1.8
mr13.2.1.9
mr13.3.1.1
mr13.3.1.2
mr3.2.1.1
mr3.2.2.1
mr3.2.2.2
mr3.2.2.3
mr3.2.2.4
mr3.3.1.1
mr3.3.1.10
mr3.3.1.2
mr3.3.1.3
mr3.3.1.4
mr3.3.1.5
mr3.3.1.6
mr3.3.1.7
mr3.3.1.8
mr3.3.1.9
mr3.3.2.1
mr3.3.2.10
mr3.3.2.11
mr3.3.2.12
mr3.3.2.13
mr3.3.2.14
mr3.3.2.15
mr3.3.2.16
mr3.3.2.17
mr3.3.2.18
mr3.3.2.2
mr3.3.2.3
mr3.3.2.4
mr3.3.2.5
mr3.3.2.6
mr3.3.2.7
mr3.3.2.8
mr3.3.2.9
mr3.4.1.1
mr3.4.1.10
mr3.4.1.11
mr3.4.1.12
mr3.4.1.13
mr3.4.1.14
mr3.4.1.15
mr3.4.1.16
mr3.4.1.17
mr3.4.1.2
mr3.4.1.3
mr3.4.1.4
mr3.4.1.5
mr3.4.1.6
mr3.4.1.7
mr3.4.1.8
mr3.4.1.9
mr3.4.2.1
mr3.4.2.10
mr3.4.2.11
mr3.4.2.12
mr3.4.2.13
mr3.4.2.2
mr3.4.2.3
mr3.4.2.4
mr3.4.2.5
mr3.4.2.6
mr3.4.2.7
mr3.4.2.8
mr3.4.2.9
mr3.5.1.1
mr3.5.1.10
mr3.5.1.11
mr3.5.1.12
mr3.5.1.13
mr3.5.1.2
mr3.5.1.3
mr3.5.1.4
mr3.5.1.5
mr3.5.1.6
mr3.5.1.7
mr3.5.1.8
mr3.5.1.9
mr3.6.1.1
mr3.6.1.2
mr3.6.1.3
mr3.6.1.4
mr3.6.1.5
mr3.6.1.6
mr3.6.1.7
mr3.6.1.8
mr3.6.1.9
mr3.6.2.1
mr3.6.2.2
mr3.6.2.3
mr3.6.2.4
mr3.6.2.5
mr3.7.1.1
mr3.7.1.10
mr3.7.1.11
mr3.7.1.12
mr3.7.1.13
mr3.7.1.14
mr3.7.1.15
mr3.7.1.16
mr3.7.1.17
mr3.7.1.18
mr3.7.1.19
mr3.7.1.2
mr3.7.1.20
mr3.7.1.21
mr3.7.1.22
mr3.7.1.23
mr3.7.1.24
mr3.7.1.25
mr3.7.1.26
mr3.7.1.27
mr3.7.1.28
mr3.7.1.29
mr3.7.1.3
mr3.7.1.30
mr3.7.1.31
mr3.7.1.32
mr3.7.1.33
mr3.7.1.34
mr3.7.1.35
mr3.7.1.36
mr3.7.1.37
mr3.7.1.38
mr3.7.1.4
mr3.7.1.5
mr3.7.1.6
mr3.7.1.7
mr3.7.1.8
mr3.7.1.9
mr3.7.2.1
mr3.7.2.10
mr3.7.2.11
mr3.7.2.12
mr3.7.2.13
mr3.7.2.14
mr3.7.2.15
mr3.7.2.16
mr3.7.2.17
mr3.7.2.18
mr3.7.2.19
mr3.7.2.2
mr3.7.2.20
mr3.7.2.21
mr3.7.2.22
mr3.7.2.23
mr3.7.2.24
mr3.7.2.25
mr3.7.2.3
mr3.7.2.4
mr3.7.2.5
mr3.7.2.6
mr3.7.2.7
mr3.7.2.8
mr3.7.2.9
mr3.8.1.1
mr3.8.1.10
mr3.8.1.11
mr3.8.1.12
mr3.8.1.13
mr3.8.1.14
mr3.8.1.15
mr3.8.1.16
mr3.8.1.17
mr3.8.1.18
mr3.8.1.19
mr3.8.1.2
mr3.8.1.20
mr3.8.1.21
mr3.8.1.22
mr3.8.1.23
mr3.8.1.24
mr3.8.1.25
mr3.8.1.26
mr3.8.1.27
mr3.8.1.28
mr3.8.1.3
mr3.8.1.4
mr3.8.1.5
mr3.8.1.6
mr3.8.1.7
mr3.8.1.8
mr3.8.1.9
mr3.8.10.1
mr3.8.11.1
mr3.8.12.1
mr3.8.13.1
mr3.8.2.1
mr3.8.2.10
mr3.8.2.11
mr3.8.2.12
mr3.8.2.13
mr3.8.2.14
mr3.8.2.15
mr3.8.2.2
mr3.8.2.3
mr3.8.2.4
mr3.8.2.5
mr3.8.2.6
mr3.8.2.7
mr3.8.2.8
mr3.8.2.9
mr3.8.3.1
mr3.8.3.10
mr3.8.3.11
mr3.8.3.12
mr3.8.3.13
mr3.8.3.14
mr3.8.3.15
mr3.8.3.16
mr3.8.3.2
mr3.8.3.3
mr3.8.3.4
mr3.8.3.5
mr3.8.3.6
mr3.8.3.7
mr3.8.3.8
mr3.8.3.9
mr3.8.4.1
mr3.8.4.10
mr3.8.4.11
mr3.8.4.12
mr3.8.4.13
mr3.8.4.14
mr3.8.4.15
mr3.8.4.16
mr3.8.4.17
mr3.8.4.18
mr3.8.4.2
mr3.8.4.3
mr3.8.4.4
mr3.8.4.5
mr3.8.4.6
mr3.8.4.7
mr3.8.4.8
mr3.8.4.9
mr3.8.5.1
mr3.8.5.10
mr3.8.5.11
mr3.8.5.12
mr3.8.5.13
mr3.8.5.14
mr3.8.5.15
mr3.8.5.16
mr3.8.5.2
mr3.8.5.3
mr3.8.5.4
mr3.8.5.5
mr3.8.5.6
mr3.8.5.7
mr3.8.5.8
mr3.8.5.9
mr3.8.6.1
mr3.8.6.10
mr3.8.6.2
mr3.8.6.3
mr3.8.6.4
mr3.8.6.5
mr3.8.6.6
mr3.8.6.7
mr3.8.6.8
mr3.8.6.9
mr3.8.7.1
mr3.8.7.10
mr3.8.7.2
mr3.8.7.3
mr3.8.7.4
mr3.8.7.5
mr3.8.7.6
mr3.8.7.7
mr3.8.7.8
mr3.8.7.9
mr3.8.8.1
mr3.8.8.2
mr3.8.8.3
mr3.8.8.4
mr3.8.8.5
mr3.8.9.1
mr4.0.1.1
mr4.0.1.10
mr4.0.1.11
mr4.0.1.12
mr4.0.1.13
mr4.0.1.14
mr4.0.1.15
mr4.0.1.16
mr4.0.1.17
mr4.0.1.2
mr4.0.1.3
mr4.0.1.4
mr4.0.1.5
mr4.0.1.6
mr4.0.1.7
mr4.0.1.8
mr4.0.1.9
mr4.0.2.1
mr4.1.1.1
mr4.1.1.10
mr4.1.1.11
mr4.1.1.12
mr4.1.1.13
mr4.1.1.14
mr4.1.1.2
mr4.1.1.3
mr4.1.1.4
mr4.1.1.5
mr4.1.1.6
mr4.1.1.7
mr4.1.1.8
mr4.1.1.9
mr4.1.2.1
mr4.1.2.2
mr4.1.2.3
mr4.1.2.4
mr4.2.1.1
mr4.2.1.10
mr4.2.1.11
mr4.2.1.12
mr4.2.1.13
mr4.2.1.14
mr4.2.1.15
mr4.2.1.16
mr4.2.1.17
mr4.2.1.2
mr4.2.1.3
mr4.2.1.4
mr4.2.1.5
mr4.2.1.6
mr4.2.1.7
mr4.2.1.8
mr4.2.1.9
mr4.2.2.1
mr4.2.2.2
mr4.2.2.3
mr4.2.2.4
mr4.2.2.5
mr4.2.2.6
mr4.3.1.1
mr4.3.1.10
mr4.3.1.11
mr4.3.1.12
mr4.3.1.13
mr4.3.1.14
mr4.3.1.15
mr4.3.1.16
mr4.3.1.17
mr4.3.1.2
mr4.3.1.3
mr4.3.1.4
mr4.3.1.5
mr4.3.1.6
mr4.3.1.7
mr4.3.1.8
mr4.3.1.9
mr4.3.2.1
mr4.3.2.2
mr4.3.2.3
mr4.3.2.4
mr4.4.1.1
mr4.4.1.10
mr4.4.1.11
mr4.4.1.12
mr4.4.1.13
mr4.4.1.14
mr4.4.1.15
mr4.4.1.2
mr4.4.1.3
mr4.4.1.4
mr4.4.1.5
mr4.4.1.6
mr4.4.1.7
mr4.4.1.8
mr4.4.1.9
mr4.4.2.1
mr4.4.2.2
mr4.4.2.3
mr4.5.1.1
mr4.5.1.10
mr4.5.1.11
mr4.5.1.12
mr4.5.1.13
mr4.5.1.2
mr4.5.1.3
mr4.5.1.4
mr4.5.1.5
mr4.5.1.6
mr4.5.1.7
mr4.5.1.8
mr4.5.1.9
mr4.5.10.1
mr4.5.11.1
mr4.5.12.1
mr4.5.12.2
mr4.5.13.1
mr4.5.2.1
mr4.5.2.10
mr4.5.2.11
mr4.5.2.12
mr4.5.2.13
mr4.5.2.14
mr4.5.2.15
mr4.5.2.16
mr4.5.2.2
mr4.5.2.3
mr4.5.2.4
mr4.5.2.5
mr4.5.2.6
mr4.5.2.7
mr4.5.2.8
mr4.5.2.9
mr4.5.3.1
mr4.5.3.10
mr4.5.3.2
mr4.5.3.3
mr4.5.3.4
mr4.5.3.5
mr4.5.3.6
mr4.5.3.7
mr4.5.3.8
mr4.5.3.9
mr4.5.4.1
mr4.5.4.2
mr4.5.4.3
mr4.5.4.4
mr4.5.4.5
mr4.5.4.6
mr4.5.4.7
mr4.5.4.8
mr4.5.4.9
mr4.5.5.1
mr4.5.5.2
mr4.5.5.3
mr4.5.6.1
mr4.5.6.2
mr4.5.6.3
mr4.5.7.1
mr4.5.8.1
mr4.5.9.1
mr5.0.1.1
mr5.0.1.10
mr5.0.1.2
mr5.0.1.3
mr5.0.1.4
mr5.0.1.5
mr5.0.1.6
mr5.0.1.7
mr5.0.1.8
mr5.0.1.9
mr5.0.2.1
mr5.0.2.2
mr5.1.1.1
mr5.1.1.2
mr5.1.1.3
mr5.1.1.4
mr5.1.1.5
mr5.1.1.6
mr5.1.1.7
mr5.1.2.1
mr5.2.1.1
mr5.2.1.2
mr5.2.1.3
mr5.2.1.4
mr5.2.1.5
mr5.2.2.1
mr5.2.2.2
mr5.3.1.1
mr5.3.1.2
mr5.3.2.1
mr5.4.1.1
mr5.4.1.2
mr5.4.2.1
mr5.4.2.2
mr5.5.1.1
mr5.5.1.2
mr5.5.1.3
mr5.5.1.4
mr5.5.1.5
mr5.5.1.6
mr5.5.1.7
mr5.5.1.8
mr5.5.10.1
mr5.5.10.2
mr5.5.10.3
mr5.5.11.1
mr5.5.11.2
mr5.5.11.3
mr5.5.11.4
mr5.5.12.1
mr5.5.13.1
mr5.5.2.1
mr5.5.2.2
mr5.5.2.3
mr5.5.2.4
mr5.5.3.1
mr5.5.3.2
mr5.5.3.3
mr5.5.3.4
mr5.5.4.1
mr5.5.4.2
mr5.5.4.3
mr5.5.4.4
mr5.5.4.5
mr5.5.4.6
mr5.5.5.1
mr5.5.5.2
mr5.5.5.3
mr5.5.5.4
mr5.5.5.5
mr5.5.5.6
mr5.5.5.7
mr5.5.5.8
mr5.5.6.1
mr5.5.6.2
mr5.5.6.3
mr5.5.6.4
mr5.5.6.5
mr5.5.6.6
mr5.5.6.7
mr5.5.7.1
mr5.5.7.10
mr5.5.7.11
mr5.5.7.12
mr5.5.7.2
mr5.5.7.3
mr5.5.7.4
mr5.5.7.5
mr5.5.7.6
mr5.5.7.7
mr5.5.7.8
mr5.5.7.9
mr5.5.8.1
mr5.5.8.2
mr5.5.8.3
mr5.5.8.4
mr5.5.8.5
mr5.5.8.6
mr5.5.9.1
mr5.5.9.2
mr5.5.9.3
mr5.5.9.4
mr5.5.9.5
mr5.5.9.6
mr5.5.9.7
mr5.5.9.8
mr5.5.9.9
mr6.0.1.1
mr6.0.1.2
mr6.0.1.3
mr6.0.2.1
mr6.0.2.2
mr6.0.2.3
mr6.0.2.4
mr6.1.1.1
mr6.1.1.2
mr6.1.1.3
mr6.1.1.4
mr6.1.2.1
mr6.1.2.2
mr6.1.2.3
mr6.1.2.4
mr6.1.2.5
mr6.1.2.6
mr6.2.1.1
mr6.2.1.2
mr6.2.1.3
mr6.2.1.4
mr6.2.1.5
mr6.2.1.6
mr6.2.1.7
mr6.2.1.8
mr6.2.2.1
mr6.2.2.2
mr6.2.2.3
mr6.2.2.4
mr6.3.1.1
mr6.3.1.2
mr6.3.1.3
mr6.3.1.4
mr6.3.1.5
mr6.3.1.6
mr6.3.1.7
mr6.3.1.8
mr6.3.1.9
mr6.3.2.1
mr6.3.2.2
mr6.3.2.3
mr6.3.2.4
mr6.4.1.1
mr6.4.1.2
mr6.4.1.3
mr6.4.1.4
mr6.4.1.5
mr6.4.1.6
mr6.4.1.7
mr6.4.1.8
mr6.4.1.9
mr6.4.2.1
mr6.4.2.2
mr6.4.2.3
mr6.4.2.4
mr6.5.1.1
mr6.5.1.2
mr6.5.1.3
mr6.5.1.4
mr6.5.1.5
mr6.5.1.6
mr6.5.1.7
mr6.5.1.8
mr6.5.10.1
mr6.5.10.2
mr6.5.10.3
mr6.5.10.4
mr6.5.10.5
mr6.5.10.6
mr6.5.11.1
mr6.5.11.2
mr6.5.11.3
mr6.5.11.4
mr6.5.11.5
mr6.5.12.1
mr6.5.12.2
mr6.5.12.3
mr6.5.13.1
mr6.5.2.1
mr6.5.2.2
mr6.5.2.3
mr6.5.2.4
mr6.5.2.5
mr6.5.2.6
mr6.5.2.7
mr6.5.2.8
mr6.5.2.9
mr6.5.3.1
mr6.5.3.10
mr6.5.3.11
mr6.5.3.12
mr6.5.3.2
mr6.5.3.3
mr6.5.3.4
mr6.5.3.5
mr6.5.3.6
mr6.5.3.7
mr6.5.3.8
mr6.5.3.9
mr6.5.4.1
mr6.5.4.10
mr6.5.4.11
mr6.5.4.12
mr6.5.4.13
mr6.5.4.14
mr6.5.4.15
mr6.5.4.2
mr6.5.4.3
mr6.5.4.4
mr6.5.4.5
mr6.5.4.6
mr6.5.4.7
mr6.5.4.8
mr6.5.4.9
mr6.5.5.1
mr6.5.5.10
mr6.5.5.11
mr6.5.5.12
mr6.5.5.13
mr6.5.5.14
mr6.5.5.2
mr6.5.5.3
mr6.5.5.4
mr6.5.5.5
mr6.5.5.6
mr6.5.5.7
mr6.5.5.8
mr6.5.5.9
mr6.5.6.1
mr6.5.6.10
mr6.5.6.11
mr6.5.6.12
mr6.5.6.13
mr6.5.6.14
mr6.5.6.15
mr6.5.6.16
mr6.5.6.17
mr6.5.6.2
mr6.5.6.3
mr6.5.6.4
mr6.5.6.5
mr6.5.6.6
mr6.5.6.7
mr6.5.6.8
mr6.5.6.9
mr6.5.7.1
mr6.5.7.10
mr6.5.7.2
mr6.5.7.3
mr6.5.7.4
mr6.5.7.5
mr6.5.7.6
mr6.5.7.7
mr6.5.7.8
mr6.5.7.9
mr6.5.8.1
mr6.5.8.2
mr6.5.8.3
mr6.5.8.4
mr6.5.8.5
mr6.5.9.1
mr6.5.9.2
mr6.5.9.3
mr6.5.9.4
mr6.5.9.5
mr6.5.9.6
mr7.0.1.1
mr7.0.1.2
mr7.0.1.3
mr7.0.1.4
mr7.0.1.5
mr7.0.1.6
mr7.0.2.1
mr7.0.2.2
mr7.0.2.3
mr7.0.2.4
mr7.0.2.5
mr7.0.2.6
mr7.0.2.7
mr7.0.2.8
mr7.0.2.9
mr7.1.1.1
mr7.1.1.2
mr7.1.1.3
mr7.1.1.4
mr7.1.1.5
mr7.1.1.6
mr7.1.2.1
mr7.1.2.2
mr7.1.2.3
mr7.1.2.4
mr7.1.2.5
mr7.1.2.6
mr7.1.2.7
mr7.2.1.1
mr7.2.1.10
mr7.2.1.11
mr7.2.1.12
mr7.2.1.13
mr7.2.1.14
mr7.2.1.15
mr7.2.1.2
mr7.2.1.3
mr7.2.1.4
mr7.2.1.5
mr7.2.1.6
mr7.2.1.7
mr7.2.1.8
mr7.2.1.9
mr7.2.2.1
mr7.2.2.2
mr7.2.2.3
mr7.3.1.1
mr7.3.1.10
mr7.3.1.11
mr7.3.1.12
mr7.3.1.2
mr7.3.1.3
mr7.3.1.4
mr7.3.1.5
mr7.3.1.6
mr7.3.1.7
mr7.3.1.8
mr7.3.1.9
mr7.3.2.1
mr7.3.2.2
mr7.4.1.1
mr7.4.1.2
mr7.4.1.3
mr7.4.1.4
mr7.4.1.5
mr7.4.1.6
mr7.4.1.7
mr7.4.1.8
mr7.4.1.9
mr7.4.2.1
mr7.4.2.2
mr7.5.1.1
mr7.5.1.10
mr7.5.1.11
mr7.5.1.12
mr7.5.1.13
mr7.5.1.14
mr7.5.1.15
mr7.5.1.16
mr7.5.1.17
mr7.5.1.18
mr7.5.1.19
mr7.5.1.2
mr7.5.1.20
mr7.5.1.21
mr7.5.1.3
mr7.5.1.4
mr7.5.1.5
mr7.5.1.6
mr7.5.1.7
mr7.5.1.8
mr7.5.1.9
mr7.5.10.1
mr7.5.10.2
mr7.5.10.3
mr7.5.10.4
mr7.5.10.5
mr7.5.11.1
mr7.5.12.1
mr7.5.13.1
mr7.5.2.1
mr7.5.2.10
mr7.5.2.11
mr7.5.2.12
mr7.5.2.13
mr7.5.2.14
mr7.5.2.15
mr7.5.2.16
mr7.5.2.2
mr7.5.2.3
mr7.5.2.4
mr7.5.2.5
mr7.5.2.6
mr7.5.2.7
mr7.5.2.8
mr7.5.2.9
mr7.5.3.1
mr7.5.3.10
mr7.5.3.11
mr7.5.3.12
mr7.5.3.13
mr7.5.3.14
mr7.5.3.15
mr7.5.3.16
mr7.5.3.17
mr7.5.3.18
mr7.5.3.19
mr7.5.3.2
mr7.5.3.20
mr7.5.3.21
mr7.5.3.22
mr7.5.3.23
mr7.5.3.24
mr7.5.3.25
mr7.5.3.3
mr7.5.3.4
mr7.5.3.5
mr7.5.3.6
mr7.5.3.7
mr7.5.3.8
mr7.5.3.9
mr7.5.4.1
mr7.5.4.10
mr7.5.4.11
mr7.5.4.12
mr7.5.4.13
mr7.5.4.14
mr7.5.4.15
mr7.5.4.2
mr7.5.4.3
mr7.5.4.4
mr7.5.4.5
mr7.5.4.6
mr7.5.4.7
mr7.5.4.8
mr7.5.4.9
mr7.5.5.1
mr7.5.5.2
mr7.5.5.3
mr7.5.5.4
mr7.5.5.5
mr7.5.5.6
mr7.5.5.7
mr7.5.6.1
mr7.5.6.10
mr7.5.6.2
mr7.5.6.3
mr7.5.6.4
mr7.5.6.5
mr7.5.6.6
mr7.5.6.7
mr7.5.6.8
mr7.5.6.9
mr7.5.7.1
mr7.5.7.2
mr7.5.7.3
mr7.5.8.1
mr7.5.8.2
mr7.5.8.3
mr7.5.8.4
mr7.5.9.1
mr7.5.9.2
mr7.5.9.3
mr7.5.9.4
mr7.5.9.5
mr8.0.1.1
mr8.0.1.10
mr8.0.1.11
mr8.0.1.12
mr8.0.1.13
mr8.0.1.14
mr8.0.1.15
mr8.0.1.16
mr8.0.1.2
mr8.0.1.3
mr8.0.1.4
mr8.0.1.5
mr8.0.1.6
mr8.0.1.7
mr8.0.1.8
mr8.0.1.9
mr8.0.2.1
mr8.0.2.2
mr8.1.1.1
mr8.1.1.10
mr8.1.1.11
mr8.1.1.12
mr8.1.1.13
mr8.1.1.14
mr8.1.1.15
mr8.1.1.16
mr8.1.1.2
mr8.1.1.3
mr8.1.1.4
mr8.1.1.5
mr8.1.1.6
mr8.1.1.7
mr8.1.1.8
mr8.1.1.9
mr8.1.2.1
mr8.2.1.1
mr8.2.1.10
mr8.2.1.11
mr8.2.1.12
mr8.2.1.2
mr8.2.1.3
mr8.2.1.4
mr8.2.1.5
mr8.2.1.6
mr8.2.1.7
mr8.2.1.8
mr8.2.1.9
mr8.2.2.1
mr8.3.1.1
mr8.3.1.2
mr8.3.1.3
mr8.3.1.4
mr8.3.1.5
mr8.3.1.6
mr8.3.1.7
mr8.3.2.1
mr8.3.2.2
mr8.4.1.1
mr8.4.1.10
mr8.4.1.11
mr8.4.1.2
mr8.4.1.3
mr8.4.1.4
mr8.4.1.5
mr8.4.1.6
mr8.4.1.7
mr8.4.1.8
mr8.4.1.9
mr8.4.2.1
mr8.4.2.2
mr8.4.2.3
mr8.5.1.1
mr8.5.1.10
mr8.5.1.2
mr8.5.1.3
mr8.5.1.4
mr8.5.1.5
mr8.5.1.6
mr8.5.1.7
mr8.5.1.8
mr8.5.1.9
mr8.5.10.1
mr8.5.10.2
mr8.5.11.1
mr8.5.11.2
mr8.5.11.3
mr8.5.11.4
mr8.5.12.1
mr8.5.2.1
mr8.5.2.10
mr8.5.2.11
mr8.5.2.12
mr8.5.2.13
mr8.5.2.14
mr8.5.2.15
mr8.5.2.16
mr8.5.2.17
mr8.5.2.2
mr8.5.2.3
mr8.5.2.4
mr8.5.2.5
mr8.5.2.6
mr8.5.2.7
mr8.5.2.8
mr8.5.2.9
mr8.5.3.1
mr8.5.3.10
mr8.5.3.11
mr8.5.3.12
mr8.5.3.13
mr8.5.3.14
mr8.5.3.2
mr8.5.3.3
mr8.5.3.4
mr8.5.3.5
mr8.5.3.6
mr8.5.3.7
mr8.5.3.8
mr8.5.3.9
mr8.5.4.1
mr8.5.4.10
mr8.5.4.11
mr8.5.4.12
mr8.5.4.13
mr8.5.4.14
mr8.5.4.2
mr8.5.4.3
mr8.5.4.4
mr8.5.4.5
mr8.5.4.6
mr8.5.4.7
mr8.5.4.8
mr8.5.4.9
mr8.5.5.1
mr8.5.5.2
mr8.5.5.3
mr8.5.5.4
mr8.5.5.5
mr8.5.5.6
mr8.5.5.7
mr8.5.5.8
mr8.5.5.9
mr8.5.6.1
mr8.5.6.2
mr8.5.6.3
mr8.5.6.4
mr8.5.6.5
mr8.5.6.6
mr8.5.6.7
mr8.5.6.8
mr8.5.7.1
mr8.5.7.2
mr8.5.7.3
mr8.5.7.4
mr8.5.8.1
mr8.5.8.2
mr8.5.8.3
mr8.5.8.4
mr8.5.8.5
mr8.5.8.6
mr8.5.9.1
mr8.5.9.2
mr8.5.9.3
mr9.0.1.1
mr9.0.1.2
mr9.0.1.3
mr9.0.1.4
mr9.0.1.5
mr9.0.1.6
mr9.0.1.7
mr9.1.1.1
mr9.1.1.10
mr9.1.1.11
mr9.1.1.12
mr9.1.1.13
mr9.1.1.14
mr9.1.1.15
mr9.1.1.2
mr9.1.1.3
mr9.1.1.4
mr9.1.1.5
mr9.1.1.6
mr9.1.1.7
mr9.1.1.8
mr9.1.1.9
mr9.2.1.1
mr9.2.1.2
mr9.2.1.3
mr9.2.1.4
mr9.2.1.5
mr9.2.1.6
mr9.3.1.1
mr9.3.1.10
mr9.3.1.2
mr9.3.1.3
mr9.3.1.4
mr9.3.1.5
mr9.3.1.6
mr9.3.1.7
mr9.3.1.8
mr9.3.1.9
mr9.4.1.1
mr9.4.1.10
mr9.4.1.11
mr9.4.1.2
mr9.4.1.3
mr9.4.1.4
mr9.4.1.5
mr9.4.1.6
mr9.4.1.7
mr9.4.1.8
mr9.4.1.9
mr9.5.1.1
mr9.5.1.10
mr9.5.1.11
mr9.5.1.12
mr9.5.1.13
mr9.5.1.14
mr9.5.1.15
mr9.5.1.16
mr9.5.1.17
mr9.5.1.18
mr9.5.1.19
mr9.5.1.2
mr9.5.1.20
mr9.5.1.21
mr9.5.1.22
mr9.5.1.23
mr9.5.1.24
mr9.5.1.25
mr9.5.1.26
mr9.5.1.27
mr9.5.1.28
mr9.5.1.29
mr9.5.1.3
mr9.5.1.30
mr9.5.1.31
mr9.5.1.4
mr9.5.1.5
mr9.5.1.6
mr9.5.1.7
mr9.5.1.8
mr9.5.1.9
mr9.5.2.1
mr9.5.2.10
mr9.5.2.11
mr9.5.2.12
mr9.5.2.13
mr9.5.2.14
mr9.5.2.15
mr9.5.2.16
mr9.5.2.17
mr9.5.2.18
mr9.5.2.19
mr9.5.2.2
mr9.5.2.20
mr9.5.2.21
mr9.5.2.22
mr9.5.2.23
mr9.5.2.24
mr9.5.2.25
mr9.5.2.26
mr9.5.2.27
mr9.5.2.28
mr9.5.2.29
mr9.5.2.3
mr9.5.2.30
mr9.5.2.31
mr9.5.2.32
mr9.5.2.4
mr9.5.2.5
mr9.5.2.6
mr9.5.2.7
mr9.5.2.8
mr9.5.2.9
mr9.5.3.1
mr9.5.3.10
mr9.5.3.11
mr9.5.3.12
mr9.5.3.13
mr9.5.3.14
mr9.5.3.15
mr9.5.3.16
mr9.5.3.17
mr9.5.3.18
mr9.5.3.19
mr9.5.3.2
mr9.5.3.20
mr9.5.3.21
mr9.5.3.22
mr9.5.3.3
mr9.5.3.4
mr9.5.3.5
mr9.5.3.6
mr9.5.3.7
mr9.5.3.8
mr9.5.3.9
mr9.5.4.1
mr9.5.4.10
mr9.5.4.11
mr9.5.4.12
mr9.5.4.13
mr9.5.4.14
mr9.5.4.15
mr9.5.4.16
mr9.5.4.17
mr9.5.4.18
mr9.5.4.2
mr9.5.4.3
mr9.5.4.4
mr9.5.4.5
mr9.5.4.6
mr9.5.4.7
mr9.5.4.8
mr9.5.4.9
mr9.5.5.1
mr9.5.5.10
mr9.5.5.11
mr9.5.5.12
mr9.5.5.13
mr9.5.5.14
mr9.5.5.15
mr9.5.5.16
mr9.5.5.17
mr9.5.5.18
mr9.5.5.2
mr9.5.5.3
mr9.5.5.4
mr9.5.5.5
mr9.5.5.6
mr9.5.5.7
mr9.5.5.8
mr9.5.5.9
mr9.5.6.1
mr9.5.6.10
mr9.5.6.11
mr9.5.6.2
mr9.5.6.3
mr9.5.6.4
mr9.5.6.5
mr9.5.6.6
mr9.5.6.7
mr9.5.6.8
mr9.5.6.9
mr9.5.7.1
mr9.5.7.2
mr9.5.7.3
mr9.5.7.4
mr9.5.7.5
mr9.5.7.6
mr9.5.7.7
mr9.5.8.1
mr9.5.8.2
mr9.5.8.3
mr9.5.8.4
mr9.5.8.5
mr9.5.9.1
${ noResults }
5502 Commits (mr13.0.1)
Author | SHA1 | Message | Date |
---|---|---|---|
|
cfe0a44b8d |
MT#60585 add user ban by IP address, ban JWT invalid attempts
* ban users by IP addresses * ban invalid JWT attempts Change-Id: I0c7746aa751ca96cba0ce4d1388646ba4890a422 |
9 months ago |
|
60fa23cb68 |
MT#60585 add user ban support
* users for admin/subscriber realms are now banned if failed to login X amount of times (UI/API). * rework Redis connection and it's now a Catalyst plugin NGCP::Redis accessed by $c->redis_get_connection({database => 19}), the connection per database, per worker process is established only once and then reused (with auto built-in reconnect support). * remove Utils::Redis.pm as it does not have any code/logic anymore. * ban values are taken from $config->{security}{login} as - ban_enable: 1 - ban_expire_time: 3600 ban expire time in seconds - max_attempts: 5 * if max_attempts set to 0, the ban functionality is disabled as it requires to be at least 1 to work. * upon successful login or ban, the failed attempts counter is removed * the failed attempts counter is also removed automatically with the expire time equals "ban_expire_time" or otherwise 3600 seconds. * user bans are logged into panel.log * banned user receives exactly the same return page/codes as per invalid logic. Change-Id: I05cc68c623ee289488fc64f1af50527004dcaae1 |
9 months ago |
|
d9f283cbc8 |
MT#59449 enhance password validation and handling
* passwords are now validated based on - minlen - maxlen - min lower case chars - min uppper case chars - min digits - min special chars * Data::Password::zxcvbn is used to calculate password score and reject passwords with score < 3 as weak (this library is ported from the Dropbox password validation) * Add password journals and check last used passwords in the journals * Improve password generator javascript function to generate a password with at least 4 of each of the char group types. * Currently affected are subcriber and admin entry creation or modification via UI/API * NGCP::Utils::Auth add optional bcrypt_cost support as last argument for generate_salted_hash and get_usr_salted_pass Change-Id: I100c25107d91741d5101bc58d29a3fa558b0b017 |
9 months ago |
|
43d112bd5e |
MT#60558 add max subscribers/groups license checks
* max_subscribers, max_pbx_subscribers, max_pbx_groups license checks are added for subscriber/group creation in UI/API * new accessor $c->license_meta that returns meta license flags hashref * new accessor $c->license_max_subscribers * new accessor $c->license_max_pbx_subscribers * new accessor $c->license_max_pbx_groups * the new accessors (except license_meta) return -1 instead of 'unlimited' to ease off comprarsion * 403 Forbidden is returned by the API if a license is violated. Change-Id: I3f5a949efc84bf85b76b33404b37b362ec484d5f |
9 months ago |
|
9d021be65a |
MT#59979 add license control
* UI and API parts are now under license control * new Util::License::get_license($c, $name) - fetches license status by name (1 if enabled, and also if /proc/ngcp/check if 'ok') * add Catalyst::Plugins::NGCP::License with license($name) to fetch valid license by name from anywhere using $c->license('pbx') or from the templates using c.license('pbx'). It internally uses Util::License::get_license($c, $name) * License::get_license_status($c) now requires $c as first argument as well logs license status check errors. * new ActionRoles::License that enables usage of :Does(License) RequiresLicense('pbx') LicenseDetachTo('/denied_page') in the Controller chains * Add license control for UI elements and return 403 Forbidden if a resource is covered by licenses and the license is not active * Hide UI elements if a license is not active * API/Entities/Entities new $c->set_config key: - per endpoint: $c->set_config({ required_licenses => [qw/pbx device_provisioning/] } - or per method: $c->set_config({ required_licenses => { POST => [qw/pbx device_provisioning/] } } } * In case if an API endpoint does not have a license: 403 Forbidden "Invalid license" reply is returned. * Add license based restrictions to API endpoints * /api documentation: - completely hide endpoints that do not have an active license - hide only methods that does not have an active license Change-Id: Iba45fc5068b02306a617fed7b5405f2210574b61 |
9 months ago |
|
9c103302c8 |
MT#60575 dynamically load provisioning templates module
Change-Id: Ibff509825f82a75c9b0221505a1673d78b401989 |
9 months ago |
|
551cc2fb98 |
MT#60515 rename hm inbound/outbound directions to a_inbound/a_outbound
inbound/outbound no longer represent the "full" direction and belong only to A leg, so they are renamed to a_inbound/a_outbound accordingly. Change-Id: I639b799c3649c9b3ca78eee831b49ef0cfa14287 |
9 months ago |
|
0fd36ace55 |
MT#60520 prov templates: fix lookup of items
item (contract, contact, subscriber) lookup will pick the first matching element (an arbitrary one if multiple are matching). ie. when lookup identifiers are too loose (f.ex. subscribers without domain in a multidomain setup) it might pick a wrong item - which is ok (supposed to bail out at a later step) unless that wrong item is a *terminated* one, causing to proceed checks on a terminated record (which can never happen from API or UI side since those hide terminated items), which produces a misleading 500 error in the end. we prevent this now by ensuring that looked up items are not terminated ones. even if the looked up items is not the desired one, becasue of an inaccurate template. Change-Id: I6691937c2e62b05915c7eac9980224abe2185b2c |
9 months ago |
|
fefa5ea173 |
MT#60511 Form/Header/Rule add direction "b_outbound"
This is needed to perform manipulations to the SIP message just before it leaves the system on the B-Leg side. Change-Id: If93d0277582a086253b84088a93adc4ecfa187b1 |
9 months ago |
|
10a88cf669 |
MT#58964 /api/platforminfo add license_meta
* new Utils::License::get_license_meta($c) to fetch license meta ({} by default) that contains license related metadata such as current and max amount of subcsribers and license valid until date. currently the following data is fetched from /proc/ngcp check current_calls current_pbx_groups current_pbx_subscribers current_registered_subscribers current_subscribers license_valid_until max_calls max_pbx_groups max_pbx_subscribers max_registered_subscribers max_subscribers valid * Controller::API::Root platforminfo now also returns license_meta Change-Id: I323cdfd646335a408e0150ecd69ad950fa0461ab |
9 months ago |
|
524a264850 |
MT#60498 add search by not_null, change null param
* add search by not_null for fields that ends with _id and integers, that adds "IS NOT NULL" to the SQL search query by the field. * null and not null values are expected now as $null and $not_null to avoid conflicts when user searches by null strings that may be a valid case. Change-Id: I8e8b8c9060e985dfe2b94cbfcca1587f05477fe9 |
9 months ago |
|
6cb38f0971 |
MT#58964 do not render licenses for public platforminfo
* public access (no user) to /api/platforminfo gets only the default public json file without licenses rendering Change-Id: I636e042944c7c18a08db22e9142a8624c67332c7 |
10 months ago |
|
522fd97020 |
MT#58964 /api/platforminfo add licenses info
* NGCP::Utils::License new function get_licenses() that reads /proc/ngcp/flags/ and returns all files with content 1. * api/platforminfo.tt template now calls a stashed callback (coderef) that decodes provided json file, includes licenses and returns encoded the json back. * ngcp-panel.service changes # Files + directories not directly associated are made invisible in the /proc/ file system # ProcSubset=pid # Disabled: MT#58964, to be able to read /proc/ngcp/flags/ # Processes owned by other users are hidden from /proc/ # ProtectProc=invisible # Disabled: MT#58964, to be able to read /proc/ngcp/flags/ Change-Id: I84b6707a918e3f4f271e32b9353f320753c5ae68 |
10 months ago |
|
ca908bf629 |
MT#60400 /api/soundsets remove null search detection
* customer_id search param now has the same search logic as the rest as it had before 'null' detection and conversion => 'undef' whereas it's not needed anymore because it's now supported globally. The change also fixes an empty response issue. Change-Id: If95de44d16ca2871da72d0ee019850802a3a94dd |
10 months ago |
|
5d26436c05 |
MT#60392 /api/ncoslnpcarriers fix reseller role typo
* fix reseller role typo in allowed_roles Change-Id: Ia2da00f7317eb64cfbe0e2c5069a75a9b24e24e5 |
10 months ago |
|
244b4f786b |
MT#60392 /api/ncoslnpcarriers allow reseller
* resellers should be able to create/update and delete NCOS LNP Carrier entries using exising LNP Carriers. Change-Id: I85d900c194d46af8d888e2f854729a3ca52711fe |
10 months ago |
|
f72f8291a7 |
MT#60393 /api/timesets fix reseller_id validation
* fix reselelr_id for 'reseller' role and it's now automatically set to the user's reseller_id instead of throwing a validation error Change-Id: Ic732366aea6c4106c37961e599cd1e40fdaba5b2 |
10 months ago |
|
775ec90d5d |
MT#60392 /api/lnpcarriers allow reseller GET
* reseller role can use GET on the endpoint because it is needed for an NCOS Levels (which resellers can create). Change-Id: Ic793b0d74e767eb9e150a6ae3c67ff9f51c8cf6c |
10 months ago |
|
18597efb87 |
MT#60378 accept null same way as NULL for search
* search by value null is internally translated to undef to say search for records without a value, same way as it already works for NULL value, just null is more expected and easier to use by clients as it's how its represented in the resource Change-Id: Ia8a75bad95a34dd8167162d0f09a1ec7c4056105 |
10 months ago |
|
6543743992 |
MT#60162 improve expand functionality for collections
* in general expand collection now performs only 1 sql query to per expand field to fetch all items by the ids instead of fetching them for every single collection item, that should significantly increase performance in case of large databases and reduce work for the database * introduce $c->stash->{expand_cache} that contains cached data for the expand fields to avoid multiple same calculations * expand_field() and expand_field_data() have been reworked to support expand_cache * new method expand_prepare_collection() is called for all API GET collection methods before preparing resource hal fields, to change the expand logic to only cache the data instead of fetching it from the database * new method expand_collection_fields() that is called in all API GET collection methods after the @embedded data is prepared to finalise the expand collection fields * for expand collection there is only 1 SQL request per expand field that fetches all items -in [ids to expand] and then the expand_collection_fields() uses the cached items_by_ids with O(1) fetch from the cache by id Change-Id: Ie7c6115472878febf0d8c9b4d833f5c23b15c78b |
10 months ago |
|
9a2d66a00a |
MT#60238 /api/customerpreferences allow subscriberadmin
* subscriberadmin roles can now handle customer preferences belonging to the same customer and only those with expose_to_customer = '1' Change-Id: Iae9ab5d4a96a065b1a627d180dd523e805d954f3 |
11 months ago |
|
f81481ea66 |
MT#60236 disable mailtofaxsettings active state checks
* disable active state checks for subscriber and subscriberadmin roles in mailtofaxsettings because they can now change it similar to how they could do it in the old csc. Change-Id: Ica8039e83d2acc5e162c7902afcd4b97ac1c5b6d |
11 months ago |
|
0d8d68d9a5 |
MT#60236 /api/mailtofaxsettings allow subscriber roles
* subscriberadmin and subscriber can now use /api/mailtofaxsettings * adapt item_rs query for subscriberadmin and subscriber so that subscriberadmin can have access to all 'own' subscribers Change-Id: If8e768c5c06bc4e5f0a6ef9d15e19f542d8b6a4d |
11 months ago |
|
6926930b3a |
MT#60227 handle Accept: application/json header
* if Accept: applicaton/json header is provided for API request - the response's Content-Type header is set to application/json. The return content in this case is preserved as HAL but it's helpful for the clients that only expect aplication/json response Content-Type Change-Id: I8c60da4df7d639f45953d8ace699a59fefc88ddf |
11 months ago |
|
a46ef5b9e2 |
MT#60160 improve same primary number detection
* consider as the "same number" if old/new primary numbers are empty (undefined in the database as if a primary number exists at least cc and sn are mandatory). * check for new primary number "cc" existence when preparing comparsion to the existing primary number, as some clients may send an object value with null cc+ac+sn. Change-Id: I810cda7d7aa07f2d7e46dbca099bc327ef7b4963 |
11 months ago |
|
4545987532 |
Release new version 12.5.0.0+0~mr12.5.0.0
|
11 months ago |
|
f2478178f0 |
MT#60119 allow pbxfielddeveicepreferences to subscriberadmin role
* subscriberadmin role can now CRUD preferences for devices that are assigned to the customer. Change-Id: I09fe3c3b2ed670f0411970dc6402486a3cf6d4be |
12 months ago |
|
941c75ebe1 |
MT#59078 ?create_primary_acli= query param
creating or updating subscriber (-aliases) will modify the allowedcli (acli) preference, if the auto_allow_cli config option is set. the primary number will also be part of the acli list. when specifying ?create_primary_acli=false or ?create_primary_acli=0, the primary alias will no longer be added to acli. Change-Id: I4641e2b973de2afe2e36805140b1546cac2a699a |
12 months ago |
|
844a9e5920 |
MT#59011 Cleanup panel from the reference to "sip:localuser"
An outdated and not used implementation for the "sip:localuser" in the ngcp-panel. Change-Id: I7c83bee0da07f7fafe7b1cb669a8c5080bc8565e |
12 months ago |
|
42f8747a6f |
MT#59749 Add use_redirection flag to Call Forwards configuration
This new flag controls wether the CF is processed as usual (flag with value 0, default) or generates a 302 redirect message back to the caller (flag with value 1). The implementation cover both the UI and the API. Change-Id: Idf945262e17de0d77bb612101d268fd6ea7a309e |
1 year ago |
|
c8766cd567 |
MT#48844 Minor typo fixes
s/paramaters/parameters/ s/wihout/without/ s/If it mathes/If it matches/ s/ in in / in / s/the the/the/ (note: fixes translation issue which was introduced with commit |
1 year ago |
|
c6aaaddd87 |
MT#56301 move lock_provisioning_voip_subscriber before underrun_lock
* POST /api/subscribers/ invoke lock_provisioning_voip_subscriber() before underrun_lock(), so that if the subscriber is about to be locked due to customer balance costs, the lock_provisioning_lock_subscriber() invocation will not unlock it back straight after Change-Id: I55020f844c9aa76df2e2f057a88b2ae7c9ebbfcc |
1 year ago |
|
e4cda08bd4 |
MT#59835 /api/billingzones fix HAL ngcp:billingfees relation
* billing fees relation was rendering all associated billing fees and that was causing huge data sets to be returned if a billing zones had many fees, now instead a single link is returned /api/billingfees/?billing_zone_id=:id. this is also on par with other links like /api/billingfees/:id Change-Id: Iabb7afb3bf43abf9a22c71750d45a1962a7f16ec |
1 year ago |
|
df670f501f |
MT#56301 set locklevel of created subscribers only if specified
Change-Id: I90f2d68dee50ab240de4eb5af7495ddd551c00d8 |
1 year ago |
|
8945b8a5ac |
MT#56301 Fix API creation of an active subscriber with lock
Using API is possibile to edit an existing subscriber and set status: active and lock: 2. It is instead impossbile to create a new subscriber with the same configuration because the 'lock' param is not taken into account. The only way to properly setup lock level it is to set the status to 'locked' and this is in fact wrong. The fix address this issue and allow now to create a new subscriber with status: active and lock: 2. Change-Id: Id18e40bc001c5a7de30f5d148231bda93a3b1b3d |
1 year ago |
|
c006e9efc1 |
MT#59806 add missing cfdestinationsets HAL link type
* add missing: "_links" : { "ngcp:cftimesets" : [ .... ], in the collection representation Change-Id: I59fade61ae2679833c43fd5501d14ca45a376572 |
1 year ago |
|
b2a1bc00d1 |
MT#59806 adapt /api/cfdestinationsets to Entities
* Entites logic is used for GET/POST/PUT/PATCH/DELETE * Utils::CallForwards::check_destinations() do not obfuscate destinations that are returned in the response as all logged data is obfuscated anyways Change-Id: Ia79f9e236c966410e2640d719c3a7f5784cc4c2a |
1 year ago |
|
1872f342a0 |
MT#59478 Entities/EntitiesItem more $c->has_errors checks
* additional $c->has_errors checks for post/patch/put/delete to cover all possible expected called inherited methods scenarios and returns. Change-Id: I0e09ba62bcaa51d582315d9cbb672a4cf11bacf0 |
1 year ago |
|
9e3653341a |
MT#59478 adapt /api/cftimesets to global transactions, more fixes
* /api/cftimesets now fully use Entities/EntitiesItem * EntitiesItem: delete(): fix delete_item() expression processing * Entities/EntitiesItem: post/put/patch/delete: go to TX_END in scenarios where after a method call (e.g. update_item()) there is a normal return from the function but errors in $c->error, so that they are also caught correctly Change-Id: I3bef409ded590796c2bba4f30acd28b02e99065b |
1 year ago |
|
91f1dcf37e |
MT#59478 /api/ root error handling
* clear errors in Controller::API::Root::end so that they are not interfere with generated ones * API::error(): add $c->stash->{is_api_error_response} = 1 to track it in log_response() * API::log_response(): distinguish and correctly correct errors for cases when is_api_response == 1 and also when there were $c->error('error') calls in the code, to log them correctly in both cases Change-Id: Id922b8219832c1b99815d9d608309035b9b25cff |
1 year ago |
|
4e2e141308 |
MT#59478 Entities fix non-existing $item handling in put/patch/delete
* the error produced by item_id_is_valid() is returned instead of a new one is generated * fix incorrect expression on delete_item() in delete() Change-Id: Ic8e4e24c70bbcd99ec414d901eb2842ee39ae7de |
1 year ago |
|
bf249f9d96 |
MT#59797 /api/headerruleconditions (actions) fix reseller role
* fix resultset when user role is reseller so that reseller_id is joined correctly and a db error is not produced anymore. Change-Id: I2a1b357037d983f23770bb59519fc2cb8b68a7e4 |
1 year ago |
|
9d598d4502 |
MT#59478 improve MSG, LOG log string data storing
* $c->error array now contains the $message as the first element instead, so that it's possible to obtain all the error data in the code when fetching it from @{$c->error}. the first element is not logged in the error log. * api_response $c->response_body part is now stored in MSG= and possible errors / other log data is now stored in LOG= to: - reduce amount of log lines when an API error response occurs from 2 to 1 - the message part usually contains either HTTP response message (e.g. Internal Server Error) or a validation message string, so it belongs to the MSG= part of the log line, where as the internal log data is more related to the LOG= part - both MSG= and LOG= parts are escaped for GDPR related obfuscation * Utils::Messag::info(): $msg is now also obfuscated if it's detected as a reference (also because logging is moved for the API part to $msg), as well as truncated for possible new-line char and white-spaces. Change-Id: I3b670b2251ec3060037ed6863f18d95975120b8d |
1 year ago |
|
9dbd6b0e88 |
MT#59478 /api/contracts address $now and hal_from_contract
* the following changes resolve an issue where $now in Role/Contracts resource_from_item appeared as an object and failed subsequent logic: - hal_from_contract is renamed to hal_from_item to match correctly the parent method - call hal_from_item and pass $now string there correctly as $params { now => $now } Change-Id: I5c02d5f7df5d9000550505ad120b9531f87e8d65 |
1 year ago |
|
14e5b918b3 |
MT#59748 drop ngcp-provisioning-template test dbhost
Change-Id: I7218ed36cff2f51f5a6f862f41e5da94ff0d464b |
1 year ago |
|
205b27a267 |
MT#59478 API better transaction and error handling
* Role/Entities*: POST/PUT/PATCH/DELETE methods changes: - support deadlock detection and transaction retry (2 retry attempts at the moment) - improve transaction control, use local $guard instead of saving the ref to $c->stash, as in that case it went out of scope too late and also reported an error message into the log about abnormal $guard out of scope interruption - move all non transaction related code outside of the scope - add error handling when methods such as update_item, and a like do not return the expected data, instead of simply going out of scope and resulting in an uncontrolled reply * Role/API: - rework transaction control: + get_transaction_control() is renamed to start_transaction() to better reflect what it does + complete_transaction() is renamed to commit_transaction() + remove unused %params arg + pass $guard into commit_transaction() instead of having it stored as $c->stash->{transaction_guard) that caused the $guard ref to be destroyed much late than expected (there was also a typo as transaction_quard, which is not relevant anymore with the changes + add check_deadlock() that is invoked when an exception is caught or an $c->errors contain an error, and if the error message represents a transaction error, the transaction block is re-invoked via "goto TX_START" - rework error(): + it now accepts args as following: ($self, $c, $code, $message, @errors) # code -> returned as HTTP code in the reply # message -> returned as HTTP message in the reply # errors -> contain errors for internal logging, last element often contains a DBIx exception + populates all @errors into $c->error so they are available on demend in the code via $c->error or $c->last_error + $c->log->error is not invoked now as the errors become printed in log_response() - log_response() now prints collected errors from $c->error correctly as a separate log line, that is alike to the other api logs so that those can be looked up by the request's tx_id, also all errors are now printed only into api.log * Adjust all $self->error() calls in catch($e) to include $e as the last argument, as well as the duplicate $c->log->error is removed from those ocassions * Remove all $c->log->error() calls as they are replaced with either $self->error() (that logs it correctly into api.log) or $c->error('err') that also adds it correctly into api.log * API::CallForwards: rework to use Entities/EntitiesItem * API::Contracts: rework POST to use Entities * API::PeeringGroups: rework POST to use Entities * API::SubscriberRegistrations: rework POST to use Entities * API::RewriteRuleSets: improve create_item() functionality * Utils/Message: add 'api_retry' log type * $c->session->{api_request_tx_id} is changed to $c->stash->{api_request_tx_id} because sometimes the session ref is different and a different tx_id becomes used Change-Id: I633ce7a8047b1bf00a2f6889003088edf0825dcd |
1 year ago |
|
1fdaa6bd47 |
MT#55677 fix all ngcp-panel-selenium tests
Change-Id: I7f1f1e5fe9632dad233818b3a43b78a54ff97b98 |
1 year ago |
|
b22d2d824c |
MT#59624 update firefox in docker to fix segfaults
Change-Id: I48690f8f2eddf7dc00df0f62437956d6d8f7c38e |
1 year ago |
|
e7b131247e |
Release new version 12.4.0.0+0~mr12.4.0.0
|
1 year ago |
|
aef4c89197 |
MT#59662 enhance subscriber assigned header rules/sets handling
* POST /api/headerrules now supports either 'set_id' or 'subscriber_id'. When 'subsriber_id' is specified, a subscriber assigned header rule set is automatically created if it does not exist, as well as automatically removed when its last header rule is deleted. * It is now possible to directly GET and DELETE /api/headerrules/:id where :id is a subscriber assigned header rule. * It is now possible to directly GET and DELETE /api/headerrulesets/:id where :id is a subscriber assigned header rule set. * Improve /api/headerrules data validation and duplicate header rule detection. * It is now possible to expand by /api/headerrules/?expand=set_id field Change-Id: I681bc61c2eed47a8e54847f07f31134f643930c2 |
1 year ago |