package org.mobicents.mgcp.stack.test.restartinprogress;
import jain.protocol.ip.mgcp.JainMgcpCommandEvent;
import jain.protocol.ip.mgcp.JainMgcpEvent;
import jain.protocol.ip.mgcp.JainMgcpResponseEvent;
import jain.protocol.ip.mgcp.message.Constants;
import jain.protocol.ip.mgcp.message.RestartInProgress;
import jain.protocol.ip.mgcp.message.RestartInProgressResponse;
import jain.protocol.ip.mgcp.message.parms.EndpointIdentifier;
import jain.protocol.ip.mgcp.message.parms.NotifiedEntity;
import jain.protocol.ip.mgcp.message.parms.RestartMethod;
import org.apache.log4j.Logger;
import org.mobicents.mgcp.stack.JainMgcpExtendedListener;
import org.mobicents.mgcp.stack.JainMgcpStackProviderImpl;
import org.mobicents.mgcp.stack.test.auditendpoint.AuditEndpointTest;
public class MGW implements JainMgcpExtendedListener {
private static Logger logger = Logger.getLogger(MGW.class);
private boolean responseReceived = false;
int caPort = 0;
JainMgcpStackProviderImpl mgwProvider;
public MGW(JainMgcpStackProviderImpl mgwProvider, int caPort) {
this.mgwProvider = mgwProvider;
this.caPort = caPort;
}
public void sendRestartInProgress() {
try {
this.mgwProvider.addJainMgcpListener(this);
EndpointIdentifier endpointID = new EndpointIdentifier("media/trunk/Announcement/enp-1", "127.0.0.1:"
+ caPort);
RestartInProgress restartInProgress = new RestartInProgress(this, endpointID, RestartMethod.Graceful);
restartInProgress.setTransactionHandle(mgwProvider.getUniqueTransactionHandler());
mgwProvider.sendMgcpEvents(new JainMgcpEvent[] { restartInProgress });
logger.debug(" RestartInProgress command sent for TxId " + restartInProgress.getTransactionHandle());
} catch (Exception e) {
e.printStackTrace();
AuditEndpointTest.fail("Unexpected Exception");
}
}
public void checkState() {
RestartInProgressTest.assertTrue("Expect to Receive RSIP Response", responseReceived);
}
public void transactionEnded(int handle) {
logger.info("transactionEnded " + handle);
}
public void transactionRxTimedOut(JainMgcpCommandEvent command) {
logger.info("transactionRxTimedOut " + command);
}
public void transactionTxTimedOut(JainMgcpCommandEvent command) {
logger.info("transactionTxTimedOut " + command);
}
public void processMgcpCommandEvent(JainMgcpCommandEvent jainmgcpcommandevent) {
logger.info("processMgcpCommandEvent " + jainmgcpcommandevent);
}
public void processMgcpResponseEvent(JainMgcpResponseEvent jainmgcpresponseevent) {
logger.info("processMgcpResponseEvent " + jainmgcpresponseevent);
switch (jainmgcpresponseevent.getObjectIdentifier()) {
case Constants.RESP_RESTART_IN_PROGRESS:
RestartInProgressResponse response = (RestartInProgressResponse) jainmgcpresponseevent;
NotifiedEntity notifiedEntity = response.getNotifiedEntity();
RestartInProgressTest.assertNotNull(notifiedEntity);
RestartInProgressTest.assertEquals("127.0.0.1", notifiedEntity.getDomainName());
responseReceived = true;
break;
default:
logger.warn("This RESPONSE is unexpected " + jainmgcpresponseevent);
break;
}
}
}