config support

master
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.

6
.idea/vcs.xml Normal file
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>

View File

@ -11,12 +11,8 @@ repositories {
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}
test {
useJUnitPlatform()
implementation 'org.yaml:snakeyaml:1.29'
implementation group: 'commons-io', name: 'commons-io', version: '2.6'
}
jar {

View File

@ -1,41 +1,76 @@
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.URL;
import java.util.Base64;
import java.util.Map;
/**
* Mo. 18/10/2021 17:32
*
* @author cook1e
*/
@SuppressWarnings("ResultOfMethodCallIgnored")
public class CallToJ {
private static String snom_webadmin_user = "admin";
private static String snom_webadmin_pw = "x7eff15";
private static String hostname_snom = "snom765-901777.getcom.de";
private static final File configFile = new File(new File(System.getProperty("user.home")), ".callto.yaml");
public static void main(String[] args) throws java.io.IOException {
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", "");
public static void main(String[] args) {
try {
if (!configFile.exists()) {
configFile.createNewFile();
FileOutputStream outputStream = new FileOutputStream(configFile);
InputStream inputStream = CallToJ.class.getResourceAsStream("/template.yaml");
if (inputStream != null) {
IOUtils.copy(inputStream, outputStream);
inputStream.close();
} else {
JOptionPane.showMessageDialog(null, "IN is null");
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();
}
}

View File

@ -0,0 +1,3 @@
user: USERNAME
password: PASSWORD
hostname: HOSTNAME