config support

This commit is contained in:
legendary-cookie
2021-10-18 19:11:05 +02:00
parent bdabf0017a
commit 2c6ca541e0
11 changed files with 71 additions and 31 deletions
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.
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
+2 -6
View File
@@ -11,12 +11,8 @@ repositories {
dependencies { dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' implementation 'org.yaml:snakeyaml:1.29'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' implementation group: 'commons-io', name: 'commons-io', version: '2.6'
}
test {
useJUnitPlatform()
} }
jar { jar {
@@ -1,41 +1,76 @@
package de.vincentschweiger.calltoj; package de.vincentschweiger.calltoj;
import org.apache.commons.io.IOUtils;
import org.yaml.snakeyaml.Yaml;
import javax.swing.*;
import java.io.*;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.util.Base64; import java.util.Base64;
import java.util.Map;
/** /**
* Mo. 18/10/2021 17:32 * Mo. 18/10/2021 17:32
* *
* @author cook1e * @author cook1e
*/ */
@SuppressWarnings("ResultOfMethodCallIgnored")
public class CallToJ { public class CallToJ {
private static String snom_webadmin_user = "admin"; private static final File configFile = new File(new File(System.getProperty("user.home")), ".callto.yaml");
private static String snom_webadmin_pw = "x7eff15";
private static String hostname_snom = "snom765-901777.getcom.de";
public static void main(String[] args) throws java.io.IOException { public static void main(String[] args) {
String number; try {
if (args.length < 1) { if (!configFile.exists()) {
number = "015904183517"; configFile.createNewFile();
} else { FileOutputStream outputStream = new FileOutputStream(configFile);
number = args[0]; InputStream inputStream = CallToJ.class.getResourceAsStream("/template.yaml");
// Replace cause of firefox and callto handling stuff if (inputStream != null) {
number = number.replace("callto://", ""); IOUtils.copy(inputStream, outputStream);
number = number.replace("tel://", ""); inputStream.close();
number = number.replace("sip://", ""); } else {
number = number.replace("+49", "0"); JOptionPane.showMessageDialog(null, "IN is null");
number = number.replace("%20", ""); outputStream.close();
configFile.delete();
System.exit(-1);
}
outputStream.close();
JOptionPane.showMessageDialog(null, "You have to configure CallToJ!\n See .callto.yaml in your home directory!");
System.exit(0);
}
Yaml yaml = new Yaml();
FileInputStream inputStream = new FileInputStream(configFile);
Map<String, Object> obj = yaml.load(inputStream);
String snom_webadmin_user = obj.get("user").toString();
String snom_webadmin_pw = obj.get("password").toString();
String hostname_snom = obj.get("hostname").toString();
String number;
if (args.length < 1) {
number = "015904183517";
} else {
number = args[0];
// Replace cause of firefox and callto handling stuff
number = number.replace("callto://", "");
number = number.replace("tel://", "");
number = number.replace("sip://", "");
number = number.replace("+49", "0");
number = number.replace("%20", "");
}
System.out.println("Using Snom phone to dial number " + number);
URL url = new URL("http://" + hostname_snom + "/command.htm?number=" + number + "&outgoing_uri=URI");
String encoding = Base64.getEncoder().encodeToString((snom_webadmin_user + ":" + snom_webadmin_pw).getBytes());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(false);
connection.setRequestProperty("Authorization", "Basic " + encoding);
connection.getResponseCode();
} catch (IOException e) {
e.printStackTrace();
} }
System.out.println("Using Snom phone to dial number " + number);
URL url = new URL("http://" + hostname_snom + "/command.htm?number=" + number + "&outgoing_uri=URI");
String encoding = Base64.getEncoder().encodeToString((snom_webadmin_user + ":" + snom_webadmin_pw).getBytes());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(false);
connection.setRequestProperty("Authorization", "Basic " + encoding);
connection.getResponseCode();
} }
} }
+3
View File
@@ -0,0 +1,3 @@
user: USERNAME
password: PASSWORD
hostname: HOSTNAME