commit 76922166c480bb1bec3ca2210cdcc27326a02ca5 Author: ChrisChrome Date: Sat Jan 11 01:06:52 2025 -0700 ITS ALIVE AGAIN: diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c6bba59 --- /dev/null +++ b/.gitignore @@ -0,0 +1,130 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* diff --git a/dev/endpoints.txt b/dev/endpoints.txt new file mode 100644 index 0000000..c2fe1b0 --- /dev/null +++ b/dev/endpoints.txt @@ -0,0 +1,802 @@ + + Endpoint: + I/OAuth: + Aor: + Contact: + Transport: + Identify: + Match: + Channel: + Exten: CLCID: +========================================================================================== + + Endpoint: 1000/1000 Not in use 0 of inf + InAuth: 1000-auth/1000 + Aor: 1000 50 + Contact: 1000/sip:1000@67.218.74.175:17534;x-ast-or 47a3db5b38 Avail 54.140 + Contact: 1000/sip:1000@67.218.74.175:5060;x-ast-ori 8bcbb75be3 Avail 68.837 + Contact: 1000/sip:1000@67.218.74.175:51513;x-ast-or 9f6c6d58db Avail 75.536 + + Endpoint: 1001/1001 Unavailable 0 of inf + InAuth: 1001-auth/1001 + Aor: 1001 100 + + Endpoint: 1002/1002 Not in use 0 of inf + InAuth: 1002-auth/1002 + Aor: 1002 5 + Contact: 1002/sip:1002@69.71.12.69:11992;x-ast-orig 2ef4026678 Avail 61.835 + + Endpoint: 1003/1003 Not in use 0 of inf + InAuth: 1003-auth/1003 + Aor: 1003 10 + Contact: 1003/sip:1003@104.55.71.173:5062 13e5c2c448 Avail 69.475 + + Endpoint: 1004/1004 Not in use 0 of inf + InAuth: 1004-auth/1004 + Aor: 1004 5 + Contact: 1004/sip:1004@98.209.177.59:5065;x-ast-ori 4b1ec12b04 Avail 76.044 + Contact: 1004/sip:1004@98.209.177.59:5066;x-ast-ori e59bc56c03 Avail 84.058 + + Endpoint: 1005/1005 Unavailable 0 of inf + InAuth: 1005-auth/1005 + Aor: 1005 5 + + Endpoint: 1006/1006 Unavailable 0 of inf + InAuth: 1006-auth/1006 + Aor: 1006 5 + + Endpoint: 1007/1007 Not in use 0 of inf + InAuth: 1007-auth/1007 + Aor: 1007 5 + Contact: 1007/sip:1007@167.99.119.244:59242;rinstan 07857e523a Avail 78.755 + + Endpoint: 1008/1008 Not in use 0 of inf + InAuth: 1008-auth/1008 + Aor: 1008 5 + Contact: 1008/sip:1008@96.42.155.163:1026;x-ast-ori 2e7a065230 Avail 93.602 + + Endpoint: 1009/1009 Not in use 0 of inf + InAuth: 1009-auth/1009 + Aor: 1009 5 + Contact: 1009/sip:1009@167.99.48.91:26800;rinstance e2b49e1c2f Avail 83.245 + + Endpoint: 1010/1010 Not in use 0 of inf + InAuth: 1010-auth/1010 + Aor: 1010 5 + Contact: 1010/sip:1010@102.182.171.93:5060;rinstanc 49eb463071 Avail 418.295 + + Endpoint: 1011/1011 Unavailable 0 of inf + InAuth: 1011-auth/1011 + Aor: 1011 5 + + Endpoint: 1012/1012 Unavailable 0 of inf + InAuth: 1012-auth/1012 + Aor: 1012 5 + + Endpoint: 1013/1013 Unavailable 0 of inf + InAuth: 1013-auth/1013 + Aor: 1013 5 + + Endpoint: 1014/1014 Unavailable 0 of inf + InAuth: 1014-auth/1014 + Aor: 1014 5 + + Endpoint: 1015/1015 Not in use 0 of inf + InAuth: 1015-auth/1015 + Aor: 1015 5 + Contact: 1015/sip:1015@69.141.149.28:5060;x-ast-ori 300431f712 Avail 90.213 + + Endpoint: 1016/1016 Not in use 0 of inf + InAuth: 1016-auth/1016 + Aor: 1016 5 + Contact: 1016/sip:1016@167.99.119.203:16965;transpo 670cad476e Avail 74.584 + + Endpoint: 1017/1017 Not in use 0 of inf + InAuth: 1017-auth/1017 + Aor: 1017 5 + Contact: 1017/sip:1017@174.2.17.180:52648;ob 4f490e3507 Avail 218.510 + + Endpoint: 1018/1018 Not in use 0 of inf + InAuth: 1018-auth/1018 + Aor: 1018 1 + Contact: 1018/sip:1018@50.54.126.17:61998;x-ast-ori 1fd4845097 Avail 72.223 + + Endpoint: 1019/1019 Not in use 0 of inf + InAuth: 1019-auth/1019 + Aor: 1019 10 + Contact: 1019/sip:1019@50.54.126.17:42502;x-ast-ori d5a2c2f65a Avail 77.525 + + Endpoint: 1020/1020 Not in use 0 of inf + InAuth: 1020-auth/1020 + Aor: 1020 100 + Contact: 1020/sip:1020@107.15.163.194:5065 8d992b6dc3 Avail 102.265 + Contact: 1020/sip:1020@107.15.163.194:2488 e2b411b258 Avail 97.109 + + Endpoint: 1021/1021 Unavailable 0 of inf + InAuth: 1021-auth/1021 + Aor: 1021 5 + + Endpoint: 1022/1022 Unavailable 0 of inf + InAuth: 1022-auth/1022 + Aor: 1022 5 + + Endpoint: 1023/1023 Unavailable 0 of inf + InAuth: 1023-auth/1023 + Aor: 1023 5 + + Endpoint: 1024/1024 Unavailable 0 of inf + InAuth: 1024-auth/1024 + Aor: 1024 5 + + Endpoint: 1025/1025 Unavailable 0 of inf + InAuth: 1025-auth/1025 + Aor: 1025 5 + + Endpoint: 1026/1026 Not in use 0 of inf + InAuth: 1026-auth/1026 + Aor: 1026 5 + Contact: 1026/sip:1026@66.242.81.122:31000 ec9bc01ddf Avail 76.415 + + Endpoint: 1027/1027 Unavailable 0 of inf + InAuth: 1027-auth/1027 + Aor: 1027 5 + + Endpoint: 1028/1028 Unavailable 0 of inf + InAuth: 1028-auth/1028 + Aor: 1028 5 + + Endpoint: 1029/1029 Unavailable 0 of inf + InAuth: 1029-auth/1029 + Aor: 1029 5 + + Endpoint: 1030/1030 Unavailable 0 of inf + InAuth: 1030-auth/1030 + Aor: 1030 5 + + Endpoint: 1031/1031 Unavailable 0 of inf + InAuth: 1031-auth/1031 + Aor: 1031 5 + + Endpoint: 1032/1032 Not in use 0 of inf + InAuth: 1032-auth/1032 + Aor: 1032 5 + Contact: 1032/sip:1032@96.42.155.163:5060;x-ast-ori 721e48bc2d Avail 88.601 + + Endpoint: 1033/1033 Not in use 0 of inf + InAuth: 1033-auth/1033 + Aor: 1033 5 + Contact: 1033/sip:1033@173.52.119.43:1050;x-ast-ori fc2b3122d4 Avail 97.783 + + Endpoint: 1034/1034 Not in use 0 of inf + InAuth: 1034-auth/1034 + Aor: 1034 5 + Contact: 1034/sip:1034@162.204.50.197:5060;x-ast-or 16e2fd8da0 Avail 66.626 + Contact: 1034/sip:1034@162.204.50.197:1046;x-ast-or 7a2f752f58 Avail 73.358 + + Endpoint: 1035/1035 Not in use 0 of inf + InAuth: 1035-auth/1035 + Aor: 1035 5 + Contact: 1035/sip:1035@192.226.159.87:5060 d0d9413a83 Avail 114.964 + + Endpoint: 1036/1036 Not in use 0 of inf + InAuth: 1036-auth/1036 + Aor: 1036 30 + Contact: 1036/sip:1036@159.89.179.103:46694;rinstan 3db35dd766 Avail 75.091 + Contact: 1036/sip:1036@174.174.37.162:54611;line=qn 631805d8d9 Avail 58.794 + Contact: 1036/sip:1036@174.174.37.162:11271;x-ast-o 90d5abdeb0 Unavail nan + Contact: 1036/sip:1036@174.174.37.162:27208;x-ast-o dc9dbc079d Avail 85.439 + + Endpoint: 1037/1037 Unavailable 0 of inf + InAuth: 1037-auth/1037 + Aor: 1037 5 + + Endpoint: 1038/1038 Not in use 0 of inf + InAuth: 1038-auth/1038 + Aor: 1038 30 + Contact: 1038/sip:1038@174.174.37.162:59252;x-ast-o 38dbb1425a Unavail nan + Contact: 1038/sip:1038@174.174.37.162:5062;x-ast-or eedaea7b6d Avail 101.747 + Contact: 1038/sip:1038@174.174.37.162:5060;x-ast-or fc2e28a480 Unavail nan + + Endpoint: 1039/1039 Unavailable 0 of inf + InAuth: 1039-auth/1039 + Aor: 1039 100 + + Endpoint: 1040/1040 Unavailable 0 of inf + InAuth: 1040-auth/1040 + Aor: 1040 5 + + Endpoint: 1041/1041 Unavailable 0 of inf + InAuth: 1041-auth/1041 + Aor: 1041 5 + + Endpoint: 1042/1042 Unavailable 0 of inf + InAuth: 1042-auth/1042 + Aor: 1042 5 + + Endpoint: 1043/1043 Unavailable 0 of inf + InAuth: 1043-auth/1043 + Aor: 1043 5 + + Endpoint: 1044/1044 Unavailable 0 of inf + InAuth: 1044-auth/1044 + Aor: 1044 5 + Contact: 1044/sip:1044@205.220.219.115:40654;transp f678875695 Unavail nan + + Endpoint: 1045/1045 Not in use 0 of inf + InAuth: 1045-auth/1045 + Aor: 1045 5 + Contact: 1045/sip:s@68.180.38.252:1025;line=zzjsywm ccb27e7133 Avail 82.850 + + Endpoint: 1046/1046 Not in use 0 of inf + InAuth: 1046-auth/1046 + Aor: 1046 5 + Contact: 1046/sip:1046@75.97.204.187:51208;ob 5fd50c0c41 Avail 114.867 + Contact: 1046/sip:1046@70.15.74.194:51219;ob;x-ast- 9ed0086107 Avail 115.210 + + Endpoint: 1047/1047 Unavailable 0 of inf + InAuth: 1047-auth/1047 + Aor: 1047 5 + + Endpoint: 1048/1048 Not in use 0 of inf + InAuth: 1048-auth/1048 + Aor: 1048 5 + Contact: 1048/sip:1048@67.176.139.99:5065;x-ast-ori 816193c286 Avail 80.905 + Contact: 1048/sip:1048@67.176.139.99:5060;x-ast-ori adeecaf2d3 Avail 90.551 + + Endpoint: 1049/1049 Unavailable 0 of inf + InAuth: 1049-auth/1049 + Aor: 1049 5 + + Endpoint: 1050/1050 Not in use 0 of inf + InAuth: 1050-auth/1050 + Aor: 1050 5 + Contact: 1050/sip:1050@74.83.189.6:5060;line=iegqnz b4c7db44d2 Avail 60.513 + + Endpoint: 1051/1051 Unavailable 0 of inf + InAuth: 1051-auth/1051 + Aor: 1051 5 + + Endpoint: 1052/1052 Not in use 0 of inf + InAuth: 1052-auth/1052 + Aor: 1052 5 + Contact: 1052/sip:1052@68.204.69.209:1024;x-ast-ori 2bb52bd59b Avail 99.738 + + Endpoint: 1053/1053 Unavailable 0 of inf + InAuth: 1053-auth/1053 + Aor: 1053 5 + + Endpoint: 1054/1054 Unavailable 0 of inf + InAuth: 1054-auth/1054 + Aor: 1054 5 + + Endpoint: 1055/1055 Unavailable 0 of inf + InAuth: 1055-auth/1055 + Aor: 1055 5 + + Endpoint: 1056/1056 Not in use 0 of inf + InAuth: 1056-auth/1056 + Aor: 1056 5 + Contact: 1056/sip:1056@147.81.100.92:60009;ob;x-ast b2be1cccce Avail 106.440 + + Endpoint: 1057/1057 Not in use 0 of inf + InAuth: 1057-auth/1057 + Aor: 1057 5 + Contact: 1057/sip:s@68.204.69.209:5060;line=cgwlxwz af3a4b5b66 Avail 93.583 + + Endpoint: 1058/1058 Unavailable 0 of inf + InAuth: 1058-auth/1058 + Aor: 1058 5 + + Endpoint: 1059/1059 Unavailable 0 of inf + InAuth: 1059-auth/1059 + Aor: 1059 5 + + Endpoint: 1060/1060 Unavailable 0 of inf + InAuth: 1060-auth/1060 + Aor: 1060 5 + + Endpoint: 1061/1061 Not in use 0 of inf + InAuth: 1061-auth/1061 + Aor: 1061 5 + Contact: 1061/sip:s@170.250.1.134:5060;line=nrfngfb 7ee702d6b6 Avail 72.501 + + Endpoint: 1062/1062 Unavailable 0 of inf + InAuth: 1062-auth/1062 + Aor: 1062 5 + + Endpoint: 1063/1063 Unavailable 0 of inf + InAuth: 1063-auth/1063 + Aor: 1063 5 + + Endpoint: 1064/1064 Unavailable 0 of inf + InAuth: 1064-auth/1064 + Aor: 1064 5 + + Endpoint: 1065/1065 Unavailable 0 of inf + InAuth: 1065-auth/1065 + Aor: 1065 5 + + Endpoint: 1066/1066 Unavailable 0 of inf + InAuth: 1066-auth/1066 + Aor: 1066 5 + + Endpoint: 1067/1067 Unavailable 0 of inf + InAuth: 1067-auth/1067 + Aor: 1067 5 + + Endpoint: 1068/1068 Unavailable 0 of inf + InAuth: 1068-auth/1068 + Aor: 1068 5 + + Endpoint: 1069/1069 Unavailable 0 of inf + InAuth: 1069-auth/1069 + Aor: 1069 5 + + Endpoint: 1070/1070 Unavailable 0 of inf + InAuth: 1070-auth/1070 + Aor: 1070 5 + + Endpoint: 1071/1071 Unavailable 0 of inf + InAuth: 1071-auth/1071 + Aor: 1071 5 + + Endpoint: 1072/1072 Unavailable 0 of inf + InAuth: 1072-auth/1072 + Aor: 1072 5 + + Endpoint: 1073/1073 Unavailable 0 of inf + InAuth: 1073-auth/1073 + Aor: 1073 5 + + Endpoint: 1074/1074 Not in use 0 of inf + InAuth: 1074-auth/1074 + Aor: 1074 5 + Contact: 1074/sip:1074@88.196.62.196:63650;ob;x-ast a4aeb2db9c Avail 188.574 + + Endpoint: 1075/1075 Unavailable 0 of inf + InAuth: 1075-auth/1075 + Aor: 1075 5 + + Endpoint: 1076/1076 Unavailable 0 of inf + InAuth: 1076-auth/1076 + Aor: 1076 5 + + Endpoint: 1077/1077 Unavailable 0 of inf + InAuth: 1077-auth/1077 + Aor: 1077 5 + + Endpoint: 1078/1078 Not in use 0 of inf + InAuth: 1078-auth/1078 + Aor: 1078 5 + Contact: 1078/sip:1078@75.28.105.249:5060;x-ast-ori d84f874aed Avail 40.218 + + Endpoint: 1079/1079 Unavailable 0 of inf + InAuth: 1079-auth/1079 + Aor: 1079 5 + + Endpoint: 1080/1080 Unavailable 0 of inf + InAuth: 1080-auth/1080 + Aor: 1080 5 + + Endpoint: 1081/1081 Unavailable 0 of inf + InAuth: 1081-auth/1081 + Aor: 1081 5 + + Endpoint: 1082/1082 Not in use 0 of inf + InAuth: 1082-auth/1082 + Aor: 1082 5 + Contact: 1082/sip:1082@24.166.195.0:5060;x-ast-orig e258e66072 Avail 81.377 + + Endpoint: 1083/1083 Unavailable 0 of inf + InAuth: 1083-auth/1083 + Aor: 1083 5 + + Endpoint: 1084/1084 Unavailable 0 of inf + InAuth: 1084-auth/1084 + Aor: 1084 5 + + Endpoint: 1085/1085 Unavailable 0 of inf + InAuth: 1085-auth/1085 + Aor: 1085 5 + + Endpoint: 1086/1086 Unavailable 0 of inf + InAuth: 1086-auth/1086 + Aor: 1086 5 + + Endpoint: 1087/1087 Not in use 0 of inf + InAuth: 1087-auth/1087 + Aor: 1087 10 + Contact: 1087/sip:s@86.24.70.253:5060;line=lbhboje adda48914e Avail 179.062 + + Endpoint: 1088/1088 Unavailable 0 of inf + InAuth: 1088-auth/1088 + Aor: 1088 5 + + Endpoint: 1089/1089 Unavailable 0 of inf + InAuth: 1089-auth/1089 + Aor: 1089 5 + + Endpoint: 1090/1090 Not in use 0 of inf + InAuth: 1090-auth/1090 + Aor: 1090 5 + Contact: 1090/sip:1090@107.115.111.113:4607;x-ast-o 219b279b70 Avail 131.207 + Contact: 1090/sip:1090@107.115.111.113:4601;ob;x-as 62f8227779 Avail 130.322 + + Endpoint: 1091/1091 Unavailable 0 of inf + InAuth: 1091-auth/1091 + Aor: 1091 5 + + Endpoint: 1092/1092 Unavailable 0 of inf + InAuth: 1092-auth/1092 + Aor: 1092 5 + + Endpoint: 1093/1093 Unavailable 0 of inf + InAuth: 1093-auth/1093 + Aor: 1093 5 + + Endpoint: 1094/1094 Unavailable 0 of inf + InAuth: 1094-auth/1094 + Aor: 1094 5 + + Endpoint: 1095/1095 Unavailable 0 of inf + InAuth: 1095-auth/1095 + Aor: 1095 5 + + Endpoint: 1096/1096 Unavailable 0 of inf + InAuth: 1096-auth/1096 + Aor: 1096 5 + + Endpoint: 1097/1097 Unavailable 0 of inf + InAuth: 1097-auth/1097 + Aor: 1097 5 + + Endpoint: 1098/1098 Not in use 0 of inf + InAuth: 1098-auth/1098 + Aor: 1098 5 + Contact: 1098/sip:s@5.161.42.254:5160;line=dihquyi 75cf07b934 Avail 89.716 + + Endpoint: 1099/1099 Unavailable 0 of inf + InAuth: 1099-auth/1099 + Aor: 1099 5 + + Endpoint: 1100/1100 Not in use 0 of inf + InAuth: 1100-auth/1100 + Aor: 1100 5 + Contact: 1100/sip:1100@75.113.108.62:60337;ob;x-ast d1c98fe05b Avail 38.322 + + Endpoint: 1101/1101 Not in use 0 of inf + InAuth: 1101-auth/1101 + Aor: 1101 5 + Contact: 1101/sip:1101@50.20.125.155:9587;x-ast-ori 2cc02a05d1 Avail 58.004 + Contact: 1101/sip:1101@50.20.125.155:9842;ob aedfe7037c Avail 109.384 + Contact: 1101/sip:1101@50.20.125.155:9634;x-ast-ori b4d88aa1da Avail 62.027 + + Endpoint: 1102/1102 Unavailable 0 of inf + InAuth: 1102-auth/1102 + Aor: 1102 5 + + Endpoint: 1103/1103 Unavailable 0 of inf + InAuth: 1103-auth/1103 + Aor: 1103 5 + + Endpoint: 1104/1104 Not in use 0 of inf + InAuth: 1104-auth/1104 + Aor: 1104 5 + Contact: 1104/sip:1104@24.98.120.95:5061;x-ast-orig a4b5490b91 Avail 92.560 + + Endpoint: 1105/1105 Unavailable 0 of inf + InAuth: 1105-auth/1105 + Aor: 1105 5 + + Endpoint: 1106/1106 Unavailable 0 of inf + InAuth: 1106-auth/1106 + Aor: 1106 5 + + Endpoint: 1107/1107 Unavailable 0 of inf + InAuth: 1107-auth/1107 + Aor: 1107 5 + + Endpoint: 1108/1108 Unavailable 0 of inf + InAuth: 1108-auth/1108 + Aor: 1108 5 + + Endpoint: 1109/1109 Unavailable 0 of inf + InAuth: 1109-auth/1109 + Aor: 1109 5 + + Endpoint: 1110/1110 Unavailable 0 of inf + InAuth: 1110-auth/1110 + Aor: 1110 100 + + Endpoint: 1111/1111 Unavailable 0 of inf + InAuth: 1111-auth/1111 + Aor: 1111 1 + + Endpoint: 1112/1112 Not in use 0 of inf + InAuth: 1112-auth/1112 + Aor: 1112 5 + Contact: 1112/sip:1112@99.144.95.24:5060 e7265f5a59 Avail 119.463 + + Endpoint: 1113/1113 Not in use 0 of inf + InAuth: 1113-auth/1113 + Aor: 1113 5 + Contact: 1113/sip:1113@97.104.44.141:5060;x-ast-ori c83a0324a6 Avail 101.516 + + Endpoint: 1114/1114 Not in use 0 of inf + InAuth: 1114-auth/1114 + Aor: 1114 5 + Contact: 1114/sip:1114@73.119.66.194:54954;ob;x-ast 3bf9743cf2 Avail 100.320 + + Endpoint: 1116/1116 Not in use 0 of inf + InAuth: 1116-auth/1116 + Aor: 1116 5 + Contact: 1116/sip:s@74.215.121.82:56113;line=jixnvs d10951afac Avail 56.861 + + Endpoint: 1117/1117 Unavailable 0 of inf + InAuth: 1117-auth/1117 + Aor: 1117 5 + + Endpoint: 1118/1118 Unavailable 0 of inf + InAuth: 1118-auth/1118 + Aor: 1118 5 + + Endpoint: 1119/1119 Not in use 0 of inf + InAuth: 1119-auth/1119 + Aor: 1119 5 + Contact: 1119/sip:1119@24.98.120.95:5060;x-ast-orig 9b9cbab137 Avail 93.132 + + Endpoint: 1120/1120 Unavailable 0 of inf + InAuth: 1120-auth/1120 + Aor: 1120 5 + + Endpoint: 1121/1121 Unavailable 0 of inf + InAuth: 1121-auth/1121 + Aor: 1121 5 + + Endpoint: 1122/1122 Unavailable 0 of inf + InAuth: 1122-auth/1122 + Aor: 1122 5 + + Endpoint: 1123/1123 Unavailable 0 of inf + InAuth: 1123-auth/1123 + Aor: 1123 1 + + Endpoint: 1124/1124 Unavailable 0 of inf + InAuth: 1124-auth/1124 + Aor: 1124 5 + + Endpoint: 1125/1125 Unavailable 0 of inf + InAuth: 1125-auth/1125 + Aor: 1125 5 + + Endpoint: 1127/1127 Unavailable 0 of inf + InAuth: 1127-auth/1127 + Aor: 1127 5 + + Endpoint: 1128/1128 Unavailable 0 of inf + InAuth: 1128-auth/1128 + Aor: 1128 5 + + Endpoint: 1129/1129 Not in use 0 of inf + InAuth: 1129-auth/1129 + Aor: 1129 5 + Contact: 1129/sip:1129@96.125.229.143:5060;x-ast-or 89db0e267c Avail 67.920 + + Endpoint: 1130/1130 Unavailable 0 of inf + InAuth: 1130-auth/1130 + Aor: 1130 5 + + Endpoint: 1132/1132 Unavailable 0 of inf + InAuth: 1132-auth/1132 + Aor: 1132 5 + + Endpoint: 1133/1133 Not in use 0 of inf + InAuth: 1133-auth/1133 + Aor: 1133 5 + Contact: 1133/sip:1133@76.154.8.27:5060 b0aff7558d Avail 55.949 + + Endpoint: 1134/1134 Not in use 0 of inf + InAuth: 1134-auth/1134 + Aor: 1134 5 + Contact: 1134/sip:1134@71.201.226.96:5060;x-ast-ori c056072137 Avail 80.952 + + Endpoint: 1135/1135 Not in use 0 of inf + InAuth: 1135-auth/1135 + Aor: 1135 5 + Contact: 1135/sip:1135@167.99.119.244:14481;transpo 9ae9307592 Avail 77.601 + Contact: 1135/sip:1135@107.196.37.51:5060 a68f348001 Avail 57.220 + + Endpoint: 1137/1137 Unavailable 0 of inf + InAuth: 1137-auth/1137 + Aor: 1137 5 + + Endpoint: 1138/1138 Not in use 0 of inf + InAuth: 1138-auth/1138 + Aor: 1138 5 + Contact: 1138/sip:s@68.22.245.48:1027 28e8e68de6 Avail 64.274 + Contact: 1138/sip:1138@68.22.245.48:5060 3bdb2ce5fd Avail 266.061 + + Endpoint: 1139/1139 Unavailable 0 of inf + InAuth: 1139-auth/1139 + Aor: 1139 5 + + Endpoint: 1140/1140 Unavailable 0 of inf + InAuth: 1140-auth/1140 + Aor: 1140 5 + + Endpoint: 1141/1141 Not in use 0 of inf + InAuth: 1141-auth/1141 + Aor: 1141 1 + Contact: 1141/sip:s@24.12.38.35:5060;line=mdutzln 81ac522ca8 Avail 73.866 + + Endpoint: 1142/1142 Not in use 0 of inf + InAuth: 1142-auth/1142 + Aor: 1142 30 + Contact: 1142/sip:1142@174.174.37.162:54611;line=jb 4d189072d9 Avail 45.034 + Contact: 1142/sip:1142@174.174.37.162:32352;x-ast-o 61d8a87c0c Avail 116.698 + + Endpoint: 1144/1144 Not in use 0 of inf + InAuth: 1144-auth/1144 + Aor: 1144 5 + Contact: 1144/sip:1144@76.144.69.207:1024 39005f7c9a Avail 38.360 + + Endpoint: 1146/1146 Not in use 0 of inf + InAuth: 1146-auth/1146 + Aor: 1146 5 + Contact: 1146/sip:1146@73.37.93.137:52572;transport d8e5f8ac4e Avail 22.777 + + Endpoint: 1147/1147 Unavailable 0 of inf + InAuth: 1147-auth/1147 + Aor: 1147 5 + + Endpoint: 1148/1148 Unavailable 0 of inf + InAuth: 1148-auth/1148 + Aor: 1148 5 + + Endpoint: 1149/1149 Unavailable 0 of inf + InAuth: 1149-auth/1149 + Aor: 1149 5 + + Endpoint: 1150/1150 Unavailable 0 of inf + InAuth: 1150-auth/1150 + Aor: 1150 5 + + Endpoint: 1151/1151 Unavailable 0 of inf + InAuth: 1151-auth/1151 + Aor: 1151 5 + + Endpoint: 1152/1152 Not in use 0 of inf + InAuth: 1152-auth/1152 + Aor: 1152 5 + Contact: 1152/sip:1152@159.203.6.79:5060;rinstance= 7818c02ded Avail 110.914 + + Endpoint: 1153/1153 Not in use 0 of inf + InAuth: 1153-auth/1153 + Aor: 1153 5 + Contact: 1153/sip:1153@50.48.166.161:51764;rinstanc 26b90a4855 Avail 80.444 + + Endpoint: 1154/1154 Not in use 0 of inf + InAuth: 1154-auth/1154 + Aor: 1154 5 + Contact: 1154/sip:1154@76.144.69.207:1024 d7274732e6 Avail 51.932 + + Endpoint: 1155/1155 Unavailable 0 of inf + InAuth: 1155-auth/1155 + Aor: 1155 5 + + Endpoint: 1156/1156 Unavailable 0 of inf + InAuth: 1156-auth/1156 + Aor: 1156 5 + + Endpoint: 1157/1157 Unavailable 0 of inf + InAuth: 1157-auth/1157 + Aor: 1157 20 + Contact: 1157/sip:1157@98.227.141.119:1025;x-ast-or 0e864b674c Unavail nan + Contact: 1157/sip:1157@98.227.141.119:5060;x-ast-or a3a0de4c07 Unavail nan + + Endpoint: 1158/1158 Not in use 0 of inf + InAuth: 1158-auth/1158 + Aor: 1158 20 + Contact: 1158/sip:1158@199.48.94.31:49765;ob 13df4030f3 Avail 159.858 + Contact: 1158/sip:1158@199.48.94.31:49673;x-ast-ori 2eea426557 Avail 78.283 + Contact: 1158/sip:1158@199.48.94.31:50022;x-ast-ori 8ab6f7f064 Avail 195.207 + Contact: 1158/sip:1158@199.48.94.31:49782;x-ast-ori e52bad7a7d Avail 75.475 + Contact: 1158/sip:1158@199.48.94.31:49811;x-ast-ori f533ab20e8 Avail 82.717 + + Endpoint: 2000/2000 Unavailable 0 of inf + InAuth: 2000-auth/2000 + Aor: 2000 1 + + Endpoint: 2001/2001 Unavailable 0 of inf + InAuth: 2001-auth/2001 + Aor: 2001 1 + + Endpoint: 2003/2003 Unavailable 0 of inf + InAuth: 2003-auth/2003 + Aor: 2003 1 + + Endpoint: 2222/2222 Not in use 0 of inf + InAuth: 2222-auth/2222 + Aor: 2222 1 + Contact: 2222/sip:2222@174.175.230.11:5060;x-ast-or e24e6046de Avail 136.718 + + Endpoint: 2329/2329 Not in use 0 of inf + InAuth: 2329-auth/2329 + Aor: 2329 1 + Contact: 2329/sip:2329@104.55.71.173:5080 958e0eb091 Avail 114.184 + + Endpoint: 2355/2355 Not in use 0 of inf + InAuth: 2355-auth/2355 + Aor: 2355 1 + Contact: 2355/sip:2355-6b592b09be29069b59a3216c81c9 c99976d4b7 Avail 13.561 + + Endpoint: 2500/2500 Unavailable 0 of inf + InAuth: 2500-auth/2500 + Aor: 2500 1 + + Endpoint: 6666/6666 Unavailable 0 of inf + InAuth: 6666-auth/6666 + Aor: 6666 1 + + Endpoint: 8000/8000 Unavailable 0 of inf + InAuth: 8000-auth/8000 + Aor: 8000 50 + + Endpoint: 8888/8888 Unavailable 0 of inf + InAuth: 8888-auth/8888 + Aor: 8888 100 + + Endpoint: Anveo_Main Not in use 0 of inf + Aor: Anveo_Main 0 + Contact: Anveo_Main/sip:sbc.anveo.com 1ae991ecf4 Avail 59.656 + Transport: 0.0.0.0-udp udp 3 96 0.0.0.0:5060 + Identify: Anveo_Main/Anveo_Main + Match: 169.48.232.158/32 + + Endpoint: BulkVS Not in use 0 of inf + OutAuth: BulkVS/611679_litenet + Aor: BulkVS 0 + Contact: BulkVS/sip:611679_litenet@sip.bulkvs.com 48b38de7b3 Avail 149.116 + Transport: 0.0.0.0-udp udp 3 96 0.0.0.0:5060 + Identify: BulkVS/BulkVS + Match: 76.8.29.198/32 + Match: 162.249.171.198/32 + Match: 69.12.88.198/32 + + Endpoint: BulkVS_IP_Saso Not in use 0 of inf + Aor: BulkVS_IP_Saso 0 + Contact: BulkVS_IP_Saso/sip:sip.bulkvs.com:5060 af0266cd3a Avail 59.571 + Transport: 0.0.0.0-udp udp 3 96 0.0.0.0:5060 + Identify: BulkVS_IP_Saso/BulkVS_IP_Saso + Match: 162.249.171.198/32 + Match: 69.12.88.198/32 + Match: 76.8.29.198/32 + + Endpoint: CUCM_saso Not in use 0 of inf + Aor: CUCM_saso 0 + Contact: CUCM_saso/sip:99.164.136.5:5071 6fb546a4b2 Avail 67.121 + Transport: 0.0.0.0-udp udp 3 96 0.0.0.0:5060 + Identify: CUCM_saso/CUCM_saso + Match: 99.164.136.5/32 + + Endpoint: Nick_Emergency_Line Not in use 0 of inf + OutAuth: Nick_Emergency_Line/613135_nicomaEmergency + Aor: Nick_Emergency_Line 0 + Contact: Nick_Emergency_Line/sip:613135_nicomaEmerg 3f31c09fea Avail 61.098 + Transport: 0.0.0.0-udp udp 3 96 0.0.0.0:5060 + Identify: Nick_Emergency_Line/Nick_Emergency_Line + Match: 76.8.29.198/32 + Match: 162.249.171.198/32 + Match: 69.12.88.198/32 + + Endpoint: VoipMS Not in use 0 of inf + OutAuth: VoipMS/290338_litenet + Aor: VoipMS 0 + Contact: VoipMS/sip:290338_litenet@seattle3.voip.ms a22abce9bb Avail 9.105 + Transport: 0.0.0.0-udp udp 3 96 0.0.0.0:5060 + Identify: VoipMS/VoipMS + Match: 208.100.60.44/32 + + +Objects found: 169 + diff --git a/dev/index.html b/dev/index.html new file mode 100644 index 0000000..487089d --- /dev/null +++ b/dev/index.html @@ -0,0 +1,1394 @@ + + + + + + + LiteNet Extension Status + + + + + +

LiteNet Extension Status

+

+ 163 Endpoints connected to 149 Extensions. With an average latency of + 94.76ms +

+

59 online / 163 total

+

0 In-use

+
+

● Not in use ● Unavailable ● In use

+
+
+

Last Updated:

+

Updating in 10

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Extension NumberNameStatusEndpointsAvg Latency
● 1000Christopher CookmanNot in use366.17ms
● 1001SuzannahUnavailable0No Data
● 1002MoSirenNot in use161.84ms
● 1003RamsasoNot in use169.47ms
● 1004NikoNot in use280.05ms
● 1005joshgamingUnavailable0No Data
● 1006A Superb OstrichUnavailable0No Data
● 1007TARA CARLSONNot in use178.75ms
● 1008nottimwakefieldNot in use193.60ms
● 1009Wonderous BrainNot in use183.25ms
● 1010ZorphixNot in use1418.30ms
● 1011Faux_LemonsUnavailable0No Data
● 1012RaychellUnavailable0No Data
● 1013Mentally Turbulent GoblinUnavailable0No Data
● 1014free mogus dripUnavailable0No Data
● 1015Radio Guy SeanNot in use190.21ms
● 1016CaptainChrisNot in use174.58ms
● 1017pyromanNot in use1218.51ms
● 1018Maddix's BedroomNot in use172.22ms
● 1019Maddix's OfficeNot in use177.53ms
● 1020CALL FROM CALLNot in use299.69ms
● 1021Russian spyUnavailable0No Data
● 1022sacha50Unavailable0No Data
● 1023TheITGuy69Unavailable0No Data
● 1024Alberta_Elevating15Unavailable0No Data
● 1025MoSiren 2.0Unavailable0No Data
● 1026Josh555Not in use176.42ms
● 1027RadiantatorUnavailable0No Data
● 1028samUnavailable0No Data
● 1029JMAN.WiS&SUnavailable0No Data
● 1030GuyUnavailable0No Data
● 1031PPUnavailable0No Data
● 1032NVW Phone 2Not in use188.60ms
● 1033MattNot in use197.78ms
● 1034NeedNovaNot in use269.99ms
● 1035MTLGeek.ccNot in use1114.96ms
● 1036NickNot in use373.11ms
● 1037crane manUnavailable0No Data
● 1038Nick's Landline PhonesNot in use1101.75ms
● 1039Dale Solér-NussUnavailable0No Data
● 1040Rory&Unavailable0No Data
● 1041cloudyUnavailable0No Data
● 1042fernlew8828Unavailable0No Data
● 1043JacobUnavailable0No Data
● 1044MarleyTheBird4342Unavailable0No Data
● 1045Not in use182.85ms
● 1046TimtomNot in use2115.04ms
● 1047kyroUnavailable0No Data
● 1048FireAlarmExpert25Not in use285.73ms
● 1049Georninja LVFCUnavailable0No Data
● 1050lachesisNot in use160.51ms
● 1051Secure Fire LabsUnavailable0No Data
● 1052The Back-roadsNot in use199.74ms
● 1053Keiran (╯°□°)╯︵ ┻━┻Unavailable0No Data
● 1054tomUnavailable0No Data
● 1055Justin @ BPOManitobaUnavailable0No Data
● 1056SeehedNot in use1106.44ms
● 1057TazTech2Not in use193.58ms
● 1058AlexUnavailable0No Data
● 1059LeeeeroyUnavailable0No Data
● 1060i luv cats <3Unavailable0No Data
● 1061Not in use172.50ms
● 1062NotKFCUnavailable0No Data
● 1063EastCoastBraidenUnavailable0No Data
● 1064bathboylovinUnavailable0No Data
● 1065aze the ice / Hazem BlahtimeyUnavailable0No Data
● 1066WitherzillaUnavailable0No Data
● 1067Fresho LTDUnavailable0No Data
● 1068august but sabsUnavailable0No Data
● 1069BrysonUnavailable0No Data
● 1070NextBot3Unavailable0No Data
● 1071stormboy4kUnavailable0No Data
● 1072nicholasUnavailable0No Data
● 1073TsukiUnavailable0No Data
● 1074raaalfNot in use1188.57ms
● 1075WSBK Radio TransmitterUnavailable0No Data
● 1076BloxerBoyRadio_StationAudioBotUnavailable0No Data
● 1077Sam55Unavailable0No Data
● 1078MattNot in use140.22ms
● 1079AngelUnavailable0No Data
● 1080s̵k̷y̵_̶d̴z̵h̵u̶g̴a̷s̸h̴v̷i̵l̵i̴Unavailable0No Data
● 1081BergeUnavailable0No Data
● 1082KalebNot in use181.38ms
● 1083LolloUnavailable0No Data
● 1084David H.Unavailable0No Data
● 1085isabella™Unavailable0No Data
● 1086AidanlegsUnavailable0No Data
● 1087RP Game DeveloperNot in use1179.06ms
● 1088SABERA 7Unavailable0No Data
● 1089twf brian stells fanUnavailable0No Data
● 1090Vital DeliciousNot in use2130.76ms
● 1091liamUnavailable0No Data
● 1092tobUnavailable0No Data
● 1093SkrypterUnavailable0No Data
● 1094CrazyUnavailable0No Data
● 1095ermaXUnavailable0No Data
● 1096CollinUnavailable0No Data
● 1097mxnticek (Vlastimil N.)Unavailable0No Data
● 1098Not in use189.72ms
● 1099Prime Minster Zach FindleyUnavailable0No Data
● 1100NextNot in use138.32ms
● 1101vinceNot in use376.47ms
● 1102tørpixUnavailable0No Data
● 1103PolioUnavailable0No Data
● 1104Fynn The Lonely NardoNot in use192.56ms
● 1105MiconeUnavailable0No Data
● 1106Unavailable0No Data
● 1107Stanley WrayUnavailable0No Data
● 1108Cooper SantiagoUnavailable0No Data
● 1109YeahUnavailable0No Data
● 1110Unavailable0No Data
● 1111Unavailable0No Data
● 1112One LSU CampusNot in use1119.46ms
● 1113Ale (Brew) 2Not in use1101.52ms
● 1114ausitnbNot in use1100.32ms
● 1116W G BNot in use156.86ms
● 1117Gavin. MUnavailable0No Data
● 1118fzorbUnavailable0No Data
● 1119FrankTheTankNot in use193.13ms
● 1120itz_sebiii_Unavailable0No Data
● 1121Ale (Brew) 3Unavailable0No Data
● 1122aleUnavailable0No Data
● 1123Maddix's SomethingUnavailable0No Data
● 1124ryuUnavailable0No Data
● 1125donaldUnavailable0No Data
● 1127robotboyUnavailable0No Data
● 1128telepersonUnavailable0No Data
● 1129Cody.Not in use167.92ms
● 1130GeorgeUnavailable0No Data
● 1132Zer0Unavailable0No Data
● 1133elf !Not in use155.95ms
● 1134TheliftoperatorNot in use180.95ms
● 1135RyanNot in use267.41ms
● 1137wii sportsUnavailable0No Data
● 1138Hello2Not in use2165.17ms
● 1139Ethan:-/Unavailable0No Data
● 1140elf ! (Ext: 1133)Unavailable0No Data
● 1141LiamNot in use173.87ms
● 1142Not in use280.87ms
● 1144JarynNot in use138.36ms
● 1146AlrmFireNot in use122.78ms
● 1147doorUnavailable0No Data
● 1148!Unavailable0No Data
● 1149LJUnavailable0No Data
● 1150isabellaUnavailable0No Data
● 1151LápizDeveloperUnavailable0No Data
● 1152kaiNot in use1110.91ms
● 1153JakeNot in use180.44ms
● 1154JarnyNot in use151.93ms
● 1155clickitUnavailable0No Data
● 1156Wem2gUnavailable0No Data
● 1157Thomas JensenUnavailable0No Data
● 1158Elliot McPikeNot in use5118.31ms
● 2000Unavailable0No Data
● 2001Unavailable0No Data
● 2003Unavailable0No Data
● 2222rocordNot in use1136.72ms
● 2329Not in use1114.18ms
● 2355Not in use113.56ms
● 2500Unavailable0No Data
● 6666Vanessa FayeUnavailable0No Data
● 8000Unavailable0No Data
● 8888Unavailable0No Data
+
+ + + + diff --git a/dev/voicemail.conf b/dev/voicemail.conf new file mode 100644 index 0000000..38c722b --- /dev/null +++ b/dev/voicemail.conf @@ -0,0 +1,366 @@ + +[general] +format=wav49|gsm|wav +serveremail=asterisk +attach=yes +skipms=3000 +maxsilence=10 +silencethreshold=128 +maxlogins=3 +emaildateformat=%A, %B %d, %Y at %r +pagerdateformat=%A, %B %d, %Y at %r +sendvoicemail=yes +charset=UTF-8 +pollfreq=30 +pollmailboxes=yes +envelope=yes +forcename=yes +forcegreetings=no +operator=yes +review=no +saycid=no +sayduration=yes +searchcontexts=no +tempgreetwarn=yes +usedirectory=yes +hidefromdir=no +moveheard=yes +smdienable=no +nextaftercmd=yes +emailsubject=PBX Voicemail Notification +emailbody=${VM_NAME},\n\nThere is a new voicemail in mailbox ${VM_MAILBOX}:\n\n\tFrom:\t${VM_CALLERID}\n\tLength:\t${VM_DUR} seconds\n\tDate:\t${VM_DATE}\n\nDial *98 to access your voicemail by phone.\nVisit /ucp to check your voicemail with a web browser.\n +fromstring=PBX Phone System +pagersubject=PBX Voicemail Notification +pagerbody=New ${VM_DUR} long msg in box ${VM_MAILBOX}\nfrom ${VM_CALLERID}, on ${VM_DATE} +pagerfromstring=PBX Phone System +pbxskip=no +maxgreet=60 +maxmsg=100 +minpassword=0 +maxsecs=300 +minsecs=1 +imapgreetings=yes +imapclosetimeout=60 +imapopentimeout=60 +imapreadtimeout=60 +imapwritetimeout=60 +aliasescontext=pbxaliases + +[zonemessages] +eastern=America/New_York|'vm-received' Q 'digits/at' IMp +central=America/Chicago|'vm-received' Q 'digits/at' IMp +central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours' +military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p' +european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM + +[5-years] +main=4569,5 Year Mailbox,,, + +[default] +1234=4242,Example Mailbox,root@localhost,, +1004=123456,Niko,478578328572395535,,attach=no|saycid=no|envelope=no|delete=no +1006=123456789*0,A Superb Ostrich,780434440387166209,,attach=no|saycid=no|envelope=no|delete=no +1008=266344,nottimwakefield,429718742197600256,,attach=no|saycid=no|envelope=no|delete=no +1010=1010,Zorphix,277858914610053120,,attach=no|saycid=no|envelope=no|delete=no +1011=5273,Faux_Lemons,492026384550723604,,attach=no|saycid=no|envelope=no|delete=no +1014=1014,free mogus drip,744695842836971600,,attach=no|saycid=no|envelope=no|delete=no +1015=8363,Radio Guy Sean,813981174657449994,,attach=no|saycid=no|envelope=no|delete=no +1017=2509,pyroman,347226337338982402,,attach=no|saycid=no|envelope=no|delete=no +1021=6669,Russian spy,1007889150382456953,,attach=no|saycid=no|envelope=no|delete=no +1023=6969,TheITGuy69,461280647470776341,,attach=no|saycid=no|envelope=no|delete=no +1024=8721,Alberta_Elevating15,607623638987833377,,attach=no|saycid=no|envelope=no|delete=no +1026=2580,Josh555,220940485080907776,,attach=no|saycid=no|envelope=no|delete=no +1028=1028,sam,241272630232088588,,attach=no|saycid=no|envelope=no|delete=no +1029=1234,JMAN.WiS&S,160060830656757760,,attach=no|saycid=no|envelope=no|delete=no +1030=6669,Guy,688277665970782229,,attach=no|saycid=no|envelope=no|delete=no +1031=36,PP,354348114246631434,,attach=no|saycid=no|envelope=no|delete=no +1032=0224,NVW Phone 2,513460799038029836,,attach=no|saycid=no|envelope=no|delete=no +1037=1037,crane man,496016246337175552,,attach=no|saycid=no|envelope=no|delete=no +1046=1046,Timtom,561706627015639040,,attach=no|saycid=no|envelope=no|delete=no +1047=0805,kyro,402932468493320202,,attach=no|saycid=no|envelope=no|delete=no +6666=6666,Vanessa Faye,939287005286785114,,attach=no|saycid=no|envelope=no|delete=no +1040=1040,Rory&,84022289024159744,,attach=no|saycid=no|envelope=no|delete=no +1052=2778,The Back-roads,856665123534667806,,attach=no|saycid=no|envelope=no|delete=no +1049=7268,Georninja LVFC,271151633373593601,,attach=no|saycid=no|envelope=no|delete=no +1055=1055,Justin @ BPOManitoba,319965178693419008,,attach=no|saycid=no|envelope=no|delete=no +1054=1234,tom,975468751254331402,,attach=no|saycid=no|envelope=no|delete=no +1027=2460*,Radiantator,1224848916994850908,,attach=no|saycid=no|envelope=no|delete=no +1056=1056,Seehed,1030394088974991423,,attach=no|saycid=no|envelope=no|delete=no +1057=1057,TazTech2,1211531245981401159,,attach=no|saycid=no|envelope=no|delete=no +1050=1050,lachesis,505593342860722176,,attach=no|saycid=no|envelope=no|delete=no +1060=1060,i luv cats <3,1151960527166259391,,attach=no|saycid=no|envelope=no|delete=no +1064=1064,bathboylovin,698203396037017741,,attach=no|saycid=no|envelope=no|delete=no +1065=1065,aze the ice / Hazem Blahtimey,736409864640790588,,attach=no|saycid=no|envelope=no|delete=no +1005=5580,joshgaming,513097970669846528,,attach=no|saycid=no|envelope=no|delete=no +1035=1212,MTLGeek.cc,274198682381844480,,attach=no|saycid=no|envelope=no|delete=no +1068=1068,august but sabs,1121307534800736276,,attach=no|saycid=no|envelope=no|delete=no +1069=050509,Bryson,760325541236310029,,attach=no|saycid=no|envelope=no|delete=no +1053=1053,Keiran (╯°□°)╯︵ ┻━┻,994713883338100746,,attach=no|saycid=no|envelope=no|delete=no +1063=0716,EastCoastBraiden,965068352299098152,,attach=no|saycid=no|envelope=no|delete=no +1071=1071,stormboy4k,948260186479538246,,attach=no|saycid=no|envelope=no|delete=no +1072=1072,nicholas,888826089420496967,,attach=no|saycid=no|envelope=no|delete=no +1073=1073,Tsuki,1246294162156945428,,attach=no|saycid=no|envelope=no|delete=no +1075=1075,WSBK Radio Transmitter,1183114728155910236,,attach=no|saycid=no|envelope=no|delete=no +1076=1076,BloxerBoyRadio_StationAudioBot,1240790471685443666,,attach=no|saycid=no|envelope=no|delete=no +1051=1051,Secure Fire Labs,1244432864683102218,,attach=no|saycid=no|envelope=no|delete=no +1080=1080,s̵k̷y̵_̶d̴z̵h̵u̶g̴a̷s̸h̴v̷i̵l̵i̴,1102276543654395986,,attach=no|saycid=no|envelope=no|delete=no +1078=3022,Matt,112777208522686464,,attach=no|saycid=no|envelope=no|delete=no +1039=828001,Dale Solér-Nuss,785287233769963530,,attach=no|saycid=no|envelope=no|delete=no +1044=1044,MarleyTheBird4342,1100953137977774130,,attach=no|saycid=no|envelope=no|delete=no +1041=223199,cloudy,900512214161694730,,attach=no|saycid=no|envelope=no|delete=no +1043=1043,Jacob,1133912452661268480,,attach=no|saycid=no|envelope=no|delete=no +1081=1081,Berge,1187126833641181184,,attach=no|saycid=no|envelope=no|delete=no +1077=101,Sam55,181508042901159936,,attach=no|saycid=no|envelope=no|delete=no +1034=1006,NeedNova,467132215390896129,,attach=no|saycid=no|envelope=no|delete=no +1083=1083,Lollo,374859398960513025,,attach=no|saycid=no|envelope=no|delete=no +1012=071906,Raychell,899294125986283520,,attach=no|saycid=no|envelope=no|delete=no +1091=9977*,liam,911521924050477066,,attach=no|saycid=no|envelope=no|delete=no +1092=1092,tob,988134038747361380,,attach=no|saycid=no|envelope=no|delete=no +1094=1094,Crazy,856106366006853652,,attach=no|saycid=no|envelope=no|delete=no +1095=1095,ermaX,1148664555065585665,,attach=no|saycid=no|envelope=no|delete=no +1042=1042,fernlew8828,842074014591352843,,attach=no|saycid=no|envelope=no|delete=no +1097=1097,mxnticek (Vlastimil N.),696826147081814027,,attach=no|saycid=no|envelope=no|delete=no +1089=1212,twf brian stells fan,1059495984767455292,,attach=no|saycid=no|envelope=no|delete=no +1013=071906,Mentally Turbulent Goblin,647199010544812073,,attach=no|saycid=yes|envelope=no|delete=no +1002=1961,MoSiren,425658608877961217,,attach=no|saycid=no|envelope=no|delete=no +1066=1066,Witherzilla,780163946886725632,,attach=no|saycid=no|envelope=no|delete=no +1093=1908,Skrypter,1146575615894503454,,attach=no|saycid=no|envelope=no|delete=no +1025=1961,MoSiren 2.0,1016556527957573735,,attach=no|saycid=no|envelope=no|delete=no +1100=1234,Next,718607680284917791,,attach=no|saycid=no|envelope=no|delete=no +1088=6263,SABERA 7,1130039639529504778,,attach=no|saycid=no|envelope=no|delete=no +1087=2512,RP Game Developer,939986226751094805,,attach=no|saycid=no|envelope=no|delete=no +1101=120621,vince,714236141200474232,,attach=no|saycid=no|envelope=no|delete=no +1102=1102,tørpix,678029865286500373,,attach=no|saycid=no|envelope=no|delete=no +1103=6869,Polio,914622045663420486,,attach=no|saycid=no|envelope=no|delete=no +1067=7690,Fresho LTD,817430688847888454,,attach=no|saycid=no|envelope=no|delete=no +1105=6869,Micone,1160494622393511956,,attach=no|saycid=no|envelope=no|delete=no +1090=1090,Vital Delicious,844548586589913149,,attach=no|saycid=no|envelope=no|delete=no +1108=1108,Cooper Santiago,571456371912867907,,attach=no|saycid=no|envelope=no|delete=no +1109=1109,Yeah,591303092423622667,,attach=no|saycid=no|envelope=no|delete=no +1104=3145,Fynn The Lonely Nardo,973889343569674315,,attach=no|saycid=no|envelope=no|delete=no +1114=1212,ausitnb,1187198526296424550,,attach=no|saycid=no|envelope=no|delete=no +1116=1116,W G B,185427704416436224,,attach=no|saycid=no|envelope=no|delete=no +1117=2131,Gavin. M,1045857622429011969,,attach=no|saycid=no|envelope=no|delete=no +1118=1118,fzorb,1133639224030150656,,attach=no|saycid=no|envelope=no|delete=no +1119=6581,FrankTheTank,1267090174672638112,,attach=no|saycid=no|envelope=no|delete=no +1120=1120,itz_sebiii_,592875645739073539,,attach=no|saycid=no|envelope=no|delete=no +2222=8889,rocord,510852599617159168,,attach=no|saycid=no|envelope=no|delete=no +1000=221628,Christopher Cookman,289884287765839882,,attach=no|saycid=yes|envelope=no|delete=no +1022=1800,sacha50,1113873509777678498,,attach=no|saycid=no|envelope=no|delete=no +1121=9131,Ale (Brew) 3,456841518527938570,,attach=no|saycid=no|envelope=no|delete=no +1122=1234,ale,511717058900393985,,attach=no|saycid=no|envelope=no|delete=no +1033=4876,Matt,467135558565494785,,attach=no|saycid=no|envelope=no|delete=no +1125=69420,donald,1105805360511590470,,attach=no|saycid=no|envelope=no|delete=no +1016=5561,CaptainChris,473855613776953346,,attach=no|saycid=no|envelope=no|delete=no +1086=,Aidanlegs,345274339588833280,,attach=no|saycid=no|envelope=no|delete=no +1096=1096,Collin,1217962436095905835,,attach=no|saycid=no|envelope=no|delete=no +1127=1127,robotboy,1072190082917863524,,attach=no|saycid=no|envelope=no|delete=no +1128=1234,teleperson,1191195990997348434,,attach=no|saycid=no|envelope=no|delete=no +1124=1124,ryu,949139956738170901,,attach=no|saycid=no|envelope=no|delete=no +1130=1130,George,776146799252733952,,attach=no|saycid=no|envelope=no|delete=no +1003=1003,Ramsaso,367867185143480323,,attach=no|saycid=no|envelope=no|delete=no +1132=1132,Zer0,752165613513867294,,attach=no|saycid=no|envelope=no|delete=no +1134=1111,Theliftoperator,569524620336562186,,attach=no|saycid=no|envelope=no|delete=no +1133=123,elf !,1164376204103655508,,attach=no|saycid=no|envelope=no|delete=no +1135=3706,Ryan,557691015276789783,,attach=no|saycid=no|envelope=no|delete=no +1137=1137,wii sports,1152113535632023563,,attach=no|saycid=no|envelope=no|delete=no +1129=1129,Cody.,136263628515966976,,attach=no|saycid=no|envelope=no|delete=no +1138=1234,Hello2,785278568304214017,,attach=no|saycid=no|envelope=no|delete=no +1139=1139,Ethan:-/,1131605715258183720,,attach=no|saycid=no|envelope=no|delete=no +1140=123,elf ! (Ext: 1133),1164376204103655508,,attach=no|saycid=no|envelope=no|delete=no +1141=0390,Liam,988509449515855963,,attach=no|saycid=no|envelope=no|delete=no +1099=1279,Prime Minster Zach Findley,1285423070466539612,,attach=no|saycid=no|envelope=no|delete=no +1144=55756656,Jaryn,861278095657926666,,attach=no|saycid=no|envelope=no|delete=no +1107=2270,Stanley Wray,934139692520185938,,attach=no|saycid=no|envelope=no|delete=no +1146=1146,AlrmFire,1257896351602184366,,attach=no|saycid=no|envelope=no|delete=no +1147=1147,door,513821956559208468,,attach=no|saycid=no|envelope=no|delete=no +1148=1148,!,860039474888048660,,attach=no|saycid=no|envelope=no|delete=no +1149=,LJ,744744770886172752,,attach=no|saycid=no|envelope=no|delete=no +1151=1151,LápizDeveloper,898676045652328489,,attach=no|saycid=no|envelope=no|delete=no +1153=1153,Jake,343453949246046208,,attach=no|saycid=no|envelope=no|delete=no +1154=55756656,Jarny,928915944246476840,,attach=no|saycid=no|envelope=no|delete=no +1019=13741,Maddix's Office,603640213218131978,,attach=no|saycid=no|envelope=no|delete=no +1048=2545,FireAlarmExpert25,1069052504559591456,,attach=no|saycid=no|envelope=no|delete=no +1084=9,David H.,1153509834235314316,,attach=no|saycid=no|envelope=no|delete=no +1018=4628,Maddix's Bedroom,1180983258830360729,,attach=no|saycid=yes|envelope=yes|delete=no +1150=1150,isabella,1112691332213919785,,attach=no|saycid=no|envelope=no|delete=no +1152=1152,kai,1302461292694470690,,attach=no|saycid=no|envelope=no|delete=no +1155=1231,clickit,653970487017472001,,attach=no|saycid=no|envelope=no|delete=no +1156=1156,Wem2g,796290254372864001,,attach=no|saycid=no|envelope=no|delete=no +1112=1234,One LSU Campus,574411178042851328,,attach=no|saycid=no|envelope=no|delete=no +1038=3019,Nick's Landline Phones,1144142337774194769,,attach=no|saycid=no|envelope=no|delete=no +1036=3019,Nick,441439651266560000,,attach=no|saycid=yes|envelope=yes|delete=no +1070=1234,NextBot3,1195106123347411126,,attach=no|saycid=no|envelope=no|delete=no +1158=253525,Elliot McPike,,,attach=no|saycid=no|envelope=no|delete=no +1113=9131,Ale (Brew) 2,,,attach=no|saycid=no|envelope=no|delete=no +1062=1062,NotKFC,1244374129239654574,,attach=no|saycid=no|envelope=no|delete=no +1007=5192,TARA CARLSON,1007828856901738596,,attach=no|saycid=no|envelope=no|delete=no +1085=1085,isabella™,1259177403167801418,,attach=no|saycid=no|envelope=no|delete=no +1123=13741,Maddix's Something,,,attach=no|saycid=no|envelope=no|delete=no +1020=071906,CALL FROM CALL,701203601518886995,,attach=no|saycid=no|envelope=no|delete=no +1074=1074,raaalf,668209196239683616,,attach=no|saycid=no|envelope=no|delete=no +1001=071906,Suzannah,428290764221448196,,attach=no|saycid=no|envelope=no|delete=no +1157=1206,Thomas Jensen,1081302807686160447,,attach=no|saycid=no|envelope=no|delete=no +1079=1079,Angel,945806907900313601,,attach=no|saycid=no|envelope=no|delete=no +1009=3019,Wonderous Brain,800262611001278473,,attach=no|saycid=no|envelope=no|delete=no +1082=1234,Kaleb,1257508334940983397,,attach=no|saycid=yes|envelope=no|delete=no +1059=1234,Leeeeroy,1270582149904597097,,attach=no|saycid=no|envelope=no|delete=no +1058=1058,Alex,1085887666073120819,,attach=no|saycid=no|envelope=no|delete=no + +[myaliases] +1234@devices=1234@default,,,, + +[other] +1234=5678,Company2 User,root@localhost,, + +[pbxaliases] +1000@device=1000@default +1001@device=1001@default +1002@device=1002@default +1003@device=1003@default +1004@device=1004@default +1005@device=1005@default +1006@device=1006@default +1007@device=1007@default +1008@device=1008@default +1009@device=1009@default +1010@device=1010@default +1011@device=1011@default +1012@device=1012@default +1013@device=1013@default +1014@device=1014@default +1015@device=1015@default +1016@device=1016@default +1017@device=1017@default +1018@device=1018@default +1019@device=1019@default +1020@device=1020@default +1021@device=1021@default +1022@device=1022@default +1023@device=1023@default +1024@device=1024@default +1025@device=1025@default +1026@device=1026@default +1027@device=1027@default +1028@device=1028@default +1029@device=1029@default +1030@device=1030@default +1031@device=1031@default +1032@device=1032@default +1033@device=1033@default +1034@device=1034@default +1035@device=1035@default +1036@device=1036@default +1037@device=1037@default +1038@device=1038@default +1039@device=1039@default +1040@device=1040@default +1041@device=1041@default +1042@device=1042@default +1043@device=1043@default +1044@device=1044@default +1046@device=1046@default +1047@device=1047@default +1048@device=1048@default +1049@device=1049@default +1050@device=1050@default +1051@device=1051@default +1052@device=1052@default +1053@device=1053@default +1054@device=1054@default +1055@device=1055@default +1056@device=1056@default +1057@device=1057@default +1059@device=1059@default +1060@device=1060@default +1062@device=1062@default +1063@device=1063@default +1064@device=1064@default +1065@device=1065@default +1066@device=1066@default +1067@device=1067@default +1068@device=1068@default +1069@device=1069@default +1070@device=1070@default +1071@device=1071@default +1072@device=1072@default +1073@device=1073@default +1074@device=1074@default +1075@device=1075@default +1076@device=1076@default +1077@device=1077@default +1078@device=1078@default +1079@device=1079@default +1080@device=1080@default +1081@device=1081@default +1082@device=1082@default +1083@device=1083@default +1084@device=1084@default +1085@device=1085@default +1086@device=1086@default +1087@device=1087@default +1088@device=1088@default +1089@device=1089@default +1090@device=1090@default +1091@device=1091@default +1092@device=1092@default +1093@device=1093@default +1094@device=1094@default +1095@device=1095@default +1096@device=1096@default +1097@device=1097@default +1099@device=1099@default +1100@device=1100@default +1101@device=1101@default +1102@device=1102@default +1103@device=1103@default +1104@device=1104@default +1105@device=1105@default +1106@device=1106@default +1107@device=1107@default +1108@device=1108@default +1109@device=1109@default +1112@device=1112@default +1113@device=1113@default +1114@device=1114@default +1116@device=1116@default +1117@device=1117@default +1118@device=1118@default +1119@device=1119@default +1120@device=1120@default +1121@device=1121@default +1122@device=1122@default +1123@device=1123@default +1124@device=1124@default +1125@device=1125@default +1127@device=1127@default +1128@device=1128@default +1129@device=1129@default +1130@device=1130@default +1132@device=1132@default +1133@device=1133@default +1134@device=1134@default +1135@device=1135@default +1137@device=1137@default +1138@device=1138@default +1139@device=1139@default +1140@device=1140@default +1141@device=1141@default +1144@device=1144@default +1146@device=1146@default +1147@device=1147@default +1148@device=1148@default +1149@device=1149@default +1150@device=1150@default +1151@device=1151@default +1152@device=1152@default +1153@device=1153@default +1154@device=1154@default +1155@device=1155@default +1156@device=1156@default +1157@device=1157@default +1158@device=1158@default +2222@device=2222@default +6666@device=6666@default +1058@device=1058@default + diff --git a/index.js b/index.js new file mode 100644 index 0000000..b6abb34 --- /dev/null +++ b/index.js @@ -0,0 +1,162 @@ +require("dotenv").config(); +const fs = require('fs') +const { execSync } = require('child_process'); +const jsondb = require("node-json-db"); +// Init json db +var db = new jsondb.JsonDB(new jsondb.Config("known-hosts", true, false, '/', true)); + +const ejs = require("ejs") + + +const Discord = require("discord.js"); +const { userInfo } = require("os"); +const client = new Discord.Client({intents: "DirectMessages"}); + + +function extractTextFromRawText(rawText) { + // Strip everything before the line with "[default]". and everything before two newlines, and strip [default] + const startIndex = rawText.indexOf("[default]"); + const endIndex = rawText.indexOf("\n\n", startIndex); + + const extractedText = rawText.slice(startIndex, endIndex).replace("[default]\n", ""); + return extractedText; +} + +// Split data by newlines, then make key value pairs split by = and make into object +function parseVoicemailData(data) { + const lines = data.split("\n"); + const voicemailData = {}; + console.log(lines) + lines.forEach((line) => { + var [key, value] = line.split("="); + if (!value) return; + value = value.split(","); + voicemailData[key] = value; + }); + + return voicemailData; +} + +function getUsers() { + var vmData = fs.readFileSync(process.env.DEV ? "./dev/voicemail.conf" : "/etc/asterisk/voicemail.conf").toString() + voicemailData = parseVoicemailData(extractTextFromRawText(vmData)); + return voicemailData; +} + +function getEndpoints() { + if (!process.env.DEV) { + const currentEndpoint = execSync('asterisk -x "pjsip show endpoints"').toString(); + const endpoints = currentEndpoint.split("\n"); + return endpoints; + } else { + return fs.readFileSync("./dev/endpoints.txt").toString().split("\n"); + } +} + +function parseEndpointData(data) { + const endpointRegex = /Endpoint:\s+(\d+\/\d+)\s+([A-Za-z\s]+)\s+(\d+)/g; + const contactRegex = /Contact:\s*(\d+\/\S+)\s*;?.*\s*(\S+)\s+(\S+)\s+(\d+\.\d+)/g; + + let endpointObject = {}; + + // Match endpoint details + const endpointMatch = endpointRegex.exec(data); + if (endpointMatch) { + endpointObject.endpoint = endpointMatch[1].split("/")[1].trim(); // e.g. 1000/1000 + endpointObject.state = endpointMatch[2].trim(); // e.g. "Not in use" + endpointObject.channelCount = parseInt(endpointMatch[3], 10); // e.g. 0 + } + + if (!endpointObject.endpoint) return undefined; + + endpointObject.contacts = []; + + // Match contact details + let contactMatch; + while ((contactMatch = contactRegex.exec(data)) !== null) { + endpointObject.contacts.push({ + host: contactMatch[1].split('@')[1]?.split(";")[0], // Extract host from the format "sip:1000@ip:port" + status: contactMatch[3], // "Avail" + ping: parseFloat(contactMatch[4]), // ping value + }); + } + return endpointObject; +} + +function parseEndpoints(endpoints) { + // Ignore first 12 lines + endpoints = endpoints.slice(12); + // Endpoints split by double newline + endpoints = endpoints.join("\n").split("\n\n"); + const users = getUsers(); + const parsedEndpoints = endpoints.map(endpoint => { + const parsedEndpoint = parseEndpointData(endpoint); + if (parsedEndpoint && users[parsedEndpoint.endpoint]) { + parsedEndpoint.discordId = users[parsedEndpoint.endpoint][2]; + parsedEndpoint.name = users[parsedEndpoint.endpoint][1]; + } + return parsedEndpoint; + }).filter(endpoint => endpoint !== undefined); + return parsedEndpoints +} + +async function checkForNewEndpoints() { + const parsed = parseEndpoints(getEndpoints()); + let newContacts = []; + for (const endpoint of parsed) { + const seen = await db.getObjectDefault(`/seen/${endpoint.endpoint}`, []); + const newEndpointContacts = endpoint.contacts.filter(contact => !seen.includes(contact.host.split(":")[0])); + const uniqueHosts = [...new Set(newEndpointContacts.map(contact => contact.host.split(":")[0]))]; + uniqueHosts.forEach(host => { + db.push(`/seen/${endpoint.endpoint}[]`, host); + }); + resp = newEndpointContacts.length > 0 ? { + endpoint, + newContacts: newEndpointContacts, + } : []; + newContacts = newContacts.concat(resp); + } + + return newContacts; +}; + +function notifyNew() { + console.log("Checking...") + checkForNewEndpoints().then(newContacts => { + if (newContacts.length > 0) { + newContacts.forEach(async newContact => { + const { endpoint, newContacts } = newContact; + const user = await client.users.fetch(endpoint.discordId).catch(() => null); + if (user) { + const contactList = newContacts.map(contact => `${contact.host} - ${contact.status} - ${contact.ping}`).join("\n"); + user.send(`New registrations for ${endpoint.endpoint} (${endpoint.name}) from unknown IPs:\n${contactList}`); + console.log(`Notified ${endpoint.endpoint} (${endpoint.name}) of new contacts`); + } + }); + } + }); +} +console.log(Object.fromEntries(Object.entries(getUsers()).map(([key, value]) => [key, value[1]]))) +function renderStatusPage() { + ejs.renderFile("status.ejs", {endpoints: parseEndpoints(getEndpoints()), userInfo: Object.fromEntries(Object.entries(getUsers()).map(([key, value]) => [key, value[1]]))}, (err, str) => { + if (err) { + console.error(err); + } else { + fs.writeFileSync(process.env.DEV ? "./dev/index.html" : "/var/www/html/status/index.html", str); + } + }); +} + +client.on("ready", () => { + console.log(`Logged in as ${client.user.displayName}!`); + notifyNew(); + renderStatusPage(); + setInterval(notifyNew, 10*1000); + setInterval(renderStatusPage, 5*1000); +}); + +if (process.env.DEV) { + renderStatusPage(); +} else { + client.login(process.env.DISCORD_TOKEN) +} diff --git a/known-hosts.json b/known-hosts.json new file mode 100644 index 0000000..3765f83 --- /dev/null +++ b/known-hosts.json @@ -0,0 +1 @@ +{"seen":{"1000":["67.218.74.175","174.234.1.48","67.218.74.141","174.234.8.117","174.198.132.80"],"1001":["107.15.163.194"],"1002":["69.71.12.69"],"1003":["104.55.71.173","98.194.33.60","107.92.61.136","166.172.120.231","107.92.59.248","107.107.187.119"],"1004":["98.209.177.59"],"1005":["68.203.166.207"],"1007":["69.92.141.127","167.99.119.244","185.215.181.157"],"1008":["96.42.155.163"],"1009":["174.174.37.162","174.204.192.65","174.204.193.139","167.99.48.91","174.204.197.71","174.204.198.71"],"1010":["102.182.171.93"],"1013":["107.15.163.194"],"1015":["69.141.149.28"],"1016":["167.99.119.203","73.221.94.97","174.231.133.58","73.225.34.147","174.204.65.29","169.204.230.42"],"1017":["174.2.17.180","142.59.71.108","142.59.71.78","207.195.62.68","174.2.240.64","142.59.71.94","142.59.71.21","142.165.207.8","142.59.71.51"],"1018":["166.170.21.115","166.170.23.90","166.170.23.5","166.177.56.33","166.176.248.194","50.54.126.17"],"1019":["166.170.21.115","166.170.23.90","166.170.23.5","166.177.56.33","166.176.248.194","50.54.126.17"],"1020":["107.15.163.194","69.92.141.127"],"1022":["90.116.170.86"],"1025":["69.71.12.69"],"1026":["66.242.81.122"],"1029":["66.188.241.224"],"1032":["96.42.155.163"],"1033":["173.52.119.43"],"1034":["162.204.50.197"],"1035":["192.226.159.87"],"1036":["174.174.37.162","159.89.179.103","174.204.197.71","174.204.198.71"],"1038":["174.174.37.162","174.204.192.65"],"1041":["208.104.196.192"],"1044":["205.220.219.115","172.58.12.209","209.206.74.166","172.58.167.98","172.58.13.206","172.59.184.105","172.58.13.207","172.59.185.104","172.58.12.67","172.56.17.28","172.59.189.105"],"1045":["68.180.38.252"],"1046":["70.15.74.194","75.97.204.187"],"1047":["149.50.14.166"],"1048":["98.122.163.51","167.172.227.229","64.31.2.56","67.176.139.99"],"1050":["74.83.189.6"],"1052":["68.204.76.159","68.204.69.209"],"1056":["72.234.126.250","147.81.100.92"],"1057":["68.204.76.159","68.204.69.209"],"1058":["49.144.112.190"],"1059":["64.136.231.18","86.187.164.45","148.252.132.26","174.177.133.108"],"1061":["170.250.1.134"],"1062":["84.70.224.216"],"1063":["73.211.16.131"],"1066":["65.189.51.114","71.64.152.71"],"1067":["82.11.119.5"],"1068":["181.214.150.245","97.106.197.10"],"1069":["38.40.10.224"],"1070":["82.3.111.87","75.113.108.62"],"1071":["86.14.225.17"],"1074":["88.196.62.196"],"1077":["172.4.216.137"],"1078":["75.28.105.249"],"1079":["174.173.66.189"],"1082":["166.170.21.115","24.166.195.0"],"1084":["98.122.163.51","24.180.41.136"],"1085":["90.241.144.189","84.70.224.216","23.31.255.214"],"1087":["86.24.70.253"],"1088":["79.184.34.42","79.184.17.110","79.184.31.102"],"1090":["184.56.228.20","174.226.192.145","107.115.111.113"],"1093":["37.30.58.20","37.30.38.43","37.30.32.70","37.30.32.68","37.30.60.133","37.30.44.161","37.30.56.37"],"1095":["91.217.198.56"],"1098":["5.161.42.254"],"1099":["68.103.55.51","104.218.129.162","104.218.129.172"],"1100":["75.113.108.62"],"1101":["50.20.125.155","172.56.208.195","65.246.71.79","169.241.65.97"],"1104":["24.98.120.95"],"1107":["92.239.71.178"],"1110":["98.122.163.51"],"1112":["24.245.163.16","99.144.95.24"],"1113":["97.104.44.141"],"1114":["73.119.66.194"],"1116":["74.215.121.82"],"1117":["104.166.238.179"],"1119":["24.98.120.95"],"1121":["97.104.44.141"],"1122":["97.104.44.141"],"1123":["166.170.23.90","166.170.23.5","66.203.38.68"],"1128":["24.16.249.13"],"1129":["96.125.229.143"],"1131":["86.128.138.96"],"1133":["24.9.143.10","76.154.8.27"],"1134":["71.201.226.96"],"1135":["107.196.37.51","167.99.119.244"],"1136":["108.206.50.139"],"1138":["68.22.245.48"],"1140":["76.154.8.27"],"1141":["24.12.38.35"],"1142":["174.174.37.162"],"1144":["76.144.69.207"],"1145":["162.213.117.207"],"1146":["73.37.93.137","12.75.124.19","12.75.124.177","12.75.124.65"],"1147":["70.241.112.130"],"1148":["75.38.181.26","107.175.102.147"],"1149":["70.129.59.188"],"1150":["23.31.255.214"],"1152":["104.28.218.183","104.28.250.183","73.142.82.233","159.203.6.79"],"1153":["50.48.166.161"],"1154":["76.144.69.207"],"1155":["77.70.116.5"],"1156":["149.62.206.133"],"1157":["98.227.141.119"],"1158":["199.48.94.17","199.48.94.31"],"2222":["174.175.230.11"],"2329":["104.55.71.173","166.172.121.21","107.92.61.136","166.172.120.231","98.194.33.60","107.92.59.248","107.107.187.119"],"2355":["104.55.71.173","98.194.33.60","107.92.61.136","166.172.120.231","107.92.59.248","107.107.187.119"],"8888":["67.218.74.175"]}} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..bc2ed35 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,487 @@ +{ + "name": "pbx-ips", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "pbx-ips", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "discord.js": "^14.16.3", + "dotenv": "^16.4.7", + "ejs": "^3.1.10", + "node-json-db": "^2.3.0" + } + }, + "node_modules/@discordjs/builders": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.9.0.tgz", + "integrity": "sha512-0zx8DePNVvQibh5ly5kCEei5wtPBIUbSoE9n+91Rlladz4tgtFbJ36PZMxxZrTEOQ7AHMZ/b0crT/0fCy6FTKg==", + "dependencies": { + "@discordjs/formatters": "^0.5.0", + "@discordjs/util": "^1.1.1", + "@sapphire/shapeshift": "^4.0.0", + "discord-api-types": "0.37.97", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.4", + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/builders/node_modules/discord-api-types": { + "version": "0.37.97", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.97.tgz", + "integrity": "sha512-No1BXPcVkyVD4ZVmbNgDKaBoqgeQ+FJpzZ8wqHkfmBnTZig1FcH3iPPersiK1TUIAzgClh2IvOuVUYfcWLQAOA==" + }, + "node_modules/@discordjs/collection": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz", + "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==", + "engines": { + "node": ">=16.11.0" + } + }, + "node_modules/@discordjs/formatters": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.5.0.tgz", + "integrity": "sha512-98b3i+Y19RFq1Xke4NkVY46x8KjJQjldHUuEbCqMvp1F5Iq9HgnGpu91jOi/Ufazhty32eRsKnnzS8n4c+L93g==", + "dependencies": { + "discord-api-types": "0.37.97" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/formatters/node_modules/discord-api-types": { + "version": "0.37.97", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.97.tgz", + "integrity": "sha512-No1BXPcVkyVD4ZVmbNgDKaBoqgeQ+FJpzZ8wqHkfmBnTZig1FcH3iPPersiK1TUIAzgClh2IvOuVUYfcWLQAOA==" + }, + "node_modules/@discordjs/rest": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-2.4.0.tgz", + "integrity": "sha512-Xb2irDqNcq+O8F0/k/NaDp7+t091p+acb51iA4bCKfIn+WFWd6HrNvcsSbMMxIR9NjcMZS6NReTKygqiQN+ntw==", + "dependencies": { + "@discordjs/collection": "^2.1.1", + "@discordjs/util": "^1.1.1", + "@sapphire/async-queue": "^1.5.3", + "@sapphire/snowflake": "^3.5.3", + "@vladfrangu/async_event_emitter": "^2.4.6", + "discord-api-types": "0.37.97", + "magic-bytes.js": "^1.10.0", + "tslib": "^2.6.3", + "undici": "6.19.8" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/rest/node_modules/@discordjs/collection": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.1.tgz", + "integrity": "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/rest/node_modules/discord-api-types": { + "version": "0.37.97", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.97.tgz", + "integrity": "sha512-No1BXPcVkyVD4ZVmbNgDKaBoqgeQ+FJpzZ8wqHkfmBnTZig1FcH3iPPersiK1TUIAzgClh2IvOuVUYfcWLQAOA==" + }, + "node_modules/@discordjs/util": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-1.1.1.tgz", + "integrity": "sha512-eddz6UnOBEB1oITPinyrB2Pttej49M9FZQY8NxgEvc3tq6ZICZ19m70RsmzRdDHk80O9NoYN/25AqJl8vPVf/g==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/ws": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-1.1.1.tgz", + "integrity": "sha512-PZ+vLpxGCRtmr2RMkqh8Zp+BenUaJqlS6xhgWKEZcgC/vfHLEzpHtKkB0sl3nZWpwtcKk6YWy+pU3okL2I97FA==", + "dependencies": { + "@discordjs/collection": "^2.1.0", + "@discordjs/rest": "^2.3.0", + "@discordjs/util": "^1.1.0", + "@sapphire/async-queue": "^1.5.2", + "@types/ws": "^8.5.10", + "@vladfrangu/async_event_emitter": "^2.2.4", + "discord-api-types": "0.37.83", + "tslib": "^2.6.2", + "ws": "^8.16.0" + }, + "engines": { + "node": ">=16.11.0" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/ws/node_modules/@discordjs/collection": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.1.tgz", + "integrity": "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/ws/node_modules/discord-api-types": { + "version": "0.37.83", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.83.tgz", + "integrity": "sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==" + }, + "node_modules/@sapphire/async-queue": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.5.tgz", + "integrity": "sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-4.0.0.tgz", + "integrity": "sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v16" + } + }, + "node_modules/@sapphire/snowflake": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.3.tgz", + "integrity": "sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@types/node": { + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/ws": { + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vladfrangu/async_event_emitter": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.4.6.tgz", + "integrity": "sha512-RaI5qZo6D2CVS6sTHFKg1v5Ohq/+Bo2LZ5gzUEwZ/WkHhwtGTCB/sVLw8ijOkAUxasZ+WshN/Rzj4ywsABJ5ZA==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/discord-api-types": { + "version": "0.37.100", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.100.tgz", + "integrity": "sha512-a8zvUI0GYYwDtScfRd/TtaNBDTXwP5DiDVX7K5OmE+DRT57gBqKnwtOC5Ol8z0mRW8KQfETIgiB8U0YZ9NXiCA==" + }, + "node_modules/discord.js": { + "version": "14.16.3", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.16.3.tgz", + "integrity": "sha512-EPCWE9OkA9DnFFNrO7Kl1WHHDYFXu3CNVFJg63bfU7hVtjZGyhShwZtSBImINQRWxWP2tgo2XI+QhdXx28r0aA==", + "dependencies": { + "@discordjs/builders": "^1.9.0", + "@discordjs/collection": "1.5.3", + "@discordjs/formatters": "^0.5.0", + "@discordjs/rest": "^2.4.0", + "@discordjs/util": "^1.1.1", + "@discordjs/ws": "1.1.1", + "@sapphire/snowflake": "3.5.3", + "discord-api-types": "0.37.100", + "fast-deep-equal": "3.1.3", + "lodash.snakecase": "4.1.1", + "tslib": "^2.6.3", + "undici": "6.19.8" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "node_modules/magic-bytes.js": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.10.0.tgz", + "integrity": "sha512-/k20Lg2q8LE5xiaaSkMXk4sfvI+9EGEykFS4b0CHHGWqDYU0bGUFSwchNOMA56D7TCs9GwVTkqe9als1/ns8UQ==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/node-json-db": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-json-db/-/node-json-db-2.3.0.tgz", + "integrity": "sha512-B8T+w4q6zXZ20YcfQINLSjMGgImRKzkvR0ShYYoNRdLxtMhVvbzaMBzNdEaRcCjilW/lKS+g9CwVXNoK5uTncw==", + "dependencies": { + "rwlock": "^5.0.0" + } + }, + "node_modules/rwlock": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rwlock/-/rwlock-5.0.0.tgz", + "integrity": "sha512-XgzRqLMfCcm9QfZuPav9cV3Xin5TRcIlp4X/SH3CvB+x5D2AakdlEepfJKDd8ByncvfpcxNWdRZVUl38PS6ZJg==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-mixer": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz", + "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/undici": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", + "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8181af4 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "pbx-ips", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "discord.js": "^14.16.3", + "dotenv": "^16.4.7", + "ejs": "^3.1.10", + "node-json-db": "^2.3.0" + } +} diff --git a/status.ejs b/status.ejs new file mode 100644 index 0000000..496ed19 --- /dev/null +++ b/status.ejs @@ -0,0 +1,101 @@ + + + + + + + LiteNet Extension Status + + + + + +

LiteNet Extension Status

+

+ <%= endpoints.length %> Endpoints connected to <%= Object.keys(userInfo).length %> Extensions. With an average latency of + <%= (endpoints.reduce((sum, ep) => { + const avgLatency = ep.contacts.reduce((contactSum, contact) => contactSum + contact.ping, 0) / ep.contacts.length; + return sum + (isNaN(avgLatency) ? 0 : avgLatency); + }, 0) / endpoints.filter(ep => ep.contacts.length > 0).length).toFixed(2) %>ms +

+

<%= endpoints.filter(ep => ep.state !== 'Unavailable').length %> online / <%= endpoints.length %> total

+

<%= endpoints.filter(ep => ep.state === 'In use').length %> In-use

+
+

● Not in use ● Unavailable ● In use

+
+
+

Last Updated:

+

Updating in 10

+
+ +
+ + + + + + + + + + + + <% endpoints.forEach(function(ep) { %> + + + + + + + + <% }); %> + +
Extension NumberNameStatusEndpointsAvg Latency
● <%= ep.endpoint %><%= userInfo[ep.endpoint] %><%= ep.state %><%= ep.contacts.length %><%= isNaN(ep.contacts.reduce((sum, contact) => sum + contact.ping, 0) / ep.contacts.length) ? 'No Data' : `${(ep.contacts.reduce((sum, contact) => sum + contact.ping, 0) / ep.contacts.length).toFixed(2)}ms` %>
+
+ + + +