[Freeswitch-svn] [commit] r12507 - in freeswitch/trunk/scripts/contrib/swk/php: . amfphp

FreeSWITCH SVN silik0n at freeswitch.org
Sat Mar 7 05:04:44 PST 2009


Author: silik0n
Date: Sat Mar  7 07:04:44 2009
New Revision: 12507

Log:
initial commit of AMF-PHP support this is pretty straight forward stuff and pretty simplistic in design

Added:
   freeswitch/trunk/scripts/contrib/swk/php/
   freeswitch/trunk/scripts/contrib/swk/php/amfphp/
   freeswitch/trunk/scripts/contrib/swk/php/amfphp/README
   freeswitch/trunk/scripts/contrib/swk/php/amfphp/freeswitch.php

Added: freeswitch/trunk/scripts/contrib/swk/php/amfphp/README
==============================================================================
--- (empty file)
+++ freeswitch/trunk/scripts/contrib/swk/php/amfphp/README	Sat Mar  7 07:04:44 2009
@@ -0,0 +1,14 @@
+AMF-PHP FreeSwitch Service
+
+Copy the freeswitch.php file to your AMF-PHP services directory
+
+the flex file goes in the normal spot... this is not dynamically configured so you'll have to edit a few things to get it right
+
+TODO: Dynamically detect where the AMF Feed is (ie: dont hardcode the URL)
+TODO: Make the UI better Looking
+TODO: Add some form of user management
+TODO: CDR Viewer
+TODO: Anything else I think I might want to add here
+
+Feel Free to submit patches It would be nice to figure out a good way to support as much of the API as possible via ESL and add things
+like basic Server monitoring

Added: freeswitch/trunk/scripts/contrib/swk/php/amfphp/freeswitch.php
==============================================================================
--- (empty file)
+++ freeswitch/trunk/scripts/contrib/swk/php/amfphp/freeswitch.php	Sat Mar  7 07:04:44 2009
@@ -0,0 +1,148 @@
+<?php
+
+/* 
+ * FreeSWITCH AMF-PHP ESL Client Library
+ * Copyright (C) 2009, Ken Rice <krice at tollfreegateway.com>
+ *
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
+ *
+ * The Initial Developer of the Original Code is
+ * Ken Rice <krice at tollfreegateway.com>
+ * Portions created by the Initial Developer are Copyright (C)
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * 
+ * Ken Rice <krice at tollfreegateway.com>
+ *
+ * freeswitch.php -- Initial Class file for AMF-PHP FreeSwitch Class using ESL
+ *
+ ***************************************************************************************************
+ * 
+ * This Requires the FreeSWITCH ESL Extension to be installed properly on your system.
+ *
+ */
+
+require_once "ESL.php";
+ 
+class FreeSWITCH {
+	 var $esl;
+
+        public function __construct() { 
+		$this->esl = new eslConnection('127.0.0.1', '8021', 'ClueCon');
+	}
+	
+	public function getStatus() {
+		$e = $this->esl->sendRecv("api status");
+		$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"){
+                		$conf_data[$y] = explode(";", $row);
+                		$y++;
+        		}
+		}
+
+		return $conf_data;
+	}
+
+	public function getChannels() {
+		$e = $this->esl->sendRecv("api show channels");
+		$body = $e->getBody();
+		
+		$temp = explode  ("\n", $body);
+		$total_count = sizeof($temp);
+		$i = -1;
+		foreach($temp as $row){
+			if ($i == -1) { 
+				$header = explode(",", $row);
+			} else {
+				$temp_row = explode(",", $row);
+				$x=0;
+				foreach($temp_row as $col){
+					$data[$i][$header[$x]] = $col;
+					$x++;
+				}
+			}
+			$i++;
+			if ($i == $total_count - 4){
+				break;
+			}
+		}
+		return $data;
+	}
+	
+	public function getCalls() {
+		$e = $this->esl->sendRecv("api show calls");
+		$body = $e->getBody();
+		
+		$temp = explode  ("\n", $body);
+		$total_count = sizeof($temp);
+		$i = -1;
+		foreach($temp as $row){
+			if ($i == -1) { 
+				$header = explode(",", $row);
+			} else {
+				$temp_row = explode(",", $row);
+				$x=0;
+				foreach($temp_row as $col){
+					$data[$i][$header[$x]] = $col;
+					$x++;
+				}
+			}
+			$i++;
+			if ($i == $total_count - 3){
+				break;
+			}
+		}
+		return $data;
+	}
+
+	public function originate($call_url, $exten, $dialplan = "XML", $context= "default", $cid_name = "amf_php", $cid_number = "888", $timeout="30"){
+		$dialstring = "api originate $call_url $exten $dialplan $context $cid_name $cid_number $timeout";
+		$e = $this->esl->sendRecv($dialstring);
+		$body = $e->getBody();
+
+		return $dialstring . "\n" . $body;
+	}
+	
+}
+?>



More information about the Freeswitch-svn mailing list