my thoughts after taking a quick look...:
I don´t see something essentially wrong... the listener only works, as
long the object is "alive"... using it in a thread is ok, but i don´t
see the code that initializes and finally "runs" the thread..
maybe you have deadslocks, or any other multithread related problems...
or just a network-problem... (are asterisk and your programm running on
different machines?)
getting the managerconnection the way you do it should work, but it may
be better to go the recommended way (don´t know your environment) and
use the managerfactory.
are you using at least the asterisk-java 1.0 api?
using a serverlistener does not fire much info... a managereventlistener
would give you much more information...
maybe the thread-sleeptime of 20secs is too long...
are you sure, that your asterisk is fine all the time? maybe there are
interference with reloads, crashes and so on? what do asterisk-logs say
(increase verbosity or use debug log) when connections failes?
normally the managerconnection reestablishes the socketconnection, but
this is not very stable... this only seems to work if the connection
breaks after issuing a command... so relying on the result of getState
is quite useless... you should fire an action to reliably check the
availability... this should of course be a command that does not consume
much resources.. e.g. core show version etc.
yves
Am 12.11.2015 um 11:15 schrieb Alessio Turini:
Ok, thanks for the answers.
The code in answer is similar as mine, I try to insert a portion of
project below , the class EventoAsterisk after a couple of hours(15 h)
doesn't grab the events,
There is a mode to check this type of connection?
In the method run, i try to check mc object but the result is always
connected.
Thanks Ale
class ManagerAsterisk extends Thread {
private String host;
private String user;
private String psw;
private DefaultAsteriskServer serverA;
private ManagerConnection mc;
private EventoAsterisk eventi;
ManagerAsterisk(String host, String user, String psw) {
Log.info("DefaultAsteriskServer start ");
this.host= host;
this.user= user;
this.psw= psw;
serverA = new DefaultAsteriskServer(host, user, psw);
serverA.initialize();
mc = serverA.getManagerConnection();
}
ManagerConnection getManagerConnection() {
return serverA.getManagerConnection();
}
void addAsteriskServerListener(EventoAsterisk eventi) {
this.eventi = eventi;
serverA.addAsteriskServerListener(eventi);
}
void removeAsteriskServerListener(EventoAsterisk eventi) {
Log.info("ManagerAsterisk.removeAsteriskServerListener -
eventi :" + eventi);
serverA.removeAsteriskServerListener(eventi);
}
@Override
public void run() {
try {
while (true) {
Log.info("ManagerAsterisk.run - state (pre sleep) :" +
mc.getState().name() + " - " + mc.getState());
Thread.sleep(20 * 1000);
ManagerConnectionState stato = mc.getState();
Log.info("ManagerAsterisk.run - state :" +
mc.getState().name() + " - " + mc.getState());
if (!stato.equals(ManagerConnectionState.INITIAL) &&
!stato.equals(ManagerConnectionState.CONNECTING) &&
!stato.equals(ManagerConnectionState.CONNECTED)) {
Log.info("ManagerAsterisk.run - reacreate :" + stato);
serverA = new DefaultAsteriskServer(host, user, psw);
mc = serverA.getManagerConnection();
mc.addEventListener(new ConnessioneAsterisk());
serverA.addAsteriskServerListener(eventi);
stato = mc.getState();
Log.info("ManagerAsterisk.run - reacreated :" +
stato);
}
}
} catch (InterruptedException ex) {
Log.error("ManagerAsterisk.run" + ex, ex);
}
}
}
Il 12/11/2015 10.50, Zoumana TRAORE ha scritto:
Hi Alessio,
You probably need to share a part of the code so we can help.
I assume you did not maintain some how you AMI Connection.
Here is how i did it using PingThread provided by the AJ library
@Autowired
private PingThread pingThread;
/**
* <p>
* Connect to Asterisk Server via Live API
* </p>
* @return
*/
public void connect(){
asteriskServer = new DefaultAsteriskServer(asteriskLiveHost,
asteriskUsername, asteriskPassword);
asteriskServer.initialize();
pingThread.addConnection(asteriskServer.getManagerConnection());
}
And you fire the PingThread for instance at your app boot-up
if(pingThread != null && !pingThread.isAlive()){
pingThread.start();
}
Regards,
*---
*
*Zoumana TRAORE*
2015-11-12 10:28 GMT+01:00 Yves <yves...@gmx.de <mailto:yves...@gmx.de>>:
Hi Alessio,
as my glassbowl is currently under repair, I cannot guess your
source code.... so why not append it to your next eMail so that
we can have a look at it?
regards,
yves
Am 12.11.2015 um 09:11 schrieb Alessio Turini:
Dear,
I've a problem with the class DefaultAsteriskServer and the
connection with the Asterisk (V. 11.19.0), i'll try to explain
below (and sorry for my english)
I develop a program that links inbound call with a couple of
events, I use the class DefaultAsteriskServer and the listener
addAsteriskServerListener(MyClass).
MyClass checks every call and makes different operation based on
type of call.
The program is ok but after 10/20 hours goes to Hollywood, this
means that the listener not link events.
The class DefaultAsteriskServer is declared in a static object
that wrap it.
I would to ask, there is a timeout of connection between
Asterisk and DefaultAsteriskServer , can i check the connection
between the two actor?
I tried to check the state of ManagerConnection (get by
getManagerConnection() on DefaultAsteriskServer ) but the result
is always connected and not help me to restablished a connection.
Thanks in advance, Alessio
--
*Dott. Alessio Turini*
IT Dept - Credires
Via Don Luigi Sturzo 4, Pontedera, Pisa, Italy
+39 0587 467716 <tel:%2B39%200587%20467716> - +39 3457427943
<tel:%2B39%203457427943> - a.tur...@credires.it
<mailto:a.tur...@credires.it>
Le informazioni contenute in questo messaggio di posta
elettronica e/o nel/i file/s allegato/i, sono da considerarsi
strettamente riservate. Il loro utilizzo è consentito
esclusivamente al destinatario del messaggio, per le finalità
indicate nel messaggio stesso. Qualora riceveste questo
messaggio senza esserne il destinatario, Vi preghiamo
cortesemente di darcene notizia via e-mail all'indirizzo
i...@credires.it o telefonicamente allo +390587467700
<tel:%2B390587467700> e procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema; costituisce
comportamento contrario ai principi dettati dal Dlgs 196/2003 il
trattenere il messaggio stesso, divulgarlo anche in parte,
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per
finalità, diverse.
This message and any attachments are solely for the intended
recipient and may contain confidential or privileged
information. Its use is allowed only to the intended recipient,
for the purpose indicated in the message itself. If you are not
the intended recipient, please notify us by email to
i...@credires.it or by phone to +390587467700
<tel:%2B390587467700> and permanently delete this message and
any attachments in your system. Keeping, disclosure also in
part, distribution to other recipients, copying of the
information included in this message and any attachments or
using this information for different purposes is prohibited as
per regulation Dlgs 196/2003.
------------------------------------------------------------------------------
_______________________________________________
Asterisk-java-users mailing list
Asterisk-java-users@lists.sourceforge.net
<mailto:Asterisk-java-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/asterisk-java-users
------------------------------------------------------------------------
Avast logo <https://www.avast.com/antivirus>
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
www.avast.com <https://www.avast.com/antivirus>
------------------------------------------------------------------------------
_______________________________________________
Asterisk-java-users mailing list
Asterisk-java-users@lists.sourceforge.net
<mailto:Asterisk-java-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/asterisk-java-users
------------------------------------------------------------------------------
_______________________________________________
Asterisk-java-users mailing list
Asterisk-java-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/asterisk-java-users
--
*Dott. Alessio Turini*
IT Dept - Credires
Via Don Luigi Sturzo 4, Pontedera, Pisa, Italy
+39 0587 467716 - +39 3457427943 - a.tur...@credires.it
Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i, sono da considerarsi strettamente riservate.
Il loro utilizzo è consentito esclusivamente al destinatario del
messaggio, per le finalità indicate nel messaggio stesso. Qualora
riceveste questo messaggio senza esserne il destinatario, Vi preghiamo
cortesemente di darcene notizia via e-mail all'indirizzo
i...@credires.it o telefonicamente allo +390587467700 e procedere alla
distruzione del messaggio stesso, cancellandolo dal Vostro sistema;
costituisce comportamento contrario ai principi dettati dal Dlgs
196/2003 il trattenere il messaggio stesso, divulgarlo anche in parte,
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità,
diverse.
This message and any attachments are solely for the intended recipient
and may contain confidential or privileged information. Its use is
allowed only to the intended recipient, for the purpose indicated in
the message itself. If you are not the intended recipient, please
notify us by email to i...@credires.it or by phone to +390587467700
and permanently delete this message and any attachments in your
system. Keeping, disclosure also in part, distribution to other
recipients, copying of the information included in this message and
any attachments or using this information for different purposes is
prohibited as per regulation Dlgs 196/2003.
------------------------------------------------------------------------------
_______________________________________________
Asterisk-java-users mailing list
Asterisk-java-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/asterisk-java-users
---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
------------------------------------------------------------------------------
_______________________________________________
Asterisk-java-users mailing list
Asterisk-java-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/asterisk-java-users