config support
parent
bdabf0017a
commit
2c6ca541e0
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.
|
@ -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>
|
|
@ -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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
user: USERNAME
|
||||||
|
password: PASSWORD
|
||||||
|
hostname: HOSTNAME
|
Loading…
Reference in New Issue