Compare commits

...

14 Commits

Author SHA1 Message Date
8a298a29c4 tambah html log 18/12/2024 2024-12-18 13:32:17 +07:00
8047155417 tambah html log 18/12/2024 2024-12-18 12:10:18 +07:00
fd17185398 ganti versi tinylog 18/12/2024 2024-12-18 08:11:41 +07:00
225be4ad61 Working ! 06/12/2024 2024-12-17 16:08:39 +07:00
819f4a06df Working ! 06/12/2024 2024-12-06 16:27:15 +07:00
a4ede5b1f3 patch 06/12/2024 2024-12-06 13:18:09 +07:00
6a54013eda first test success 05/12/2024 2024-12-05 15:14:42 +07:00
079c56a14b first test success 05/12/2024 2024-12-05 15:02:21 +07:00
362ece1bd2 new features 04/12/2024 2024-12-04 15:02:26 +07:00
33cfd5d363 new features 04/12/2024 2024-12-04 15:01:24 +07:00
a5eb4e9157 patches 20/11/2024 2024-11-20 16:04:06 +07:00
0c1679f899 patches 20/11/2024 2024-11-20 14:37:45 +07:00
142c400273 patches 20/11/2024 2024-11-20 11:32:50 +07:00
26579a8acf patches 20/11/2024 2024-11-20 11:30:44 +07:00
301 changed files with 62419 additions and 1231 deletions

52
.idea/artifacts/SIPIntercom_jar.xml generated Normal file
View File

@@ -0,0 +1,52 @@
<component name="ArtifactManager">
<artifact type="jar" name="SIPIntercom:jar">
<output-path>$PROJECT_DIR$/out/artifacts/SIPIntercom_jar</output-path>
<root id="archive" name="SIPIntercom.jar">
<element id="module-output" name="SIPIntercom" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/tinylog/tinylog/1.3.6/tinylog-1.3.6.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/javalin/javalin/4.6.8/javalin-4.6.8.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-server/9.4.51.v20230217/jetty-server-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-http/9.4.51.v20230217/jetty-http-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-util/9.4.51.v20230217/jetty-util-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-io/9.4.51.v20230217/jetty-io-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-webapp/9.4.51.v20230217/jetty-webapp-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-xml/9.4.51.v20230217/jetty-xml-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-servlet/9.4.51.v20230217/jetty-servlet-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-security/9.4.51.v20230217/jetty-security-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-util-ajax/9.4.51.v20230217/jetty-util-ajax-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/websocket/websocket-server/9.4.51.v20230217/websocket-server-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/websocket/websocket-common/9.4.51.v20230217/websocket-common-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/websocket/websocket-api/9.4.51.v20230217/websocket-api-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/websocket/websocket-client/9.4.51.v20230217/websocket-client-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-client/9.4.51.v20230217/jetty-client-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/eclipse/jetty/websocket/websocket-servlet/9.4.51.v20230217/websocket-servlet-9.4.51.v20230217.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5.32/kotlin-stdlib-jdk8-1.5.32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.5.32/kotlin-stdlib-1.5.32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.32/kotlin-stdlib-common-1.5.32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.5.32/kotlin-stdlib-jdk7-1.5.32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/corundumstudio/socketio/netty-socketio/2.0.12/netty-socketio-2.0.12.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-buffer/4.1.114.Final/netty-buffer-4.1.114.Final.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-common/4.1.114.Final/netty-common-4.1.114.Final.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-transport/4.1.114.Final/netty-transport-4.1.114.Final.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-resolver/4.1.114.Final/netty-resolver-4.1.114.Final.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-handler/4.1.114.Final/netty-handler-4.1.114.Final.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-transport-native-unix-common/4.1.114.Final/netty-transport-native-unix-common-4.1.114.Final.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-codec-http/4.1.114.Final/netty-codec-http-4.1.114.Final.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-codec/4.1.114.Final/netty-codec-4.1.114.Final.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/2.0.16/slf4j-api-2.0.16.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.18.1/jackson-core-2.18.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.18.1/jackson-databind-2.18.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.18.1/jackson-annotations-2.18.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-transport-native-epoll/4.1.114.Final/netty-transport-native-epoll-4.1.114.Final-linux-x86_64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-transport-classes-epoll/4.1.114.Final/netty-transport-classes-epoll-4.1.114.Final.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/io/netty/netty-transport-native-epoll/4.1.114.Final/netty-transport-native-epoll-4.1.114.Final-linux-aarch_64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.36/lombok-1.18.36.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.11.0/gson-2.11.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/google/errorprone/error_prone_annotations/2.27.0/error_prone_annotations-2.27.0.jar" path-in-jar="/" />
</root>
</artifact>
</component>

14
.idea/deployment.xml generated Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData" serverName="192.168.10.35" remoteFilesAllowedToDisappearOnAutoupload="false">
<serverData>
<paths name="192.168.10.35">
<serverdata>
<mappings>
<mapping deploy="/sipintercom" local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
</serverData>
</component>
</project>

View File

@@ -0,0 +1,25 @@
<component name="libraryTable">
<library name="corundumstudio.socketio.netty" type="repository">
<properties maven-id="com.corundumstudio.socketio:netty-socketio:2.0.12" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/corundumstudio/socketio/netty-socketio/2.0.12/netty-socketio-2.0.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-buffer/4.1.114.Final/netty-buffer-4.1.114.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-common/4.1.114.Final/netty-common-4.1.114.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-transport/4.1.114.Final/netty-transport-4.1.114.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-resolver/4.1.114.Final/netty-resolver-4.1.114.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-handler/4.1.114.Final/netty-handler-4.1.114.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-transport-native-unix-common/4.1.114.Final/netty-transport-native-unix-common-4.1.114.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-codec-http/4.1.114.Final/netty-codec-http-4.1.114.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-codec/4.1.114.Final/netty-codec-4.1.114.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/2.0.16/slf4j-api-2.0.16.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.18.1/jackson-core-2.18.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.18.1/jackson-databind-2.18.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.18.1/jackson-annotations-2.18.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-transport-native-epoll/4.1.114.Final/netty-transport-native-epoll-4.1.114.Final-linux-x86_64.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-transport-classes-epoll/4.1.114.Final/netty-transport-classes-epoll-4.1.114.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-transport-native-epoll/4.1.114.Final/netty-transport-native-epoll-4.1.114.Final-linux-aarch_64.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

11
.idea/libraries/slf4j_simple.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="slf4j.simple" type="repository">
<properties maven-id="org.slf4j:slf4j-simple:2.0.16" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-simple/2.0.16/slf4j-simple-2.0.16.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/2.0.16/slf4j-api-2.0.16.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

10
.idea/libraries/tinylog_api.xml generated Normal file
View File

@@ -0,0 +1,10 @@
<component name="libraryTable">
<library name="tinylog.api" type="repository">
<properties maven-id="org.tinylog:tinylog-api:2.5.0" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/tinylog/tinylog-api/2.5.0/tinylog-api-2.5.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

11
.idea/libraries/tinylog_impl.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="tinylog.impl" type="repository">
<properties maven-id="org.tinylog:tinylog-impl:2.7.0" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/tinylog/tinylog-impl/2.7.0/tinylog-impl-2.7.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/tinylog/tinylog-api/2.7.0/tinylog-api-2.7.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -0,0 +1,20 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="nanopi intercom" type="Run as an Embedded Java application" factoryName="Run as an Embedded Java application">
<option name="classesDirectory" />
<option name="hostname" value="192.168.10.35" />
<option name="keyPath" value="" />
<option name="password" value="gtcdev2022" />
<option name="port" value="1234" />
<option name="programArguments" value="" />
<option name="runAsRoot" value="true" />
<option name="sshPort" value="22" />
<option name="username" value="pi" />
<option name="usingKey" value="false" />
<option name="vmParameters" value="" />
<option name="moduleName" value="SIPIntercom" />
<option name="mainclass" value="Main" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>

14
.idea/webServers.xml generated Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WebServers">
<option name="servers">
<webServer id="610211eb-605e-4cac-85d6-11044ffa9537" name="192.168.10.35">
<fileTransfer rootFolder="/home/pi" accessType="SFTP" host="192.168.10.35" port="22" sshConfigId="0f3a4fce-ffbb-4b34-8d8e-21a84edbfd18" sshConfig="pi@192.168.10.35:22 password">
<advancedOptions>
<advancedOptions dataProtectionLevel="Private" keepAliveTimeout="0" passiveMode="true" shareSSLContext="true" />
</advancedOptions>
</fileTransfer>
</webServer>
</option>
</component>
</project>

View File

@@ -0,0 +1,9 @@
WebUsername=admin
WebPassword=admin
WebListenPort = 8080
SipServer=192.168.10.2
SipPort=5060
SipUsername=101
SipPassword=password101
AudioInputDevice=Default
AudioOutputDevice=Default

View File

@@ -0,0 +1,11 @@
writerConsole=console
writerConsole.level=info
writerConsole.format={date:dd-MM-yyyy HH:mm:ss} {class}.{method}() :\n{message}
writerFile=rolling file
writerFile.file=logs/{date:dd-MM-yyyy}.{count}.log
writerFile.level=info
writerFile.charset=UTF-8
writerFile.append=true
writerFile.policies=daily
writerFile.format={date:dd-MM-yyyy HH:mm:ss}\t{class}.{method}() :\t{message}

View File

@@ -5,6 +5,8 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/libs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/Properties" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/WebContentt" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
@@ -12,6 +14,9 @@
<orderEntry type="library" name="io.javalin" level="project" />
<orderEntry type="library" name="google.code.gson" level="project" />
<orderEntry type="library" name="projectlombok.lombok" level="project" />
<orderEntry type="library" name="tinylog" level="project" />
<orderEntry type="library" name="corundumstudio.socketio.netty" level="project" />
<orderEntry type="library" name="slf4j.simple" level="project" />
<orderEntry type="library" name="tinylog.api" level="project" />
<orderEntry type="library" name="tinylog.impl" level="project" />
</component>
</module>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
@font-face {
font-family: 'Font Awesome 5 Brands';
src: url(../../assets/fonts/Font%20Awesome%205%20Brands-9f495c22369544f2a6865c9d60b59dee.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%205%20Brands-ea242bb20f9fe7db35296896fae9867f.ttf) format('truetype');
font-weight: 400;
font-style: normal;
font-display: block;
}

View File

@@ -0,0 +1,8 @@
@font-face {
font-family: 'Font Awesome 5 Duotone';
src: url(../../assets/fonts/Font%20Awesome%205%20Duotone-941715f4aecfe6f923ad4d98b8e09408.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%205%20Duotone-0609b5442e186979b732d3eecf885c57.ttf) format('truetype');
font-weight: 900;
font-style: normal;
font-display: block;
}

View File

@@ -0,0 +1,26 @@
@font-face {
font-family: 'Font Awesome 5 Pro';
src: url(../../assets/fonts/Font%20Awesome%205%20Pro-813a01e49b4431cc33412a84ca94d347.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%205%20Pro-87a1b179a40953ca88a6205650aa32c9.ttf) format('truetype');
font-weight: 300;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Font Awesome 5 Pro';
src: url(../../assets/fonts/Font%20Awesome%205%20Pro-82e3029674e5d3395e37aea7b40ecc63.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%205%20Pro-8a781dd91fd45555bafe112b5008c208.ttf) format('truetype');
font-weight: 400;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Font Awesome 5 Pro';
src: url(../../assets/fonts/Font%20Awesome%205%20Pro-e17c2daa07b98413686eaeccf1f5e65a.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%205%20Pro-3724e0236c1ca473e4d73f7065e5de28.ttf) format('truetype');
font-weight: 900;
font-style: normal;
font-display: block;
}

View File

@@ -0,0 +1,8 @@
@font-face {
font-family: 'Font Awesome 6 Brands';
src: url(../../assets/fonts/Font%20Awesome%206%20Brands-9f495c22369544f2a6865c9d60b59dee.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%206%20Brands-ea242bb20f9fe7db35296896fae9867f.ttf) format('truetype');
font-weight: 400;
font-style: normal;
font-display: block;
}

View File

@@ -0,0 +1,8 @@
@font-face {
font-family: 'Font Awesome 6 Duotone';
src: url(../../assets/fonts/Font%20Awesome%206%20Duotone-941715f4aecfe6f923ad4d98b8e09408.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%206%20Duotone-0609b5442e186979b732d3eecf885c57.ttf) format('truetype');
font-weight: 900;
font-style: normal;
font-display: block;
}

View File

@@ -0,0 +1,35 @@
@font-face {
font-family: 'Font Awesome 6 Pro';
src: url(../../assets/fonts/Font%20Awesome%206%20Pro-61d823b3361d879c119cf056e85d3dbf.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%206%20Pro-4eda3069f6f64ce115228a4726aef19f.ttf) format('truetype');
font-weight: 100;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Font Awesome 6 Pro';
src: url(../../assets/fonts/Font%20Awesome%206%20Pro-813a01e49b4431cc33412a84ca94d347.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%206%20Pro-87a1b179a40953ca88a6205650aa32c9.ttf) format('truetype');
font-weight: 300;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Font Awesome 6 Pro';
src: url(../../assets/fonts/Font%20Awesome%206%20Pro-82e3029674e5d3395e37aea7b40ecc63.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%206%20Pro-8a781dd91fd45555bafe112b5008c208.ttf) format('truetype');
font-weight: 400;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Font Awesome 6 Pro';
src: url(../../assets/fonts/Font%20Awesome%206%20Pro-e17c2daa07b98413686eaeccf1f5e65a.woff2) format('woff2'),
url(../../assets/fonts/Font%20Awesome%206%20Pro-3724e0236c1ca473e4d73f7065e5de28.ttf) format('truetype');
font-weight: 900;
font-style: normal;
font-display: block;
}

View File

@@ -0,0 +1,37 @@
@font-face {
font-family: 'FontAwesome';
src: url(../../assets/fonts/FontAwesome-e17c2daa07b98413686eaeccf1f5e65a.woff2) format('woff2'),
url(../../assets/fonts/FontAwesome-3724e0236c1ca473e4d73f7065e5de28.ttf) format('truetype');
font-weight: 400;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'FontAwesome';
src: url(../../assets/fonts/FontAwesome-9f495c22369544f2a6865c9d60b59dee.woff2) format('woff2'),
url(../../assets/fonts/FontAwesome-ea242bb20f9fe7db35296896fae9867f.ttf) format('truetype');
font-weight: 400;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'FontAwesome';
src: url(../../assets/fonts/FontAwesome-82e3029674e5d3395e37aea7b40ecc63.woff2) format('woff2'),
url(../../assets/fonts/FontAwesome-8a781dd91fd45555bafe112b5008c208.ttf) format('truetype');
font-weight: 400;
font-style: normal;
font-display: block;
unicode-range: u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc;
}
@font-face {
font-family: 'FontAwesome';
src: url(../../assets/fonts/FontAwesome-817c19ff4bd5fc55e3922afce45e4117.woff2) format('woff2'),
url(../../assets/fonts/FontAwesome-01b9ff0cac2f6363c217c19d5787b037.ttf) format('truetype');
font-weight: 400;
font-style: normal;
font-display: block;
unicode-range: u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a;
}

View File

@@ -0,0 +1,57 @@
.bs-icon {
--bs-icon-size: .75rem;
display: flex;
flex-shrink: 0;
justify-content: center;
align-items: center;
font-size: var(--bs-icon-size);
width: calc(var(--bs-icon-size) * 2);
height: calc(var(--bs-icon-size) * 2);
color: var(--bs-primary);
}
.bs-icon-xs {
--bs-icon-size: 1rem;
width: calc(var(--bs-icon-size) * 1.5);
height: calc(var(--bs-icon-size) * 1.5);
}
.bs-icon-sm {
--bs-icon-size: 1rem;
}
.bs-icon-md {
--bs-icon-size: 1.5rem;
}
.bs-icon-lg {
--bs-icon-size: 2rem;
}
.bs-icon-xl {
--bs-icon-size: 2.5rem;
}
.bs-icon.bs-icon-primary {
color: var(--bs-white);
background: var(--bs-primary);
}
.bs-icon.bs-icon-primary-light {
color: var(--bs-primary);
background: rgba(var(--bs-primary-rgb), .2);
}
.bs-icon.bs-icon-semi-white {
color: var(--bs-primary);
background: rgba(255, 255, 255, .5);
}
.bs-icon.bs-icon-rounded {
border-radius: .5rem;
}
.bs-icon.bs-icon-circle {
border-radius: 50%;
}

28905
WebContentt/public/assets/css/all.min.css vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,235 @@
let socket;
function indexload(){
console.log("Index loaded");
socket = io.connect(':9092/socketio');
let intervalhandle;
socket.on('connect', function() {
console.log("Connected, id: " + socket.id);
intervalhandle = setInterval(function(){
socket.emit('command', requestdata('getCpuInfo',''), (response)=>{
let data = isSuccess(response);
if (data) {
let cpuUsage = JSON.parse(data.cpuUsage);
$('#cpuStatus').text('Temp: ' + data.cpuTemperature + ' °C, Usage: ' + cpuUsage.cpu + '%');
}
});
socket.emit('command', requestdata('getRamInfo','') , (response)=>{
let data = isSuccess(response);
if (data) {
$('#ramStatus').text('Total: ' + data.totalKB + ' , Free: ' + data.availableKB + ' , Usage: ' + data.usedKB);
}
});
socket.emit('command', requestdata('getSipStatus',''), (response)=>{
let data = isSuccess(response);
if (data) {
$('#sipStatus').text(data);
}
});
socket.emit('command', requestdata('getNetworkInfo',''), (response)=>{
let data = isSuccess(response);
if (data) {
let txmap = JSON.parse(data.txmap);
let rxmap = JSON.parse(data.rxmap);
$('#networkStatus').text('TX: '+txmap.eth0+', RX: '+rxmap.eth0);
}
});
socket.emit('command', requestdata('getDiskInfo',''), (response)=>{
let data = isSuccess(response);
if (data) {
$('#storageStatus').text('Total: ' + data.total + ' , Free: ' + data.free);
}
});
}, 5000);
});
socket.on('disconnect', function() {
console.log("Disconnected");
clearInterval(intervalhandle);
});
}
/**
* Create Socketio RequestData
* @param {string} request
* @param {string }data
* @returns JsonObject
*/
function requestdata(request, data){
return {request: request, data: data};
}
/**
* Check if response is success
* @param {Object} value response data to check
* @return {null} if failed, Object if success
*/
function isSuccess(value){
if (value){
if (value.hasOwnProperty('response') && value.hasOwnProperty('data')){
if (value.response && value.response.length>0){
if (value.response==='success'){
let len = value.data.length;
if (len>0){
if (value.data[0]==='{'){
if (value.data[len-1]==='}'){
return JSON.parse(value.data);
}
}
}
return value.data;
}
}
}
}
return null;
}
function dialClick(){
console.log("Dial clicked");
let number = $('#dialNumber').val();
if (socket && socket.connected) socket.emit('command', requestdata('dial',number), (response)=>{
console.log("Dial response: "+response);
});
}
function hangupClick(){
console.log("Hangup clicked");
if (socket && socket.connected) socket.emit('command', requestdata('hangup',''), (response)=>{
console.log("Hangup response: "+response);
});
}
function clearDialNumber(){
$('#dialNumber').val('');
}
function appendDialNumber(number){
console.log('Append number: '+number);
$('#dialNumber').val($('#dialNumber').val()+number);
}
function settingload(){
console.log("Setting loaded");
if (socket && socket.connected) {
socket.disconnect();
}
fetch('/setting', {method: 'GET'}).then((response)=>{
response.json().then((data)=>{
//console.log(JSON.stringify(data));
$('#webUsername').val(data.loginSetting.Username);
$('#webPassword').val(data.loginSetting.Password);
$('#sipServer').val(data.sipSetting.Server);
$('#sipPort').val(data.sipSetting.Port);
$('#sipUsername').val(data.sipSetting.Username);
$('#sipPassword').val(data.sipSetting.Password);
});
});
}
function sendLoginData(){
console.log("Send login data");
let loginData = {
Username: $('#webUsername').val(),
Password: $('#webPassword').val()
};
fetch('/logindata', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(loginData)
}).then((response)=>{
response.text().then((msg)=>{
alert(msg);
});
});
}
function sendSipData(){
console.log("Send SIP data");
let sipData = {
Server: $('#sipServer').val(),
Port: $('#sipPort').val(),
Username: $('#sipUsername').val(),
Password: $('#sipPassword').val()
};
fetch('/sipdata', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(sipData)
}).then((response)=>{
response.text().then((msg)=>{
alert(msg);
});
});
}
function loginload(){
console.log("Login loaded");
if (socket && socket.connected) {
socket.disconnect();
}
}
function logload(){
console.log("Log loaded");
if (socket && socket.connected) {
socket.disconnect();
}
getLogFiles();
$('#logfiles').change(function(){
let logname = $('#logfiles').val();
if (logname && logname.length>0){
getLogData(logname);
}
});
}
function getLogFiles(){
fetch('/logfiles', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
}).then((response)=>{
response.json().then((data)=>{
let logList = $('#logfiles');
logList.empty();
logList.append('<option value="">Select Logfile</option>');
data.forEach((log)=>{
logList.append('<option value="'+log+'">'+log+'</option>');
});
});
});
}
function getLogData(logname){
fetch('/logdata', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: logname
}).then((response)=>{
response.json().then((data)=>{
let tablebody = $('#tablebody');
tablebody.empty();
data.forEach((log)=>{
let str = '<tr>';
str += '<td>'+log.Date+'</td>';
str += '<td>'+log.Time+'</td>';
str += '<td>'+log.Method+'</td>';
str += '<td>'+log.Message+'</td>';
str += '</tr>';
tablebody.append(str);
});
});
});
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,123 @@
<!DOCTYPE html>
<html data-bs-theme="light" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SIPIntercom</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Brands.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Duotone.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Pro.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Brands.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Duotone.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Pro.css">
<link rel="stylesheet" href="assets/css/FontAwesome.css">
<link rel="stylesheet" href="assets/css/all.min.css">
<link rel="stylesheet" href="assets/css/Navbar-Centered-Brand-icons.css">
</head>
<body onload="indexload()">
<nav class="navbar navbar-expand-md bg-body py-3">
<div class="container"><a class="navbar-brand d-flex align-items-center" href="#"><span class="bs-icon-sm bs-icon-rounded bs-icon-primary d-flex justify-content-center align-items-center me-2 bs-icon"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-bezier">
<path fill-rule="evenodd" d="M0 10.5A1.5 1.5 0 0 1 1.5 9h1A1.5 1.5 0 0 1 4 10.5v1A1.5 1.5 0 0 1 2.5 13h-1A1.5 1.5 0 0 1 0 11.5zm1.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm10.5.5A1.5 1.5 0 0 1 13.5 9h1a1.5 1.5 0 0 1 1.5 1.5v1a1.5 1.5 0 0 1-1.5 1.5h-1a1.5 1.5 0 0 1-1.5-1.5zm1.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM6 4.5A1.5 1.5 0 0 1 7.5 3h1A1.5 1.5 0 0 1 10 4.5v1A1.5 1.5 0 0 1 8.5 7h-1A1.5 1.5 0 0 1 6 5.5zM7.5 4a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z"></path>
<path d="M6 4.5H1.866a1 1 0 1 0 0 1h2.668A6.517 6.517 0 0 0 1.814 9H2.5c.123 0 .244.015.358.043a5.517 5.517 0 0 1 3.185-3.185A1.503 1.503 0 0 1 6 5.5zm3.957 1.358A1.5 1.5 0 0 0 10 5.5v-1h4.134a1 1 0 1 1 0 1h-2.668a6.517 6.517 0 0 1 2.72 3.5H13.5c-.123 0-.243.015-.358.043a5.517 5.517 0 0 0-3.185-3.185z"></path>
</svg></span><span>SIP Intercom</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-4"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse flex-grow-0 order-md-first" id="navcol-4">
<ul class="navbar-nav me-auto">
<li class="nav-item"><a class="nav-link active" href="#">Overview</a></li>
<li class="nav-item"><a class="nav-link" href="setting.html">Setting</a></li>
<li class="nav-item"><a class="nav-link" href="log.html">Log</a></li>
</ul>
<div class="d-md-none my-2"><button class="btn btn-light me-2" type="button">Button</button><button class="btn btn-primary" type="button">Button</button></div>
</div>
<div class="d-none d-md-block">
<form method="GET" action="logout"><button class="btn btn-light me-2" type="submit">Log Off</button></form>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col">
<p>SIP Status</p>
</div>
<div class="col">
<p id="sipStatus">No Status</p>
</div>
</div>
<div class="row">
<div class="col">
<p>CPU Status</p>
</div>
<div class="col">
<p id="cpuStatus">No Status</p>
</div>
</div>
<div class="row">
<div class="col">
<p>RAM Status</p>
</div>
<div class="col">
<p id="ramStatus">No Status</p>
</div>
</div>
<div class="row">
<div class="col">
<p>Storage Status</p>
</div>
<div class="col">
<p id="storageStatus">No Status</p>
</div>
</div>
<div class="row">
<div class="col">
<p>Network Status</p>
</div>
<div class="col">
<p id="networkStatus">No Status</p>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-1">
<p>Dial To</p>
</div>
<div class="col-lg-3"><input type="text" id="dialNumber" name="dialNumber"></div>
<div class="col-lg-6">
<div class="row">
<div class="col-lg-6"><button class="btn btn-primary btn-lg" id="dialButton" type="button" onclick="dialClick()">Dial</button></div>
<div class="col-lg-6"><button class="btn btn-primary btn-lg" id="hangupButton" type="button" onclick="hangupClick()">Hangup</button></div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(1)">1</button></div>
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(2)">2</button></div>
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(3)">3</button></div>
</div>
<div class="row">
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(4)">4</button></div>
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(5)">5</button></div>
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(6)">6</button></div>
</div>
<div class="row">
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(7)">7</button></div>
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(8)">8</button></div>
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(9)">9</button></div>
</div>
<div class="row">
<div class="col"><button class="btn btn-primary" type="button" onclick="appendDialNumber(0)">0</button></div>
<div class="col"><button class="btn btn-primary" type="button" onclick="clearDialNumber()">clear</button></div>
<div class="col"></div>
</div>
</div>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/jquery-3.7.1.js"></script>
<script src="assets/js/socket.io.js"></script>
<script src="assets/js/app.js"></script>
</body>
</html>

View File

@@ -0,0 +1,87 @@
<!DOCTYPE html>
<html data-bs-theme="light" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SIPIntercom</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Brands.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Duotone.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Pro.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Brands.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Duotone.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Pro.css">
<link rel="stylesheet" href="assets/css/FontAwesome.css">
<link rel="stylesheet" href="assets/css/all.min.css">
<link rel="stylesheet" href="assets/css/Navbar-Centered-Brand-icons.css">
</head>
<body onload="logload()">
<nav class="navbar navbar-expand-md bg-body py-3">
<div class="container"><a class="navbar-brand d-flex align-items-center" href="#"><span class="bs-icon-sm bs-icon-rounded bs-icon-primary d-flex justify-content-center align-items-center me-2 bs-icon"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-bezier">
<path fill-rule="evenodd" d="M0 10.5A1.5 1.5 0 0 1 1.5 9h1A1.5 1.5 0 0 1 4 10.5v1A1.5 1.5 0 0 1 2.5 13h-1A1.5 1.5 0 0 1 0 11.5zm1.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm10.5.5A1.5 1.5 0 0 1 13.5 9h1a1.5 1.5 0 0 1 1.5 1.5v1a1.5 1.5 0 0 1-1.5 1.5h-1a1.5 1.5 0 0 1-1.5-1.5zm1.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM6 4.5A1.5 1.5 0 0 1 7.5 3h1A1.5 1.5 0 0 1 10 4.5v1A1.5 1.5 0 0 1 8.5 7h-1A1.5 1.5 0 0 1 6 5.5zM7.5 4a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z"></path>
<path d="M6 4.5H1.866a1 1 0 1 0 0 1h2.668A6.517 6.517 0 0 0 1.814 9H2.5c.123 0 .244.015.358.043a5.517 5.517 0 0 1 3.185-3.185A1.503 1.503 0 0 1 6 5.5zm3.957 1.358A1.5 1.5 0 0 0 10 5.5v-1h4.134a1 1 0 1 1 0 1h-2.668a6.517 6.517 0 0 1 2.72 3.5H13.5c-.123 0-.243.015-.358.043a5.517 5.517 0 0 0-3.185-3.185z"></path>
</svg></span><span>SIP Intercom</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-4"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse flex-grow-0 order-md-first" id="navcol-4">
<ul class="navbar-nav me-auto">
<li class="nav-item"><a class="nav-link" href="index.html">Overview</a></li>
<li class="nav-item"><a class="nav-link" href="setting.html">Setting</a></li>
<li class="nav-item"><a class="nav-link active" href="#">Log</a></li>
</ul>
<div class="d-md-none my-2"><button class="btn btn-light me-2" type="button">Button</button><button class="btn btn-primary" type="button">Button</button></div>
</div>
<div class="d-none d-md-block">
<form method="GET" action="/logout"><button class="btn btn-light me-2" type="submit">Log Off</button></form>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-lg-6">
<p>Log File</p>
</div>
<div class="col-lg-6"><select id="logfiles">
<optgroup label="This is a group">
<option value="12" selected="">This is item 1</option>
<option value="13">This is item 2</option>
<option value="14">This is item 3</option>
</optgroup>
</select></div>
</div>
<div class="row">
<div class="table-responsive">
<table class="table" id="logtable">
<thead>
<tr>
<th>Date</th>
<th>Time</th>
<th>Method</th>
<th>Message</th>
</tr>
</thead>
<tbody id="tablebody">
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
<tr>
<td>Cell 3</td>
<td>Cell 4</td>
<td>Cell 3</td>
<td>Cell 4</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/jquery-3.7.1.js"></script>
<script src="assets/js/socket.io.js"></script>
<script src="assets/js/app.js"></script>
</body>
</html>

View File

@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html data-bs-theme="light" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SIPIntercom</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Brands.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Duotone.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Pro.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Brands.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Duotone.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Pro.css">
<link rel="stylesheet" href="assets/css/FontAwesome.css">
<link rel="stylesheet" href="assets/css/all.min.css">
<link rel="stylesheet" href="assets/css/Navbar-Centered-Brand-icons.css">
</head>
<body onload="loginload()">
<section class="position-relative py-4 py-xl-5">
<div class="container">
<div class="row mb-5">
<div class="col-md-8 col-xl-6 text-center mx-auto">
<h2>Log in</h2>
<p class="w-lg-50">SIP Intercom</p>
</div>
</div>
<div class="row d-flex justify-content-center">
<div class="col-md-6 col-xl-4">
<div class="card mb-5">
<div class="card-body d-flex flex-column align-items-center">
<div class="bs-icon-xl bs-icon-circle bs-icon-primary bs-icon my-4"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-person">
<path d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6m2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0m4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4m-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664z"></path>
</svg></div>
<form class="text-center" method="post" action="/login">
<div class="mb-3"><input class="form-control" type="text" name="username" placeholder="Username"></div>
<div class="mb-3"><input class="form-control" type="password" name="password" placeholder="Password"></div>
<div class="mb-3"><button class="btn btn-primary d-block w-100" type="submit">Login</button></div>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/jquery-3.7.1.js"></script>
<script src="assets/js/socket.io.js"></script>
<script src="assets/js/app.js"></script>
</body>
</html>

View File

@@ -0,0 +1,93 @@
<!DOCTYPE html>
<html data-bs-theme="light" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SIPIntercom</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Brands.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Duotone.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%205%20Pro.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Brands.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Duotone.css">
<link rel="stylesheet" href="assets/css/Font%20Awesome%206%20Pro.css">
<link rel="stylesheet" href="assets/css/FontAwesome.css">
<link rel="stylesheet" href="assets/css/all.min.css">
<link rel="stylesheet" href="assets/css/Navbar-Centered-Brand-icons.css">
</head>
<body onload="settingload()">
<nav class="navbar navbar-expand-md bg-body py-3">
<div class="container"><a class="navbar-brand d-flex align-items-center" href="#"><span class="bs-icon-sm bs-icon-rounded bs-icon-primary d-flex justify-content-center align-items-center me-2 bs-icon"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-bezier">
<path fill-rule="evenodd" d="M0 10.5A1.5 1.5 0 0 1 1.5 9h1A1.5 1.5 0 0 1 4 10.5v1A1.5 1.5 0 0 1 2.5 13h-1A1.5 1.5 0 0 1 0 11.5zm1.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm10.5.5A1.5 1.5 0 0 1 13.5 9h1a1.5 1.5 0 0 1 1.5 1.5v1a1.5 1.5 0 0 1-1.5 1.5h-1a1.5 1.5 0 0 1-1.5-1.5zm1.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM6 4.5A1.5 1.5 0 0 1 7.5 3h1A1.5 1.5 0 0 1 10 4.5v1A1.5 1.5 0 0 1 8.5 7h-1A1.5 1.5 0 0 1 6 5.5zM7.5 4a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z"></path>
<path d="M6 4.5H1.866a1 1 0 1 0 0 1h2.668A6.517 6.517 0 0 0 1.814 9H2.5c.123 0 .244.015.358.043a5.517 5.517 0 0 1 3.185-3.185A1.503 1.503 0 0 1 6 5.5zm3.957 1.358A1.5 1.5 0 0 0 10 5.5v-1h4.134a1 1 0 1 1 0 1h-2.668a6.517 6.517 0 0 1 2.72 3.5H13.5c-.123 0-.243.015-.358.043a5.517 5.517 0 0 0-3.185-3.185z"></path>
</svg></span><span>SIP Intercom</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-4"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse flex-grow-0 order-md-first" id="navcol-4">
<ul class="navbar-nav me-auto">
<li class="nav-item"><a class="nav-link" href="index.html">Overview</a></li>
<li class="nav-item"><a class="nav-link active" href="#">Setting</a></li>
<li class="nav-item"><a class="nav-link" href="log.html">Log</a></li>
</ul>
<div class="d-md-none my-2"><button class="btn btn-light me-2" type="button">Button</button><button class="btn btn-primary" type="button">Button</button></div>
</div>
<div class="d-none d-md-block">
<form method="GET" action="/logout"><button class="btn btn-light me-2" type="submit">Log Off</button></form>
</div>
</div>
</nav>
<div class="container">
<form method="post" action="/logindata">
<div class="col">
<div class="row">
<div class="col"><label class="col-form-label">Login Username</label></div>
<div class="col"><input class="form-control" type="text" id="webUsername" name="webUsername" placeholder="Login Username"></div>
</div>
<div class="row">
<div class="col"><label class="col-form-label">Login Password</label></div>
<div class="col"><input class="form-control" type="text" id="webPassword" name="webPassword" placeholder="Login Password"></div>
</div>
</div>
<div class="col">
<div class="row">
<div class="col"><button class="btn btn-primary btn-lg" type="submit">Save&nbsp;&nbsp;<svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" width="1em" height="1em" fill="currentColor">
<!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. -->
<path d="M48 96V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V170.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H309.5c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8V184c0 13.3-10.7 24-24 24H104c-13.3 0-24-10.7-24-24V80H64c-8.8 0-16 7.2-16 16zm80-16v80H272V80H128zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"></path>
</svg></button></div>
</div>
</div>
</form>
</div>
<div class="container">
<form method="post" action="/sipdata">
<div class="row">
<div class="col"><label class="col-form-label">SIP Server</label></div>
<div class="col"><input class="form-control" type="text" id="sipServer" name="sipServer" placeholder="SIP Server"></div>
</div>
<div class="row">
<div class="col"><label class="col-form-label">SIP Port</label></div>
<div class="col"><input class="form-control" type="number" id="sipPort" name="sipPort" placeholder="SIP Portnumber"></div>
</div>
<div class="row">
<div class="col"><label class="col-form-label">SIP Username</label></div>
<div class="col"><input class="form-control" type="text" id="sipUsername" name="sipUsername" placeholder="SIP Username"></div>
</div>
<div class="row">
<div class="col"><label class="col-form-label">SIP Password</label></div>
<div class="col"><input class="form-control" type="text" id="sipPassword" name="sipPassword" placeholder="SIP Password"></div>
</div>
<div class="row">
<div class="col"><button class="btn btn-primary btn-lg" type="submit">Save&nbsp;&nbsp;<svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" width="1em" height="1em" fill="currentColor">
<!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. -->
<path d="M48 96V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V170.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H309.5c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8V184c0 13.3-10.7 24-24 24H104c-13.3 0-24-10.7-24-24V80H64c-8.8 0-16 7.2-16 16zm80-16v80H272V80H128zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"></path>
</svg></button></div>
</div>
</form>
</div>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/jquery-3.7.1.js"></script>
<script src="assets/js/socket.io.js"></script>
<script src="assets/js/app.js"></script>
</body>
</html>

View File

@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: Main

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
libs/linux-arm/libbasscd.so Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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