package org.mobicents.media.server.ctrl.mgcp.evt.tone; import jain.protocol.ip.mgcp.message.parms.RequestedAction; import org.mobicents.media.server.ctrl.mgcp.evt.EventDetector; import org.mobicents.media.server.spi.events.NotifyEvent; import org.mobicents.media.server.spi.resource.FrequencyBean; /** * * @author amit.bhayani * */ public class MultiFreqToneDetector extends EventDetector { public MultiFreqToneDetector(String pkgName, String eventName, String resourceName, int eventID, String params, RequestedAction[] actions) { super(pkgName, eventName, resourceName, eventID, params, actions); } @Override public void performAction(NotifyEvent event, RequestedAction action) { if (!event.getSource().getName().matches(this.getResourceName())) { return; } if (event.getEventID() != this.getEventID()) { return; } // @TODO implement action selector getRequest().sendNotify(this.getEventName()); } @Override public void start() { FrequencyBean freqBean = this.decodeParams(); ((org.mobicents.media.server.spi.resource.MultiFreqToneDetector) this.component).setFreqBean(freqBean); super.start(); } private FrequencyBean decodeParams() { String[] freqData = this.params.split("-"); int lowFreq = Integer.parseInt(freqData[0]); int highFreq = Integer.parseInt(freqData[1]); int duration = Integer.parseInt(freqData[2]); FrequencyBean freqbean = new FrequencyBean(lowFreq, highFreq, duration); return freqbean; } }