提交 cbbdd165 authored 作者: Ken Rice's avatar Ken Rice

ok lets add a few more things in here for IVR stuff

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk/scripts/contrib@12726 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 751eb6e3
<?php
/*
* FreeSWITCH AMF-PHP ESL Client Library
* Copyright (C) 2009, Ken Rice <krice@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@tollfreegateway.com>
* Portions created by the Initial Developer are Copyright (C)
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Ken Rice <krice@tollfreegateway.com>
*
* freeswitch.php -- Initial Class file for XML_CURL responses for Codename: SHIPMENT
*
***************************************************************************************************
*
* This Requires the FreeSWITCH ESL Extension to be installed properly on your system.
*
*/
// require_once "ESL.php";
class FSConfig {
// var $esl;
var $dbh;
public function __construct(){
$dbtype='mysql'; /* Set the Database type */
// $db_hostname = 'localhost'; /* Database Server hostname */
$db_hostname = '192.168.1.140'; /* Database Server hostname */
$db_port = '3306'; /* Database Server Port */
$db_username = 'root'; /* Database Server username */
$db_password = 'password'; /* Database Server password */
$db_database = 'shipment'; /* DataBase Name */
if ($dbtype == 'mysql') {
$pdo_flags = array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,);
}
$this->dbh = new PDO("$dbtype:host=$db_hostname;port=$db_port;dbname=$db_database", $db_username, $db_password, $pdo_flags);
}
/*** IVR Methods Methods ***/
public function getConfigMenus(){
$query = sprintf("select * from menus");
$stmt = $this->dbh->query($query);
$results = $stmt->fetchAll();
return $results;
}
public function getConfigMenuOptions($menu_uid) {
$query = sprintf("select * from menu_entries where menu_uid = %s", $menu_uid);
$stmt = $this->dbh->query($query);
$results = $stmt->fetchAll();
return $results;
}
}
<?
require_once "FSDirectory.php";
header ("content-type: text/xml");
foreach ($_REQUEST as $key => $value) {
$$key = $value;
}
$fsd = new FSDirectory();
/* Uncomment and edit for debugging */
/*
$section = "directory";
$tag_name= "domain";
$key_name ="name";
$key_value="192.168.1.140";
$user="1000";
*/
if ($section == "directory" && $tag_name == "domain" && $key_name == "name" && $user != "" ) {
$db_domain = $fsd->getDirDomainbyName($key_value);
} else {
printf("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"freeswitch/xml\">\n<section name=\"result\">\n".
"<result status=\"not found\" />\n</section>\n</document>");
die();
}
$db_domain_settings = $fsd->getDirDomain($db_domain['uid']);
$db_user = $fsd->getDirUsersByDomainUidByUsername($db_domain['uid'], $user);
$db_user_settings = $fsd->getDirUser($db_user['uid']);
$db_groups = $fsd->getDirGroupsByDomianUidByUserUid($db_domain['uid'], $db_user['uid']);
printf(" <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n");
printf(" <document type=\"freeswitch/xml\">\n");
printf(" <section name=\"directory\" description=\"Codename: Shipment Directory\">\n");
printf(" <domain name=\"%s\">\n", $db_domain['name']);
printf(" <params>\n");
foreach($db_domain_settings['params'] as $db_params) {
printf(" <param name=\"%s\" value=\"%s\"/>\n", $db_params['name'], $db_params['value']);
}
printf(" </params>\n");
printf(" <variables>\n");
foreach($db_domain_settings['variables'] as $db_variables) {
printf(" <variable name=\"%s\" value=\"%s\"/>\n", $db_variables['name'], $db_variables['value']);
}
printf(" </variables>\n");
printf(" <groups>\n");
printf(" <group name=\"default\">\n");
printf(" <users>\n");
printf(" <user id=\"%s\" mailbox=\"%s\">\n", $db_user['username'], $db_user['mailbox']);
printf(" <params>\n");
foreach($db_user_settings['params'] as $db_params) {
printf(" <param name=\"%s\" value=\"%s\"/>\n", $db_params['name'], $db_params['value']);
}
printf(" </params>\n");
printf(" <variables>\n");
foreach($db_user_settings['variables'] as $db_variables) {
printf(" <variable name=\"%s\" value=\"%s\"/>\n", $db_variables['name'], $db_variables['value']);
}
printf(" </variables>\n");
printf(" </user>\n");
printf(" </users>\n");
printf(" </group>\n");
foreach($db_groups as $db_group){
printf(" <group name=\"%s\">\n", $db_group['groupName']);
printf(" <users>\n");
printf(" <user id=\"%s\" type=\"pointer\"/>\n", $user);
printf(" </users>\n");
printf(" </group>\n");
}
printf(" </groups>\n");
printf(" </domain>\n");
printf(" </section>\n");
printf(" </document>\n");
?>
fs_curl.php
\ No newline at end of file
<?
require_once "FSDirectory.php";
require_once "FSConfig.php";
header ("content-type: text/xml");
foreach ($_REQUEST as $key => $value) {
$$key = $value;
}
/* Uncomment and edit for debugging directory*/
/*
$section = "directory";
$tag_name= "domain";
$key_name ="name";
$key_value="192.168.1.140";
$user="1000";
*/
/* Uncomment and edit for debugging directory*/
/*
$section = "configuration";
$tag_name= "configuration";
$key_name ="name";
$key_value="ivr.conf";
*/
/* section=configuration&tag_name=configuration&key_name=name&key_value=ivr.conf&Event-Name=REQUEST_PARAMS */
if ($section == "configuration" && $tag_name == "configuration" && $key_name == "name" && $key_value == "ivr.conf" ) {
$fsc = new FSConfig();
printf(" <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n");
printf(" <document type=\"freeswitch/xml\">\n");
printf(" <section name=\"configuration\" description=\"Codename: Shipment IVR\">\n");
printf(" <configuration name=\"ivr.conf\" description=\"IVR menus\">\n");
printf(" <menus>\n");
$db_menus = $fsc->getConfigMenus();
foreach ($db_menus as $db_menu) {
printf(" <menu name=\"%s\"\n".
" greet-long=\"%s\"\n".
" greet-short=\"%s\"\n".
" invalid-sound=\"%s\"\n".
" exit-sound=\"%s\"\n".
" timeout=\"%s\"\n".
" inter-digit-timeout=\"%s\"\n".
" max-failures=\"%s\"\n".
" max-timeouts=\"%s\"\n".
" digit-len=\"%s\">\n",
$db_menu['name'], $db_menu['greet_long'], $db_menu['greet_short'], $db_menu['invalid_sound'],
$db_menu['exit_sound'], $db_menu['timeout'], $db_menu['inter_digit_timeout'], $db_menu['max_failures'],
$db_menu['max_timeouts'], $db_menu['digit_len']);
$db_menuopts = $fsc->getConfigMenuOptions($db_menu['uid']);
foreach ($db_menuopts as $db_menuopt) {
printf(" <entry action=\"%s\" digits=\"%s\" param=\"%s\"/>\n",
$db_menuopt['action'], $db_menuopt['digits'], $db_menuopt['param']);
}
printf(" </menu>\n");
}
printf(" </menus>\n");
printf(" </configuration>\n");
printf(" </section>\n");
printf(" </document>\n");
} else if ($section == "directory" && $tag_name == "domain" && $key_name == "name" && $user != "" ) {
$fsd = new FSDirectory();
$db_domain = $fsd->getDirDomainbyName($key_value);
$db_domain_settings = $fsd->getDirDomain($db_domain['uid']);
$db_user = $fsd->getDirUsersByDomainUidByUsername($db_domain['uid'], $user);
$db_user_settings = $fsd->getDirUser($db_user['uid']);
$db_groups = $fsd->getDirGroupsByDomianUidByUserUid($db_domain['uid'], $db_user['uid']);
printf(" <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n");
printf(" <document type=\"freeswitch/xml\">\n");
printf(" <section name=\"directory\" description=\"Codename: Shipment Directory\">\n");
printf(" <domain name=\"%s\">\n", $db_domain['name']);
printf(" <params>\n");
foreach($db_domain_settings['params'] as $db_params) {
printf(" <param name=\"%s\" value=\"%s\"/>\n", $db_params['name'], $db_params['value']);
}
printf(" </params>\n");
printf(" <variables>\n");
foreach($db_domain_settings['variables'] as $db_variables) {
printf(" <variable name=\"%s\" value=\"%s\"/>\n", $db_variables['name'], $db_variables['value']);
}
printf(" </variables>\n");
printf(" <groups>\n");
printf(" <group name=\"default\">\n");
printf(" <users>\n");
printf(" <user id=\"%s\" mailbox=\"%s\">\n", $db_user['username'], $db_user['mailbox']);
printf(" <params>\n");
foreach($db_user_settings['params'] as $db_params) {
printf(" <param name=\"%s\" value=\"%s\"/>\n", $db_params['name'], $db_params['value']);
}
printf(" </params>\n");
printf(" <variables>\n");
foreach($db_user_settings['variables'] as $db_variables) {
printf(" <variable name=\"%s\" value=\"%s\"/>\n", $db_variables['name'], $db_variables['value']);
}
printf(" </variables>\n");
printf(" </user>\n");
printf(" </users>\n");
printf(" </group>\n");
foreach($db_groups as $db_group){
printf(" <group name=\"%s\">\n", $db_group['groupName']);
printf(" <users>\n");
printf(" <user id=\"%s\" type=\"pointer\"/>\n", $user);
printf(" </users>\n");
printf(" </group>\n");
}
printf(" </groups>\n");
printf(" </domain>\n");
printf(" </section>\n");
printf(" </document>\n");
} else {
printf("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"freeswitch/xml\">\n<section name=\"result\">\n".
"<result status=\"not found\" />\n</section>\n</document>");
die();
}
?>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论