Java - Asterisk stasis application

 
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 stasis application

Publicado por Jesus Stiven (5 intervenciones) el 25/03/2020 15:41:02
Hola, espero esten bien, estoy tratando de hacer un servici de llamadas con asterisk en java springboot la luibreria que estoy usando es ari4java, hago este post, para preguntar como puedo registrar o subscribir un channel en stasis.
hasta el momento he estado haciendo la autentificación, el bridge y channel.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
System.out.println("Version asterisk");
Map<String, String> variables = new HashMap<>();
ARI ari = ARI.build("ruta-Issabel", "nombre-app", "user", "pass", AriVersion.ARI_3_0_0);
System.out.println("Connected through ARI: " + ari.getVersion());
AsteriskInfo ai = ari.asterisk().getInfo("");
System.out.println("Hey! We're connected! Asterisk Version: " + ai.getSystem().getVersion());
 
System.out.println("Create bridge");
b = ari.bridges().create("", "a4j-bridge1", "myBridge");
System.out.println("Bridge ID:" + b.getId() + " Name:" + b.getName() + " Tech:" + b.getTechnology() + " Creator:" + b.getCreator());
System.out.println( "Listing bridges");
System.out.println(". BridgeID:" + b.getId() + " Name:" + b.getName() + " Tech:" + b.getTechnology() + " Creator:" + b.getCreator() + " Class: " + b.getBridge_class() + " Type: " + b.getBridge_type() + " Chans: " + b.getChannels().size());
 
 
System.out.println("PRUEBA DE CHANNELS");
Channel channel = ari.channels().originate("SIP/132", numero, "from-internal", 1, "", "", "", "", 300, Collections.EMPTY_MAP, "", "", "", "");
//Channel channel = ari.channels().create("SIP/132",numero,"from-internal","1","","","");
System.out.println( "Channel:" + channel.getId() + " in state " + channel.getState() );

El codigo anterior, me permite empezar una llamada, esta se conecta con el dispositivo virtual que tengo asociado a la extencion, y empieza a timbrar, al contestar en el dispositivo virtual se que da timbrando y redirecciona la llamada a mi dispositivo fisico, pero aunque conteste el dispositivo virtual nunca cambia su estado de la llamada y se queda timbrando.
al investigar me encontre con el dial, se supone que el dial me permite manipulatr la llamada y al tratar de usar este o otros metodos de asterisk me sacan dos posibles errores según el metodo, "Channel not in a Stasis application" o "Channel cannot be found.".
si alguien me puede ayudar a resolver estos problemas le estaria muy agradecido.

1
2
ari.channels().dial(channel.getId(),"", 30); //Channel cannot be found
ari.channels().continueInDialplan(channel.getId(), "from-internal", "SIP/132", 1, ""); //Channel not in a Stasis application
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