/**
* Copyright 2010 Voxeo Corporation Licensed under the Apache License, Version
* 2.0 (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
* or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package com.voxeo.moho.remote.sample;
import java.net.URI;
import com.voxeo.moho.Call;
import com.voxeo.moho.IncomingCall;
import com.voxeo.moho.State;
import com.voxeo.moho.event.CallCompleteEvent;
import com.voxeo.moho.event.Observer;
import com.voxeo.moho.event.OutputCompleteEvent;
import com.voxeo.moho.media.Output;
import com.voxeo.moho.media.output.AudibleResource;
import com.voxeo.moho.media.output.AudioURIResource;
import com.voxeo.moho.media.output.OutputCommand;
import com.voxeo.moho.media.output.TextToSpeechResource;
import com.voxeo.moho.remote.MohoRemote;
import com.voxeo.moho.remote.impl.MohoRemoteImpl;
public class PlayMultiple implements Observer {
public static void main(String[] args) throws Exception {
MohoRemote mohoRemote = new MohoRemoteImpl();
mohoRemote.addObserver(new PlayMultiple());
mohoRemote.connect("usera", "1", "", "voxeo", "localhost", "localhost");
try {
Thread.sleep(100 * 60 * 1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
@State
public void handleInvite(final IncomingCall call) {
call.answer();
call.addObserver(this);
try {
OutputCommand oc = new OutputCommand(new AudibleResource[] {new TextToSpeechResource("hello, this is first sentence"),
new TextToSpeechResource("hi, this is the second test for the text to speech resource test1 test2 test3 test4 test5")});
// OutputCommand oc = new OutputCommand(new AudibleResource[] {new TextToSpeechResource("hello, this is first sentence"),
// new AudioURIResource(URI.create("ftp://public:public@172.21.0.83/jsr309test/audio/jsr309-TCK-media/Numbers_1-5_40s.au"))});
Output<Call> output = call.output(oc);
Thread.sleep(2000);
output.pause();
Thread.sleep(2000);
output.resume();
Thread.sleep(2000);
output.pause();
Thread.sleep(2000);
output.resume();
Thread.sleep(5000);
output.stop();
output.get();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@State
public void handleOutputComplete(final OutputCompleteEvent<Call> event) {
System.out.println(event.getCause());
}
@State
public void handleCallComplete(final CallCompleteEvent event) {
System.out.print(event.getCause());
}
}