private void send(final Object message) { final JainMgcpResponseEvent response = (JainMgcpResponseEvent) message; provider.sendMgcpEvents(new JainMgcpEvent[] { response }); }
mgcpProvider.addJainMgcpListener(this); } catch (Exception e) { throw new MsControlException(e.getMessage());
public void shutdown() { if (scheduler != null) { scheduler.shutdownNow(); } scheduler = null; if (mgcpProvider != null) { try { mgcpProvider.getJainMgcpStack().deleteProvider(mgcpProvider); } catch (DeleteProviderException e) { // TODO Auto-generated catch block e.printStackTrace(); } mgcpProvider = null; mgcpStack = null; } factory = null; }
private void powerOff(final Object message) { // Clean up the JAIN MGCP provider. try { provider.removeJainMgcpListener(this); stack.deleteProvider(provider); } catch (final DeleteProviderException exception) { logger.error(exception, "Could not clean up the JAIN MGCP provider."); } // Make sure we don't leave anything behind. name = null; localIp = null; localPort = 0; remoteIp = null; remotePort = 0; useNat = false; externalIp = null; timeout = 0; provider = null; stack = null; agent = null; domain = null; responseListeners.clear(); responseListeners = null; requestIdPool = null; sessionIdPool = null; transactionIdPool = null; }
mgcpProvider.addJainMgcpListener(this); } catch (Exception e) { throw new MsControlException(e.getMessage());
public void shutdown() { if (scheduler != null) { scheduler.shutdownNow(); } scheduler = null; if (mgcpProvider != null) { try { mgcpProvider.getJainMgcpStack().deleteProvider(mgcpProvider); } catch (DeleteProviderException e) { // TODO Auto-generated catch block e.printStackTrace(); } mgcpProvider = null; mgcpStack = null; } factory = null; }
@Override public synchronized void shutdown() { assertState(RUNNING); // Stop all the media sessions. final List<MgcpSession> sessions = new ArrayList<MgcpSession>(mediaSessions.values()); for(final MgcpSession session : sessions) { session.release(); } sessions.clear(); // Shutdown the MGCP stack. try { mgcpProvider.removeJainMgcpListener(this); mgcpStack.deleteProvider(mgcpProvider); } catch(final DeleteProviderException exception) { // There is nothing we can do except log the exception. LOGGER.error(exception); } callAgent = null; domainName = null; mgcpProvider = null; mgcpStack = null; requestListeners = null; requestListenersLock = null; responseListeners = null; requestId = null; transactionId = null; mediaSessionId = null; mediaSessions = null; setState(SHUTDOWN); } }
public void send(JainMgcpEvent evt) { this.mgcpProvider.sendMgcpEvents(new JainMgcpEvent[]{evt}); }
@Override public synchronized void start() throws RuntimeException { assertState(SHUTDOWN); // Initialize the call agent. callAgent = new NotifiedEntity("restcomm", localIp.getHostAddress(), localPort); // Initialize the media gateway domain name. domainName = new StringBuilder().append(remoteIp.getHostAddress()).append(":") .append(remotePort).toString(); // Start the MGCP stack. try { mgcpStack = new JainMgcpStackImpl(localIp, localPort); mgcpProvider = mgcpStack.createProvider(); mgcpProvider.addJainMgcpListener(this); } catch(final Exception exception) { throw new RuntimeException(exception); } requestListeners = new ArrayList<JainMgcpListener>(); requestListenersLock = new Object(); responseListeners = new HashMap<Integer, JainMgcpListener>(); requestId = new RangeCounter(1, Integer.MAX_VALUE); transactionId = new RangeCounter(1, Integer.MAX_VALUE); mediaSessionId = new RangeCounter(1, Integer.MAX_VALUE); mediaSessions = new HashMap<Integer, MgcpSession>(); setState(RUNNING); }
public void send(JainMgcpEvent evt) { this.mgcpProvider.sendMgcpEvents(new JainMgcpEvent[]{evt}); }
private void powerOn(final Object message) { final PowerOnMediaGateway request = (PowerOnMediaGateway) message; name = request.getName(); localIp = request.getLocalIp(); localPort = request.getLocalPort(); remoteIp = request.getRemoteIp(); remotePort = request.getRemotePort(); useNat = request.useNat(); externalIp = request.getExternalIp(); timeout = request.getTimeout(); stack = request.getStack(); provider = request.getProvider(); //stack = new JainMgcpStackImpl(localIp, localPort); try { //provider = stack.createProvider(); provider.addJainMgcpListener(this); } catch (final TooManyListenersException exception) { //} catch (final CreateProviderException exception) { logger.error(exception, "Could not create a JAIN MGCP provider."); } agent = new NotifiedEntity("restcomm", localIp.getHostAddress(), localPort); domain = new StringBuilder().append(remoteIp.getHostAddress()).append(":").append(remotePort).toString(); notificationListeners.clear(); responseListeners.clear(); requestIdPool = new RevolvingCounter(1, Long.MAX_VALUE); sessionIdPool = new RevolvingCounter(1, Long.MAX_VALUE); transactionIdPool = new RevolvingCounter(1, Long.MAX_VALUE); }
public void sendResponse(final JainMgcpResponseEvent response) throws MgcpServerException { assertState(RUNNING); try { LOGGER.debug("Sending mgcp response: \n"+response); mgcpProvider.sendMgcpEvents(new JainMgcpEvent[] { response }); } catch(final IllegalArgumentException exception) { LOGGER.error(exception); throw new MgcpServerException(exception); } }
private void send(final Object message, final ActorRef sender) { final JainMgcpCommandEvent command = (JainMgcpCommandEvent) message; final int transactionId = (int) transactionIdPool.get(); command.setTransactionHandle(transactionId); responseListeners.put(transactionId, sender); if (NotificationRequest.class.equals(command.getClass())) { final NotificationRequest request = (NotificationRequest) command; final String id = Long.toString(requestIdPool.get()); request.getRequestIdentifier().setRequestIdentifier(id); notificationListeners.put(id, sender); } provider.sendMgcpEvents(new JainMgcpEvent[] { command }); }
public void sendCommand(final JainMgcpCommandEvent command, final JainMgcpListener listener) throws MgcpServerException { assertState(RUNNING); // Register the listener to listen for a response to the command being sent. final int id = (int)transactionId.getAndIncrement(); command.setTransactionHandle(id); responseListeners.put(id, listener); // Try to send the command. try { LOGGER.debug("Sending mgcp command: \n"+command); mgcpProvider.sendMgcpEvents(new JainMgcpEvent[] { command }); } catch(final IllegalArgumentException exception) { // Make sure we don't start a memory leak. responseListeners.remove(id); // Log and re-throw the exception. LOGGER.error(exception); throw new MgcpServerException(exception); } }