/* * Copyright 2007 Sun Microsystems, Inc. * * This file is part of jVoiceBridge. * * jVoiceBridge is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation and distributed hereunder * to you. * * jVoiceBridge is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * Sun designates this particular file as subject to the "Classpath" * exception as provided by Sun in the License file that accompanied this * code. */ package com.sun.voip.server; import com.sun.voip.CallParticipant; import com.sun.voip.CallState; import com.sun.voip.Logger; import com.sun.voip.MediaInfo; import java.io.IOException; import java.util.*; import com.jcumulus.server.rtmfp.application.Publication; import com.sun.voip.server.*; import com.sun.voip.*; public class RtmfpCallAgent extends CallSetupAgent { private CallParticipant cp; private MemberReceiver memberReceiver; private MemberSender memberSender; private MediaInfo mixerMediaPreference; public static Map<String, Publication> publishHandlers = Collections.synchronizedMap( new HashMap<String, Publication>()); public static Map<String, MemberReceiver> playHandlers = Collections.synchronizedMap( new HashMap<String, MemberReceiver>()); public RtmfpCallAgent(CallHandler callHandler) { super(callHandler); cp = callHandler.getCallParticipant(); mixerMediaPreference = callHandler.getConferenceManager().getMediaInfo(); memberSender = callHandler.getMemberSender(); memberReceiver = callHandler.getMemberReceiver(); playHandlers.put(cp.getRtmfpRecieveStream(), memberReceiver); // we need later media arrives from flash callHandler.setEndpointAddress(null, (byte) (0), (byte)0, (byte)0); } public void initiateCall() throws IOException { try { setState(CallState.ESTABLISHED); } catch (Exception e) { Logger.println("Call " + cp + ": RtmfpCallAgent: initiateCall exception " + e); e.printStackTrace(); } } public String getSdp() { return null; } public void setRemoteMediaInfo(String sdp) { return; } public void terminateCall() { playHandlers.remove(cp.getRtmfpRecieveStream()); } }