private Endpoint lookupAny(boolean exclusive) throws ResourceUnavailableException { for (int i = 0; i < queue.size(); i++) { if (queue.get(i).getState() == EndpointState.READY) { Endpoint endpoint = queue.remove(i); queue.add(endpoint); return endpoint; } } throw new ResourceUnavailableException(); } }
public static synchronized Collection findAll(String name) throws NamingException, ResourceUnavailableException { try { InitialContext ic = new InitialContext(); ArrayList endpoints = new ArrayList(); Context ctx = (Context) ic.lookup(name); NamingEnumeration list = ctx.listBindings(""); while (list.hasMore()) { Binding binding = (Binding) list.next(); String bindingName = binding.getName(); Endpoint endpoint = (Endpoint) binding.getObject(); endpoints.add(endpoint); } return endpoints; } catch (ClassCastException cce) { throw new ResourceUnavailableException(cce); } }
/** * (Non Java-doc.) * * @see org.mobicents.media.server.spi.Endpoint#start() */ public void start() throws ResourceUnavailableException { //do checks before start if (scheduler == null) { throw new ResourceUnavailableException("Scheduler is not available"); } //create connections subsystem try { if(this.endpointType==ENDPOINT_LOCAL_TO_REMOTE) connections = new LocalToRemoteConnections(this, localConnections, rtpConnections); else if(this.endpointType==ENDPOINT_REMOTE_TO_REMOTE) connections = new RemoteToRemoteConnections(this, localConnections, rtpConnections); else connections = new Connections(this, localConnections, rtpConnections,false); } catch (Exception e) { throw new ResourceUnavailableException(e); } }
/** * (Non Java-doc.) * * @see org.mobicents.media.server.spi.Endpoint#createConnection(org.mobicents.media.server.spi.ConnectionMode); */ public Connection createConnection(ConnectionType type,boolean isLocal) throws TooManyConnectionsException, ResourceUnavailableException { BaseConnection connection = (BaseConnection) connections.createConnection(type); connection.setIsLocal(isLocal); try { connection.bind(); } catch (Exception e) { e.printStackTrace(); throw new ResourceUnavailableException(e.getMessage()); } return connection; }
track = new AMRTrackImpl(targetURL); } else { throw new ResourceUnavailableException("Unknown extension: " + passedURI); throw new ResourceUnavailableException(e);
throw new ResourceUnavailableException("Endpoint unknown or in use[" + name + "]");
/** * Creates connection with specified type. * * @param type the type of connection * @return connection instance. */ public Connection createConnection(ConnectionType type) throws ResourceUnavailableException { BaseConnection currConnection=null; switch (type) { case LOCAL: currConnection=localConnections.poll(); if(currConnection!=null) activeConnections.put(currConnection.getId(),currConnection); return currConnection; case RTP: currConnection=rtpConnections.poll(); if(currConnection!=null) activeConnections.put(currConnection.getId(),currConnection); return currConnection; default: throw new ResourceUnavailableException("Unknown connection type"); } }
@Override public void start() throws ResourceUnavailableException { //construct media player mediaPlayer = new MediaPlayerImpl("", getScheduler()); //construct audio part audioMixer = new AudioMixer(getScheduler()); try { MediaSink sink = audioMixer.newInput(); MediaSource source=mediaPlayer.getMediaSource(MediaType.AUDIO); PipeImpl p = new PipeImpl(); p.connect(sink); p.connect(source); components.add(source); mediaPlayer.setDsp(getDspFactory().newProcessor(),MediaType.AUDIO); sink.start(); } catch (Exception e) { throw new ResourceUnavailableException(e); } super.start(); }