Audio Mixer Demo - Init Script
/* Run as Sys.run("c:\\Home\\projects\\CGL-HPSEARCH\\Misc\\scripts\\avdemo.js"); */
/* Define Constants, defined in
cgl.globalmmcs.mediaserver.audiomixer.AudioMixerStrings
*/
ACTION = "Action";
IP = "IP";
PORT = "Port";
PUBLICATION_TOPIC = "PublicationTopic";
SUBSCRIPTION_TOPIC = "SubscriptionTopic";
STATUS = "Status";
OK = "Ok";
FAIL = "Fail";
REASON = "Raason";
FORMAT = "Format";
SESSION_ID= "SessionID";
REQUESTED_ACTION = "RequestedAction";
RESPONSE_TOPIC = "ResponseTopic";
RTP_EVENT_TOPIC = "RtpEventTopic";
CREATE_AUDIO_MIXER_SESSION = "CreateAudioMixerSession";
DELETE_AUDIO_MIXER_SESSION = "DeleteAudioMixerSession";
ADD_PARTICIPANT = "AddParticipant";
REMOVE_PARTICIPANT = "RemoveParticipant";
RESPONSE = "Response";
var av = new WSDL();
function createMixerSession(srvEP, pubTopic, ip, port, format, eventTopic) {
av.wsdl = avservice;
ssid = av.invoke("createAudioMixer");
p = new Props();
p.set(ACTION, "CreateAudioMixerSession");
p.set(PUBLICATION_TOPIC, 6000);
p.set(IP, "156.56.104.170");
p.set(PORT, 3045);
p.set(RTP_EVENT_TOPIC, "1000");
p.set(FORMAT, "default");
p.set(SESSION_ID, ssid);
respXML = av.invoke("ExecuteAction", ssid, p.XMLize());
if(OK.equals((new Props(respXML)).get(STATUS))) {
return ssid;
} else {
return "-1";
}
}
function add(ssid, streamIN, streamOUT, format) {
controlProps = new Props();
controlProps.set(SESSION_ID, ssid);
controlProps.set(SUBSCRIPTION_TOPIC, streamIN);
controlProps.set(PUBLICATION_TOPIC, streamOUT);
controlProps.set(FORMAT, format);
controlProps.set(ACTION, ADD_PARTICIPANT);
respXML = av.invoke("ExecuteAction", ssid, controlProps.XMLize());
return (new Props(respXML)).get(STATUS);
}
function remove(ssid, stream) {
controlProps = new Props();
controlProps.set(SESSION_ID, ssid);
controlProps.set(SUBSCRIPTION_TOPIC, stream);
controlProps.set(ACTION, REMOVE_PARTICIPANT);
respXML = av.invoke("ExecuteAction", ssid, controlProps.XMLize());
return (new Props(respXML)).get(STATUS);
}
function deleteMixer(ssid) {
controlProps = new Props();
controlProps.set(SESSION_ID, ssid);
controlProps.set(ACTION, DELETE_AUDIO_MIXER_SESSION);
respXML = av.invoke("ExecuteAction", ssid, controlProps.XMLize());
return (new Props(respXML)).get(STATUS);
}