config support
This commit is contained in:
		
										
											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.
										
									
								
							
							
								
								
									
										6
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal 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>
 | 
				
			||||||
@ -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
									
								
								src/main/resources/template.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/main/resources/template.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					user: USERNAME
 | 
				
			||||||
 | 
					password: PASSWORD
 | 
				
			||||||
 | 
					hostname: HOSTNAME
 | 
				
			||||||
		Reference in New Issue
	
	Block a user