private ConferenceUser GetUser(FSEvent evt) { String member_id = evt.get_header("Member-ID"); ConferenceUser user = (from u in users where u.id == member_id select u).FirstOrDefault(); return(user); }
public static String StateConvert(ConferenceUser.USER_STATE state) { String ret = ""; if (ConferenceUser.StateTest(state,ConferenceUser.USER_STATE.DEAF)) ret += "D "; if (ConferenceUser.StateTest(state, ConferenceUser.USER_STATE.FLOOR)) ret += "F "; if (ConferenceUser.StateTest(state, ConferenceUser.USER_STATE.MUTE)) ret += "M "; if (ConferenceUser.StateTest(state, ConferenceUser.USER_STATE.TALK)) ret += "T "; return ret; }
private void bgResolveWorker_DoWork(object sender, DoWorkEventArgs e) { Call c = e.Argument as Call; if (c == null) { ConferenceUser user = (ConferenceUser)e.Argument; active_plugin.contact_plugin.ResolveNumber(user.party_number, alias => { if (user.party_name == user.party_number) { user.party_name = alias; } }); return; } active_plugin.contact_plugin.ResolveNumber(c.other_party_number, alias => { if (c.other_party_name == c.other_party_number) { c.other_party_name = alias; } }); }
public static String StateConvert(ConferenceUser.USER_STATE state) { String ret = ""; if (ConferenceUser.StateTest(state, ConferenceUser.USER_STATE.DEAF)) { ret += "D "; } if (ConferenceUser.StateTest(state, ConferenceUser.USER_STATE.FLOOR)) { ret += "F "; } if (ConferenceUser.StateTest(state, ConferenceUser.USER_STATE.MUTE)) { ret += "M "; } if (ConferenceUser.StateTest(state, ConferenceUser.USER_STATE.TALK)) { ret += "T "; } return(ret); }
public void NewFSEvent(object sender, FSEvent evt) { if (evt.event_id != switch_event_types_t.SWITCH_EVENT_CUSTOM || evt.subclass_name != "conference::maintenance" || evt.get_header("Conference-Name") != "fsc_conference") { return; } String type = evt.get_header("Action"); ConferenceUser user; switch (type) { case "add-member": String member_id = evt.get_header("Member-ID"); String uuid = evt.get_header("Unique-ID"); String source = evt.get_header("Caller-Source"); String direction = evt.get_header("Call-Direction"); user = new ConferenceUser { id = member_id, uuid = uuid, party_name = evt.get_header("Caller-Caller-ID-Name"), party_number = evt.get_header("Caller-Caller-ID-Number") }; if (source == "mod_portaudio" && direction == "inbound") { user.party_number = user.party_name = "You"; user.is_us = true; } users.Add(user); break; case "del-member": user = GetUser(evt); if (user == null) { return; } users.Remove(user); break; case "start-talking": user = GetUser(evt); if (user == null) { return; } user.state |= ConferenceUser.USER_STATE.TALK; break; case "stop-talking": user = GetUser(evt); if (user == null) { return; } user.state ^= ConferenceUser.USER_STATE.TALK; break; case "floor-change": user = GetUser(evt); if (user == null) { return; } foreach (var u in users) { u.state ^= ConferenceUser.USER_STATE.FLOOR; } user.state |= ConferenceUser.USER_STATE.FLOOR; break; } }
private MenuItem UserMenu(ConferenceUser user) { MenuItem main = new MenuItem(); MenuItem item; main.Header = user.party_name + " " + ConfStateConverter.StateConvert(user.state); item = new MenuItem() { Header = "Min Energy Level" }; for (int x = 0; x <= 1500; x += 150) { int val = x; String add = val == user.min_energy_level ? "*" : ""; item.Items.Add(CreateMenuItem("Level " + val + add, () => user.SetEnergyLevel(val))); } main.Items.Add(item); item = new MenuItem() { Header = "Their Volume Level" }; for (int x = -4; x <= 4; x++) { int val = x; String add = val == user.their_volume ? "*" : ""; item.Items.Add(CreateMenuItem("Level " + x + add, () => user.SetAudioLevel(val))); } main.Items.Add(item); item = new MenuItem() { Header = "Conference Volume Level" }; for (int x = -4; x <= 4; x++) { int val = x; String add = val == user.conference_volume ? "*" : ""; item.Items.Add(CreateMenuItem("Level " + x + add, () => user.SetAudioLevel(val, true))); } main.Items.Add(item); if (user.StateIs(ConferenceUser.USER_STATE.MUTE)) { main.Items.Add(CreateMenuItem("UnMute", () => user.Mute(true))); } else { main.Items.Add(CreateMenuItem("Mute", () => user.Mute())); } if (user.StateIs(ConferenceUser.USER_STATE.DEAF)) { main.Items.Add(CreateMenuItem("UnDeaf", () => user.Deaf(true))); } else { main.Items.Add(CreateMenuItem("Deaf", () => user.Deaf())); } if (!user.is_us) { main.Items.Add(CreateMenuItem("Split Out", user.Split)); } main.Items.Add(CreateMenuItem("Drop From Conference", user.Drop)); return(main); }
private MenuItem UserMenu(ConferenceUser user) { MenuItem main = new MenuItem(); MenuItem item; main.Header = user.party_name + " " + ConfStateConverter.StateConvert(user.state); item = new MenuItem() { Header = "Min Energy Level" }; for (int x = 0; x <= 1500; x += 150) { int val = x; String add = val == user.min_energy_level ? "*" : ""; item.Items.Add(CreateMenuItem("Level " + val + add, () => user.SetEnergyLevel(val))); } main.Items.Add(item); item = new MenuItem() { Header = "Their Volume Level" }; for (int x = -4; x <= 4; x++) { int val = x; String add = val == user.their_volume ? "*" : ""; item.Items.Add(CreateMenuItem("Level " + x + add, () => user.SetAudioLevel(val))); } main.Items.Add(item); item = new MenuItem() { Header = "Conference Volume Level" }; for (int x = -4; x <= 4; x++) { int val = x; String add = val == user.conference_volume ? "*" : ""; item.Items.Add(CreateMenuItem("Level " + x + add, () => user.SetAudioLevel(val, true))); } main.Items.Add(item); if (user.StateIs(ConferenceUser.USER_STATE.MUTE)) main.Items.Add(CreateMenuItem("UnMute", () => user.Mute(true))); else main.Items.Add(CreateMenuItem("Mute", () => user.Mute())); if (user.StateIs(ConferenceUser.USER_STATE.DEAF)) main.Items.Add(CreateMenuItem("UnDeaf", () => user.Deaf(true))); else main.Items.Add(CreateMenuItem("Deaf", () => user.Deaf())); if (!user.is_us) main.Items.Add(CreateMenuItem("Split Out", user.Split)); main.Items.Add(CreateMenuItem("Drop From Conference", user.Drop)); return main; }
public void NewFSEvent(object sender, FSEvent evt) { if (evt.event_id != switch_event_types_t.SWITCH_EVENT_CUSTOM || evt.subclass_name != "conference::maintenance" || evt.get_header("Conference-Name") != "fsc_conference") return; String type = evt.get_header("Action"); ConferenceUser user; switch (type) { case "add-member": String member_id = evt.get_header("Member-ID"); String uuid = evt.get_header("Unique-ID"); String source = evt.get_header("Caller-Source"); String direction = evt.get_header("Call-Direction"); user = new ConferenceUser { id = member_id, uuid = uuid, party_name = evt.get_header("Caller-Caller-ID-Name"), party_number = evt.get_header("Caller-Caller-ID-Number") }; if (source == "mod_portaudio" && direction == "inbound") { user.party_number = user.party_name = "You"; user.is_us = true; } users.Add(user); break; case "del-member": user = GetUser(evt); if (user == null) return; users.Remove(user); break; case "start-talking": user = GetUser(evt); if (user == null) return; user.state |= ConferenceUser.USER_STATE.TALK; break; case "stop-talking": user = GetUser(evt); if (user == null) return; user.state ^= ConferenceUser.USER_STATE.TALK; break; case "floor-change": user = GetUser(evt); if (user == null) return; foreach (var u in users) u.state ^= ConferenceUser.USER_STATE.FLOOR; user.state |= ConferenceUser.USER_STATE.FLOOR; break; } }