package org.mobicents.servlet.sip.conference.server.media; import java.util.HashMap; import org.mobicents.mscontrol.MsPeer; import org.mobicents.mscontrol.MsPeerFactory; import org.mobicents.mscontrol.MsProvider; public class ConferenceCenter { private HashMap<String, Conference> conferences = new HashMap<String, Conference> (); private MsProvider provider; public ConferenceCenter() { getProvider(); } public MsProvider getProvider() { if(provider == null) { MsPeer peer = null; try { peer = MsPeerFactory.getPeer("org.mobicents.mscontrol.impl.MsPeerImpl"); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } provider = peer.getProvider(); } return provider; } public synchronized Conference getConference(String key) { Conference conf = conferences.get(key); if(conf == null) { conf = new Conference(provider, key); conferences.put(key, conf); return conf; } else { return conf; } } public synchronized void removeConference(String key) { conferences.remove(key); } public String[] getConferences() { return conferences.keySet().toArray(new String[]{}); } private static ConferenceCenter conferenceCenter; public synchronized static ConferenceCenter getInstance() { if(conferenceCenter == null) { conferenceCenter = new ConferenceCenter(); } return conferenceCenter; } }