Java - Asterisk Allocation failed

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Asterisk Allocation failed

Publicado por Jesus Stiven (5 intervenciones) el 18/03/2020 21:43:05
Hola, ¿como estan?, paso para preguntar por asterisk ARI con java, estoy usando ari4java, cuando creo un channel me saca un error y no logro entender porque, llevo todo el día investigando y lo que encuentro no me ayuda o no lo entiendo, alguien me podría orientar en el tema o ayudarme, muchas gracias de antemano.



image
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Asterisk Allocation failed

Publicado por Billy Joel (875 intervenciones) el 18/03/2020 22:44:40
Mi historia con esas "librerías" es que no funcionan por "X" o "Y" razón...
Si tienes que acceder a los servicios a través de REST entonces primero te recomiendo utilizar Apache HTTPComponents. En lo personal utilizo la versión 4.5;

Se que están también JAX-RS o jetty pero nunca logré que me funcionara por lo que me quedé con Apache HTTPComponents.

Antes de continuar con mi respuesta debes descargar la librería para manejar objetos JSON. Para esto te recomiendo JSON-java. Mas que una librería son códigos fuentes que los vas a colocar dentro de tu proyecto y que queden así:
5bd9b9d094d51-json-package

Entonces acá te dejo unos métodos para realizar las peticiones, solo descarga la librería Apache HTTPComponents, agregala a tu proyecto e implementa estos métodos en alguna de tus clases para hacer las peticiones.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
private static CloseableHttpClient getHttpClient() {
    CloseableHttpClient httpclient = HttpClients.createDefault();
    return httpclient;
}
 
public static JSONObject exeHttpServiceGET(String url) {
    JSONObject o = null;
    try {
        HttpGet request = new HttpGet(url);
        request.addHeader("accept", "application/json");
        try (
                CloseableHttpResponse response = getHttpClient().execute(request)) {
            BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String line;
            StringBuilder result = new StringBuilder();
            while ((line = rd.readLine()) != null) {
//                System.out.println(line);
                result.append(line);
            }
            o = new JSONObject(toUTF8(result.toString()));
            Header[] headers = response.getAllHeaders();
        }
    } catch (IOException ex) {
        ex.printStackTrace(System.out);
    }
    return o;
}
 
public static JSONObject exeHttpServicePOST(String url) {
    JSONObject o = null;
    try {
        HttpPost request = new HttpPost(url);
        request.addHeader("accept", "application/json");
        try (
                CloseableHttpResponse response = getHttpClient().execute(request)) {
            BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String line;
            StringBuilder result = new StringBuilder();
            while ((line = rd.readLine()) != null) {
//                System.out.println(line);
                result.append(line);
            }
            o = new JSONObject(result.toString());
        }
    } catch (IOException ex) {
        ex.printStackTrace(System.out);
    }
    return o;
}
 
public static JSONObject exeHttpServicePOST(String url, JSONObject body) {
    System.out.println("url: " + url);
    System.out.println("body: " + body.toString());
    JSONObject o = null;
    try {
        StringEntity input = new StringEntity(body.toString(), ContentType.APPLICATION_JSON);
        HttpPost request = new HttpPost(url);
        request.setEntity(input);
        request.addHeader("Content-Type", "application/json");
        request.addHeader("Accept", "application/json");
        try (
                CloseableHttpResponse response = getHttpClient().execute(request)) {
            BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String line;
            StringBuilder result = new StringBuilder();
            System.out.println("imprimiendo respuesta...");
            while ((line = rd.readLine()) != null) {
                System.out.println(line);
                result.append(line);
            }
            System.out.println("POST restult: " + result.length() + " " + result.toString());
            o = result.length() == 0 ? new JSONObject() : new JSONObject(toUTF8(result.toString()));
        }
    } catch (IOException ex) {
        ex.printStackTrace(System.out);
    }
    return o;
}

Entonces ahora que puedes hacer las peticiones web desde Java prueba usando el tutorial de asterisk

También te recomiendo que utilices POSTMAN para probar las peticiones y ver que funcionen antes de implementarlas en tu código. También sería bueno que imprimieras las urls de las peticiones para que luego puedas probar en postman por si acaso se generan errores.

Cualquier duda solo pregunta,
Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Asterisk Allocation failed

Publicado por Jesus Stiven (5 intervenciones) el 18/03/2020 22:53:55
Saludos, en el desarrollo que estoy haciendo tengo el servidor asterisk montado en un servidor llamado issabel, ¿me gustaria saber si has trabajado con asterisk para el desarrollo con springboot?, el error que tengo no creo que sea por librerias json creo que es más de los parametros que se envian al channel, si tienes conocimiento de ello me podrias explicar los parametros que recibe, muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Asterisk Allocation failed

Publicado por Jesus Stiven (5 intervenciones) el 19/03/2020 02:22:31
si, estoy tratando de realizar una llamada desde asterisk a un dispositivo externo, pero he tenido este error por varios días y como no encontre respuestas en ningún lado y como soy nuevo en esta tecnologia decidí postearlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Asterisk Allocation failed

Publicado por Jesus Stiven (5 intervenciones) el 19/03/2020 20:32:34
Saludos, de casualidad sabes como hago para meter un channel en stasis no se como hacerlo y lo que encuentro no me funciona, como creo el stasis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar