com.voxeo.tropo.actions.ConferenceAction Maven / Gradle / Ivy
package com.voxeo.tropo.actions;
import static com.voxeo.tropo.Key.EVENT;
import static com.voxeo.tropo.Key.NEXT;
import support.ActionSupportHandler;
import com.voxeo.tropo.Key;
import com.voxeo.tropo.annotations.RequiredKeys;
import com.voxeo.tropo.annotations.ValidKeys;
/**
*
* Its allows multiple lines in separate sessions to be conferenced together so
* that the parties on each line can talk to each other simultaneously. This is
* a voice channel only feature.
*
*
* Any conference ID you use in production will be shared among all your
* production applications; likewise any development app conference IDs are
* shared among all your development apps. These IDs are not shared with other
* accounts, so if you have conference ID 1234, you won't conflict if another
* Tropo user is also using 1234.
*
*
* Each conference can hold up to 100 people at one time.
*
*/
@ValidKeys(keys={"name","allowSignals","mute","on","playTones","terminator","id","send_tones","exit_tone","interdigitTimeout","joinPrompt","leavePrompt","required","promptLogSecurity"})
@RequiredKeys(keys={"id","name"})
public class ConferenceAction extends JsonAction {
private ActionSupportHandler onActionSupportHandler = new ActionSupportHandler(NestedOnAction.class);
public ConferenceAction() {
super();
setName("conference");
}
public ConferenceAction(Key... keys) {
super(keys);
setName("conference");
}
public NestedOnAction on(Key... keys) {
return onActionSupportHandler.build(this, keys);
}
public NestedOnAction on(String event, String next) {
return on(EVENT(event), NEXT(next));
}
}