private void send(final Object message) { final Class<?> klass = message.getClass(); final String parameters = message.toString(); MgcpEvent event = null; if (Play.class.equals(klass)) { event = AUMgcpEvent.aupa.withParm(parameters); } else if (PlayCollect.class.equals(klass)) { event = AUMgcpEvent.aupc.withParm(parameters); } else if (PlayRecord.class.equals(klass)) { event = AUMgcpEvent.aupr.withParm(parameters); } sendRequest(new EventName(PACKAGE_NAME, event), REQUESTED_EVENTS); }
public EventName generateMgcpEvent(String params, ConnectionIdentifier connId) { if (this.isOnEndpoint) { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params)); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName)); } } else { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params), connId); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName), connId); } } }
public EventName generateMgcpEvent(String params, ConnectionIdentifier connId) { if (this.isOnEndpoint) { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params)); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName)); } } else { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params), connId); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName), connId); } } }
public EventName generateMgcpEvent(String params, ConnectionIdentifier connId) { if (this.isOnEndpoint) { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params)); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName)); } } else { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params), connId); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName), connId); } } }
public EventName generateMgcpEvent(String params, ConnectionIdentifier connId) { if (this.isOnEndpoint) { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params)); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName)); } } else { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params), connId); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName), connId); } } }
private void sendAsr(final AsrSignal message) { MgcpEvent event = AsrSignal.REQUEST_ASR.withParm(message.toString()); sendRequest(new EventName(PACKAGE_NAME, event), REQUESTED_EVENTS); }
ArrayList<RequestedEvent> eventList = new ArrayList(); signalList.add(new EventName(PackageAU.Name, PackageAU.pr.withParm(params))); eventList.add(new RequestedEvent(new EventName(PackageAU.Name, MgcpEvent.oc), actions)); eventList.add(new RequestedEvent(new EventName(PackageAU.Name, MgcpEvent.of), actions));
public void stop() { final List<State> possibleStates = new ArrayList<State>(); possibleStates.add(PLAY); possibleStates.add(PLAY_COLLECT); possibleStates.add(PLAY_RECORD); possibleStates.add(IDLE); assertState(possibleStates); // Create the signal. final EventName[] signal = new EventName[1]; signal[0] = new EventName(PACKAGE_NAME, AUMgcpEvent.aues); // Create notification request. requestId = server.generateRequestIdentifier(); final NotificationRequest request = new NotificationRequest(this, endpointId, requestId); request.setSignalRequests(signal); request.setNotifiedEntity(server.getCallAgent()); request.setRequestedEvents(REQUESTED_EVENTS); // Send the request. server.sendCommand(request, this); setState(STOP); }
private void notify(final Object message, final ActorRef sender) { final ActorRef self = self(); final NotificationRequest request = (NotificationRequest) message; final MgcpEvent event = AUMgcpEvent.auoc.withParm("rc=100 dc=1"); final EventName[] events = {new EventName(AUPackage.AU, event)}; final Notify notify = new Notify(this, request.getEndpointIdentifier(), request.getRequestIdentifier(), events); notify.setTransactionHandle((int) transactionIdPool.get()); System.out.println(notify.toString()); sender.tell(notify, self); }
protected void notify (final Object message, final ActorRef sender) { final ActorRef self = self(); final NotificationRequest request = (NotificationRequest) message; MgcpEvent event = null; if (request.getSignalRequests()[0].getEventIdentifier().getName().equalsIgnoreCase("es") || request.getSignalRequests()[0].getEventIdentifier().getName().equalsIgnoreCase("pr")) { //Looks like this is either an RQNT AU/ES or //recording max length reached and we got the original recording RQNT event = AUMgcpEvent.auoc.withParm("AU/pr ri=file://" + recordingFile.toPath() + " rc=100 dc=1"); } else { event = AUMgcpEvent.auoc.withParm("rc=100 dc=1"); } final EventName[] events = {new EventName(AUPackage.AU, event)}; final Notify notify = new Notify(this, request.getEndpointIdentifier(), request.getRequestIdentifier(), events); notify.setTransactionHandle((int) transactionIdPool.get()); System.out.println(notify.toString()); sender.tell(notify, self); }
@Override protected void notify(Object message, ActorRef sender) { final ActorRef self = self(); final NotificationRequest request = (NotificationRequest) message; MgcpEvent event = null; if (request.getSignalRequests()[0].getEventIdentifier().getName().equalsIgnoreCase("es") || request.getSignalRequests()[0].getEventIdentifier().getName().equalsIgnoreCase("pr")) { //Looks like this is either an RQNT AU/ES or //recording max length reached and we got the original recording RQNT event = AUMgcpEvent.auoc.withParm("AU/pr ri=file://" + recordingFile.toPath() + " rc=100 dc=1"); } else { event = AUMgcpEvent.auoc.withParm("rc=100 dc=1"); if(!request.getSignalRequests()[0].getEventIdentifier().getParms().contains("ringing.wav")) { try { Thread.sleep(2000); } catch (Exception e){ logger.error(e.toString()); } } } final EventName[] events = {new EventName(AUPackage.AU, event)}; final Notify notify = new Notify(this, request.getEndpointIdentifier(), request.getRequestIdentifier(), events); notify.setTransactionHandle((int) transactionIdPool.get()); System.out.println(notify.toString()); sender.tell(notify, self); } }
public synchronized void play(final List<URI> announcements, final int iterations) { assertState(IDLE); // Create the signal parameters. final AdvancedAudioParametersBuilder builder = new AdvancedAudioParametersBuilder(); for(final URI announcement : announcements) { LOGGER.debug("Announcement URI: "+announcement); builder.addAnnouncement(announcement); } builder.setIterations(iterations); final String parameters = builder.build(); // Create the signal. final EventName[] signal = new EventName[1]; signal[0] = new EventName(PACKAGE_NAME, AUMgcpEvent.aupa.withParm(parameters)); // Create notification request. requestId = server.generateRequestIdentifier(); final NotificationRequest request = new NotificationRequest(this, endpointId, requestId); request.setSignalRequests(signal); request.setNotifiedEntity(server.getCallAgent()); request.setRequestedEvents(REQUESTED_EVENTS); // Send the request. server.sendCommand(request, this); setState(PLAY); }
private void stop(Object message) { final EventName[] signal = new EventName[1]; StopEndpoint se = (StopEndpoint) message; String parameters = ""; if (se.getEvent() != null) { parameters = "sg=" + se.getEvent().getName(); } else { if (logger.isDebugEnabled()) { logger.debug("StopEndpoint event is null"); } } signal[0] = new EventName(PACKAGE_NAME, AUMgcpEvent.aues.withParm(parameters)); final RequestIdentifier requestId = new RequestIdentifier(DEFAULT_REQUEST_ID); final NotificationRequest request = new NotificationRequest(self(), id, requestId); request.setSignalRequests(signal); request.setNotifiedEntity(agent); //Ask RMS to notify for PlayRecording and PlayAnnouncement Signal. //This way IVR endpoint state at RMS side, will be ready for any subsequent request if (se.getEvent().getName().equalsIgnoreCase("pr") || se.getEvent().getName().equalsIgnoreCase("pa") ) { request.setRequestedEvents(REQUESTED_EVENTS); } gateway.tell(request, self()); }
public synchronized void playRecord(final List<URI> prompts, final URI recordId, final long postSpeechTimer, final long recordingLength, final String patterns) { assertState(IDLE); // Create the signal parameters. final AdvancedAudioParametersBuilder builder = new AdvancedAudioParametersBuilder(); for(final URI prompt : prompts) { LOGGER.debug("Prompt added: "+prompt.toString()); builder.addInitialPrompt(prompt); } builder.setClearDigitBuffer(true); builder.setRecordId(recordId); builder.setPostSpeechTimer(postSpeechTimer); builder.setRecordingLength(recordingLength); builder.setDigitPattern(patterns); final String parameters = builder.build(); // Create the signal. final EventName[] signal = new EventName[1]; signal[0] = new EventName(PACKAGE_NAME, AUMgcpEvent.aupr.withParm(parameters)); // Create notification request. requestId = server.generateRequestIdentifier(); final NotificationRequest request = new NotificationRequest(this, endpointId, requestId); request.setSignalRequests(signal); request.setNotifiedEntity(server.getCallAgent()); request.setRequestedEvents(REQUESTED_EVENTS); // Send the request. server.sendCommand(request, this); setState(PLAY_RECORD); }
private void cleanBuffer() { //generate request identifier and transaction ID RequestIdentifier reqID = parent.nextRequestID(); int txID = parent.getMediaSession().getDriver().getNextTxID(); //constructs request NotificationRequest req = new NotificationRequest(this, parent.getEndpoint().getIdentifier(), reqID); //new EventName(auPackageName, MgcpEvent.oc, connId) req.setSignalRequests(new EventName[]{new EventName(PackageAU.Name, PackageAU.es.withParm("cb=true"))}); req.setTransactionHandle(txID); DriverImpl driver=parent.getMediaSession().getDriver(); req.setNotifiedEntity(driver.getCallAgent()); driver.attach(txID, flushHandler); driver.send(req); }
private void cleanBuffer() { //generate request identifier and transaction ID RequestIdentifier reqID = parent.nextRequestID(); int txID = parent.getMediaSession().getDriver().getNextTxID(); //constructs request NotificationRequest req = new NotificationRequest(this, parent.getEndpoint().getIdentifier(), reqID); //new EventName(auPackageName, MgcpEvent.oc, connId) req.setSignalRequests(new EventName[]{new EventName(PackageAU.Name, PackageAU.es.withParm("cb=true"))}); req.setTransactionHandle(txID); DriverImpl driver=parent.getMediaSession().getDriver(); req.setNotifiedEntity(driver.getCallAgent()); driver.attach(txID, flushHandler); driver.send(req); }
private void stopCollection() { //generate request identifier and transaction ID RequestIdentifier reqID = parent.nextRequestID(); int txID = parent.getMediaSession().getDriver().getNextTxID(); //constructs request NotificationRequest req = new NotificationRequest(this, parent.getEndpoint().getIdentifier(), reqID); //new EventName(auPackageName, MgcpEvent.oc, connId) req.setSignalRequests(new EventName[]{new EventName(PackageAU.Name, PackageAU.es)}); req.setTransactionHandle(txID); DriverImpl driver=parent.getMediaSession().getDriver(); req.setNotifiedEntity(driver.getCallAgent()); driver.attach(txID, stopHandler); this.parent.waitForStop(); driver.send(req); }
private void stopCollection() { //generate request identifier and transaction ID RequestIdentifier reqID = parent.nextRequestID(); int txID = parent.getMediaSession().getDriver().getNextTxID(); //constructs request NotificationRequest req = new NotificationRequest(this, parent.getEndpoint().getIdentifier(), reqID); //new EventName(auPackageName, MgcpEvent.oc, connId) req.setSignalRequests(new EventName[]{new EventName(PackageAU.Name, PackageAU.es)}); req.setTransactionHandle(txID); DriverImpl driver=parent.getMediaSession().getDriver(); req.setNotifiedEntity(driver.getCallAgent()); driver.attach(txID, stopHandler); this.parent.waitForStop(); driver.send(req); }
public synchronized void playCollect(final List<URI> prompts, final int maxNumberOfDigits, final int minNumberOfDigits, final long firstDigitTimer, final long interDigitTimer, final String patterns) { assertState(IDLE); //Issue 106: http://code.google.com/p/restcomm/issues/detail?id=106 digits = null; // Create the signal parameters. final AdvancedAudioParametersBuilder builder = new AdvancedAudioParametersBuilder(); for(final URI prompt : prompts) { builder.addInitialPrompt(prompt); } builder.setClearDigitBuffer(true); builder.setMaxNumberOfDigits(maxNumberOfDigits); builder.setMinNumberOfDigits(minNumberOfDigits); builder.setFirstDigitTimer(firstDigitTimer); builder.setInterDigitTimer(interDigitTimer); builder.setDigitPattern(patterns); final String parameters = builder.build(); // Create the signal. final EventName[] signal = new EventName[1]; signal[0] = new EventName(PACKAGE_NAME, AUMgcpEvent.aupc.withParm(parameters)); // Create notification request. requestId = server.generateRequestIdentifier(); final NotificationRequest request = new NotificationRequest(this, endpointId, requestId); request.setSignalRequests(signal); request.setNotifiedEntity(server.getCallAgent()); request.setRequestedEvents(REQUESTED_EVENTS); // Send the request. server.sendCommand(request, this); setState(PLAY_COLLECT); }