[Asterisk-java-users] Sip Client Register/Unregister Handler
Brought to you by:
srt
|
From: Paata L. <paa...@gm...> - 2015-03-05 14:21:41
|
hello team,
I'm very newbie on this technologies.
I think this is great project.
I want to handle sip client register/unregister event.
Is there any example ho to do this. ?
I took HelloLiveEverything example and made some changes but nothing of
them help.
mu example looks like :
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import org.asteriskjava.live.AsteriskAgent;
import org.asteriskjava.live.AsteriskChannel;
import org.asteriskjava.live.AsteriskQueue;
import org.asteriskjava.live.AsteriskQueueEntry;
import org.asteriskjava.live.AsteriskQueueListener;
import org.asteriskjava.live.AsteriskQueueMember;
import org.asteriskjava.live.AsteriskServer;
import org.asteriskjava.live.AsteriskServerListener;
import org.asteriskjava.live.DefaultAsteriskServer;
import org.asteriskjava.live.ManagerCommunicationException;
import org.asteriskjava.live.MeetMeRoom;
import org.asteriskjava.live.MeetMeUser;
import org.asteriskjava.live.internal.AsteriskAgentImpl;
import org.asteriskjava.manager.ManagerConnection;
import org.asteriskjava.manager.ManagerConnectionFactory;
import org.asteriskjava.manager.ManagerEventListener;
import org.asteriskjava.manager.event.DialEvent;
import org.asteriskjava.manager.event.ManagerEvent;
public class HelloLiveEverything implements AsteriskServerListener,
PropertyChangeListener, ManagerEventListener, AsteriskQueueListener {
private AsteriskServer asteriskServer;
private ManagerConnection managerConnection;
private ManagerConnectionFactory factory;
public HelloLiveEverything() {
try {
asteriskServer = new DefaultAsteriskServer("192.168.1.28",
"manager", "pa55w0rd");
this.factory = new ManagerConnectionFactory("192.168.1.28",
"manager", "pa55w0rd");
this.managerConnection = factory.createManagerConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
public void run() throws ManagerCommunicationException {
// listen for new events
asteriskServer.addAsteriskServerListener(this);
managerConnection.addEventListener(this);
// add property change listeners to existing objects
for (AsteriskChannel asteriskChannel :
asteriskServer.getChannels()) {
// System.out.println(asteriskChannel);
asteriskChannel.addPropertyChangeListener(this);
}
for (AsteriskQueue asteriskQueue : asteriskServer.getQueues()) {
System.out.println("asteriskQueue = " +
asteriskQueue.getName());
for (AsteriskQueueEntry entry : asteriskQueue.getEntries()) {
System.out.println("entry = " + entry);
entry.addPropertyChangeListener(this);
}
for (AsteriskQueueMember member : asteriskQueue.getMembers()) {
//System.out.println("member = " + member);
member.addPropertyChangeListener(this);
}
}
for (MeetMeRoom meetMeRoom : asteriskServer.getMeetMeRooms()) {
// System.out.println(meetMeRoom);
for (MeetMeUser user : meetMeRoom.getUsers()) {
user.addPropertyChangeListener(this);
}
}
for (AsteriskAgent asteriskAgent : asteriskServer.getAgents()) {
asteriskAgent.addPropertyChangeListener(this);
}
}
@Override
public void onNewAsteriskChannel(AsteriskChannel channel) {
System.out.println(channel);
channel.addPropertyChangeListener(this);
}
@Override
public void onNewMeetMeUser(MeetMeUser user) {
System.out.println(user);
user.addPropertyChangeListener(this);
}
@Override
public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
System.out.println(propertyChangeEvent);
}
@Override
public void onNewAgent(AsteriskAgentImpl agent) {
System.out.println(agent);
agent.addPropertyChangeListener(this);
}
@Override
public void onNewQueueEntry(AsteriskQueueEntry entry) {
System.out.println(entry);
entry.addPropertyChangeListener(this);
}
@Override
public void onManagerEvent(ManagerEvent event) {
String event_name = event.getClass().getSimpleName();
System.out.println("11111111111111111111111111 . event_name = " +
event_name);
if (event_name.equals("DialEvent")) {
DialEvent e = (DialEvent) event;
System.out.println(e.getCallerIdNum());// caller number
System.out.println(e.getDestination());// Called number
// do something here
}
}
@Override
public void onEntryLeave(AsteriskQueueEntry arg0) {
System.out.println("1. onEntryLeave");
}
@Override
public void onEntryServiceLevelExceeded(AsteriskQueueEntry arg0) {
System.out.println("2. onEntryServiceLevelExceeded");
}
@Override
public void onMemberAdded(AsteriskQueueMember arg0) {
System.out.println("3. onMemberAdded");
}
@Override
public void onMemberRemoved(AsteriskQueueMember arg0) {
System.out.println("4. onMemberRemoved");
}
@Override
public void onMemberStateChange(AsteriskQueueMember arg0) {
System.out.println("5. onMemberStateChange");
}
@Override
public void onNewEntry(AsteriskQueueEntry arg0) {
System.out.println("6. onNewEntry");
}
public static void main(String[] args) throws Exception {
try {
HelloLiveEverything helloLiveEverything = new
HelloLiveEverything();
helloLiveEverything.run();
while (true) {
Thread.sleep(100);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
but when sip clients register or unregister i didn't get any event.
Thanks in advance.
Best regards,
Paata Lominadze.
|