[Freeswitch-svn] [commit] r12597 - freeswitch/trunk/scripts/contrib/swk/php/amfphp
FreeSWITCH SVN
silik0n at freeswitch.org
Sat Mar 14 00:47:11 PDT 2009
Author: silik0n
Date: Sat Mar 14 02:47:11 2009
New Revision: 12597
Log:
get the Conf monitor/controller mostly working, can now playback soundfiles, (un)lock, (un)mute, and kick members
Modified:
freeswitch/trunk/scripts/contrib/swk/php/amfphp/freeswitch.php
Modified: freeswitch/trunk/scripts/contrib/swk/php/amfphp/freeswitch.php
==============================================================================
--- freeswitch/trunk/scripts/contrib/swk/php/amfphp/freeswitch.php (original)
+++ freeswitch/trunk/scripts/contrib/swk/php/amfphp/freeswitch.php Sat Mar 14 02:47:11 2009
@@ -51,57 +51,11 @@
return $body;
}
- public function getConferenceList() {
- $e = $this->esl->sendRecv("api conference list");
+ public function killUuid($uuid) {
+ $e = $this->esl->sendRecv("api uuid_kill $uuid");
$body = $e->getBody();
- $data=explode("\n", $body);
- $y=0;
- foreach($data as $row){
- if(substr($row, 0, 10)=="Conference"){
- $temp_data = explode(" ", $row);
- $conf_data[$y] = $temp_data[1];
- $y++;
- }
- }
-
- return $conf_data;
- }
-
- public function getConferenceUsers($conference_name) {
- $e = $this->esl->sendRecv("api conference $conference_name list");
- $body = $e->getBody();
-
- $data=explode("\n", $body);
- $y=0;
- foreach($data as $row){
- if ($row!="" && substr($row, 0, 10) != "Conference"){
- $temp_data = explode(";", $row);
- $conf_data[$y]['id'] = $temp_data[0];
- $conf_data[$y]['channel'] = $temp_data[1];
- $conf_data[$y]['uuid'] = $temp_data[2];
- $conf_data[$y]['caller_name'] = $temp_data[3];
- $conf_data[$y]['caller_number'] = $temp_data[4];
- $conf_data[$y]['flags'] = $temp_data[5];
- $conf_data[$y]['gain'] = $temp_data[6];
- $conf_data[$y]['volume'] = $temp_data[7];
- $conf_data[$y]['noise'] = $temp_data[8];
- $conf_data[$y]['hear'] = 0;
- $conf_data[$y]['speak'] = 0;
- $conf_data[$y]['talk'] = 0;
- $conf_data[$y]['video'] = 0;
- $temp_flags = explode("|", $temp_data[5]);
- foreach ($temp_flags as $flag){
- if ($flag == "hear") $conf_data[$y]['hear'] = 1;
- if ($flag == "speak") $conf_data[$y]['speak'] = 1;
- if ($flag == "talk") $conf_data[$y]['talk'] = 1;
- if ($flag == "video") $conf_data[$y]['video'] = 1;
- }
-
- $y++;
- }
- }
- return $conf_data;
+ return $body;
}
public function getChannels() {
@@ -161,8 +115,131 @@
$e = $this->esl->sendRecv($dialstring);
$body = $e->getBody();
- return $dialstring . "\n" . $body;
+ return $body;
+ }
+
+ public function kickConferenceUser($conference, $member) {
+ $e = $this->esl->sendRecv("api conference $conference kick $member");
+ $body = $e->getBody();
+ return $body;
+ }
+
+ public function getConferenceList() {
+ $e = $this->esl->sendRecv("api conference list");
+ $body = $e->getBody();
+
+ $data=explode("\n", $body);
+ $y=0;
+ foreach($data as $row){
+ if(substr($row, 0, 10)=="Conference"){
+ $temp_data = explode(" ", $row);
+ $conf_data[$y] = $temp_data[1];
+ $y++;
+ }
+ }
+ return $conf_data;
+ }
+
+ public function getConferenceUsers($conference_name) {
+ $e = $this->esl->sendRecv("api conference $conference_name list");
+ $body = $e->getBody();
+
+ $data=explode("\n", $body);
+ $y=0;
+ foreach($data as $row){
+ if ($row!="" && substr($row, 0, 10) != "Conference"){
+ $temp_data = explode(";", $row);
+ $conf_data[$y]['id'] = $temp_data[0];
+ $conf_data[$y]['channel'] = $temp_data[1];
+ $conf_data[$y]['uuid'] = $temp_data[2];
+ $conf_data[$y]['caller_name'] = $temp_data[3];
+ $conf_data[$y]['caller_number'] = $temp_data[4];
+ $conf_data[$y]['flags'] = $temp_data[5];
+ $conf_data[$y]['gain'] = $temp_data[6];
+ $conf_data[$y]['volume'] = $temp_data[7];
+ $conf_data[$y]['noise'] = $temp_data[8];
+ $conf_data[$y]['hear'] = 0;
+ $conf_data[$y]['speak'] = 0;
+ $conf_data[$y]['talk'] = 0;
+ $conf_data[$y]['video'] = 0;
+ $conf_data[$y]['floor'] = 0;
+ $temp_flags = explode("|", $temp_data[5]);
+ foreach ($temp_flags as $flag){
+ if ($flag == "hear") $conf_data[$y]['hear'] = 1;
+ if ($flag == "speak") $conf_data[$y]['speak'] = 1;
+ if ($flag == "talk") $conf_data[$y]['talk'] = 1;
+ if ($flag == "video") $conf_data[$y]['video'] = 1;
+ if ($flag == "floor") $conf_data[$y]['floor'] = 1;
+ }
+ $y++;
+ }
+ }
+ return $conf_data;
+ }
+
+ public function getConfPlayfiles($list_dir) {
+ if($list_dir != "") {
+ $templist = glob($list_dir);
+ } else {
+ $templist = glob("/usr/local/freeswitch/sounds/en/us/callie/*/*/*");
+ }
+
+ $x=0;
+ foreach($templist as $file){
+ $temp_file = explode("/", $file);
+ $filelist[$x]['label'] = $temp_file[count($temp_file)-1];
+ $filelist[$x]['data'] = $file;
+ // $filelist[$x] = $file;
+ $x++;
+ }
+
+ return $filelist;
+ }
+
+ public function confPlayfile($conference, $file_path){
+ $playfile = "api conference $conference play " . $file_path['data'];
+ $e = $this->esl->sendRecv($playfile);
+ $body = $e->getBody();
+ return $body;
+ }
+
+ public function confLock($conference){
+ $playfile = "api conference $conference lock";
+ $e = $this->esl->sendRecv($playfile);
+ $body = $e->getBody();
+ return $body;
+ }
+
+ public function confUnlock($conference){
+ $playfile = "api conference $conference unlock";
+ $e = $this->esl->sendRecv($playfile);
+ $body = $e->getBody();
+ return $body;
+ }
+
+ public function confMute($conference, $member){
+ $playfile = "api conference $conference mute $member";
+ $e = $this->esl->sendRecv($playfile);
+ $body = $e->getBody();
+ return $body;
+ }
+
+ public function confUnmute($conference, $member){
+ $playfile = "api conference $conference unmute $member";
+ $e = $this->esl->sendRecv($playfile);
+ $body = $e->getBody();
+ return $body;
}
}
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:t
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */
?>
More information about the Freeswitch-svn
mailing list