1 Commits
Author SHA1 Message Date
FusionPBX 793d386a96 Update the version from 4.0 to 4.0.0. 2015-08-16 03:06:49 -06:00
1887 changed files with 81541 additions and 177151 deletions
-7
View File
@@ -1,7 +0,0 @@
.project
.vscode
/phpinfo.php
resources/config.php
secure/mailto.bat
secure/*.db
secure/*.sqlite
+15 -32
View File
@@ -1,43 +1,26 @@
RewriteEngine On
# $mac or $mac.cfg/xml
RewriteRule ^.*([A-Fa-f0-9]{12})(?:\.xml|\.cfg)?$ app/provision/index.php?mac=$1 [QSA]
# $m:a:c or $m:a:c.cfg/xml
RewriteRule ^.*((?:[A-Fa-f0-9]{2}[:-]){5}[A-Fa-f0-9]{2})(?:\.xml|\.cfg)?$ app/provision/index.php?mac=$1 [QSA]
# kt*-$mac.xml
RewriteRule ^kt.*?-([A-Fa-f0-9]{12})\.xml$ app/provision/index.php?mac=$1 [QSA]
# cfg-$mac.xml
RewriteRule ^.*cfg([A-Fa-f0-9]{12})\.xml$ app/provision/index.php?mac=$1 [QSA]
RewriteRule ^([A-Fa-f0-9]{12})(\.(xml|cfg))?$ app/provision/index.php?mac=$1 [QSA]
RewriteRule ^([A-Fa-f0-9]{2}[:-][A-Fa-f0-9]{2}[:-][A-Fa-f0-9]{2}[:-][A-Fa-f0-9]{2}[:-][A-Fa-f0-9]{2}[:-][A-Fa-f0-9]{2}[:-])(\.(xml|cfg))?$ app/provision/index.php?mac=$1 [QSA]
RewriteRule ^(kt.*?-)([A-Fa-f0-9]{12})(\.(xml))$ app/provision/index.php?mac=$2 [QSA]
RewriteRule ^(cfg)([A-Fa-f0-9]{12})(\.(xml))$ app/provision/index.php?mac=$2 [QSA]
#Snom m3
RewriteRule ^m3/settings/([A-Fa-f0-9]{12})(?:\.cfg)?$ app/provision/index.php?mac=$1 [QSA]
RewriteRule ^(m3/settings/)([A-Fa-f0-9]{12})(\.(cfg))?$ app/provision/index.php?mac=$2 [QSA]
#Grandstream
RewriteRule ^.*/cfg([A-Fa-f0-9]{12})(?:\.xml|\.cfg)?$ app/provision/?mac=$1 [QSA]
RewriteRule ^.*/provision/cfg([A-Fa-f0-9]{12})(\.(xml|cfg))?$ app/provision/?mac=$1 [QSA]
#Yealink and Polycom
RewriteRule ^.*/([A-Fa-f0-9]{12})(?:\.xml|\.cfg)?$ app/provision/index.php?mac=$1 [QSA]
#Yealink
RewriteRule ^.*/provision/([A-Fa-f0-9]{12})(\.(xml|cfg))?$ app/provision/index.php?mac=$1 [QSA]
#Polycom
RewriteRule ^.*/000000000000.cfg$ app/provision/?mac=$1&file={$mac}.cfg [QSA]
RewriteRule ^.*/features.cfg$ app/provision/?mac=$1&file=features.cfg [QSA]
RewriteRule ^.*/([A-Fa-f0-9]{12})-sip.cfg$ app/provision/?mac=$1&file=sip.cfg [QSA]
RewriteRule ^.*/([A-Fa-f0-9]{12})-phone.cfg$ app/provision/?mac=$1 [QSA]
RewriteRule ^.*/([A-Fa-f0-9]{12})-registration.cfg$ app/provision/?mac=$1&file={$mac}-registration.cfg [QSA]
RewriteRule ^.*/([A-Fa-f0-9]{12})-site.cfg$ app/provision/?mac=$1&file=site.cfg [QSA]
RewriteRule ^.*/([A-Fa-f0-9]{12})-web.cfg$ app/provision/?mac=$1&file=web.cfg [QSA]
RewriteRule ^.*/([A-Fa-f0-9]{12})-directory.xml$ app/provision/?mac=$1&file=directory.xml [QSA]
#Escene
RewriteRule ^.*/provision/([0-9]{1,11})_Extern.xml$ app/provision/?ext=$1&file={$mac}_extern.xml [QSA]
RewriteRule ^.*/provision/([0-9]{1,11})_Phonebook.xml$ app/provision/?ext=$1&file={$mac}_phonebook.xml [QSA]
RewriteRule ^.*/provision/000000000000.cfg$ app/provison/?mac=$1&file={$mac}.cfg [QSA]
RewriteRule ^.*/provision/features.cfg$ app/provision/?mac=$1&file=features.cfg [QSA]
RewriteRule ^.*/provision/([A-Fa-f0-9]{12})-sip.cfg$ app/provision/?mac=$1&file=sip.cfg [QSA]
RewriteRule ^.*/provision/([A-Fa-f0-9]{12})-phone.cfg$ app/provision/?mac=$1 [QSA]
RewriteRule ^.*/provision/([A-Fa-f0-9]{12})-registration.cfg$ app/provision/?mac=$1&file={$mac}-registration.cfg [QSA]
RewriteRule ^.*/provision/([A-Fa-f0-9]{12})-site.cfg$ app/provision/?mac=$1&file=site.cfg [QSA]
RewriteRule ^.*/provision/([A-Fa-f0-9]{12})-web.cfg$ app/provision/?mac=$1&file=web.cfg [QSA]
Options -Indexes
#PHP settings
php_value upload_max_filesize 25M
php_value post_max_size 35M
php_value memory_limit 512M
-11
View File
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>fusionbpx</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>
+18 -21
View File
@@ -6,7 +6,7 @@ It provides the functionality your business needs and brings corporate-level pho
In addition to providing all of the usual PBX functionality, FusionPBX allows you to configure:
- Multi-Tenant
- Multi-Tenancy
- Unlimited Extensions
- Voicemail-to-Email
- Music on Hold
@@ -22,16 +22,16 @@ Free Support
--------------------------------------
We provide several avenues for you to get your system up and running on your own and learn the basics of the system.
1. [Old Documentation](http://wiki.fusionpbx.com/index.php?title=Main_Page)
2. [New Documentation](http://docs.fusionpbx.com)
3. [How to Contribute](https://github.com/Fusionpbx/opensource)
4. [IRC](http://webchat.freenode.net/) in the #fusionpbx channel
1. [Current Documentation](http://wiki.fusionpbx.com/index.php?title=Main_Page)
2. [New Documentation](http://fusionpbx-docs.readthedocs.org/en/latest/) COMING SOON
3. [How to Contribute](http://fusionpbx.com) COMING SOON
4. [IRC](http://webchat.freenode.net/) in the fusionpbx channel
Commercial Support
--------------------------------------
These options support the project and cover any kind of help you might need from architecture, installation, best practices, troubleshooting, custom feature programming, and training.
1. [Commercial Paid Support](http://fusionpbx.com/support.php)
1. [Commercial Paid Support](http://fusionpbx.com/support.php)
2. [Custom Feature Development](http://fusionpbx.com/support.php)
3. [Admin Training](http://fusionpbx.com)
4. [Advanced Training](http://fusionpbx.com)
@@ -39,7 +39,7 @@ These options support the project and cover any kind of help you might need from
Software Requirements
--------------------------------------
- [Debian Jessie](http://cdimage.debian.org/debian-cd/8.1.0/amd64/iso-cd/debian-8.1.0-amd64-netinst.iso) - Recommended
- [Debian Jessie](http://cdimage.debian.org/debian-cd/8.1.0/amd64/iso-cd/debian-8.1.0-amd64-netinst.iso) - Recommended
This is the distribution recommended by the FreeSwitch team
- Fusion will also install on Debian Wheezy, Ubuntu 10.10 LTS and is known to work on FreeBSD
- [FusionPBX Installer](http://fusionpbx.com)
@@ -47,17 +47,17 @@ This is the distribution recommended by the FreeSwitch team
Community
--------------------------------------
We have a pretty thriving community. You can find us here:
We have a pretty thriving community if you know how to get to us:
- [IRC](http://webchat.freenode.net/) in the #fusionpbx channel
- [Twitter](http://twitter.com/fusionpbx)
- [IRC](http://webchat.freenode.net/) in the fusionpbx channel
- [Twitter](http://twitter.com/fusionpbx)
- [Website](http://fusionpbx.com)
Contributing
---------------------------------------
###Requirements
It's easy to contribute to FusionPBX the only thing we ask before accepting your pull request is that you sign a Contributor License Agreement.
It's easy to contribute to FusionPBX the only thing we ask before accepting your pull request is that you sign a Contributor License Agreement.
We ask that you sign the Contributor License Agreement for the following reasons:
1. It protects FusionPBX by you gauranteeing that your contributions are yours to contribute and not the property of an employer or something found on the web.
@@ -71,25 +71,22 @@ How to Install FusionPBX
----------------------------
* As root do the following:
```bash
apt-get update && apt-get upgrade && apt-get install -y git
```
```bash
cd /usr/src
```
```bash
git clone https://github.com/fusionpbx/fusionpbx-install.sh.git
apt-get install wget
```
```bash
chmod 755 -R /usr/src/fusionpbx-install.sh
wget https://raw.githubusercontent.com/fusionpbx/fusionpbx-scripts/master/install/ubuntu/install_fusionpbx.sh
```
```bash
cd /usr/src/fusionpbx-install.sh/debian
chmod 755 install_fusionpbx.sh
```
```bash
./install.sh
./install_fusionpbx.sh install-both user
```
This install script is designed to be an fast, simple, and in a modular way to install FusionPBX. Start with a minimal install of Debian 8 with SSH enabled. Run the following commands under root. The script installs FusionPBX, FreeSWITCH release package and its dependencies, IPTables, Fail2ban, NGINX, PHP FPM and PostgreSQL.
Some installations require special considerations. Visit https://github.com/fusionpbx/fusionpbx-install.sh readme section for more details.
Installation Questions:
- During the install it will ask you to press continue after verifying that the command ran successfully. This is usually the case, so you can simply tell it to continue. The install also asks several questions.
- Unless you have a reason to choose otherwise, PostgreSQL and Nginx is probably your best path and is recommended by the developers of FusionPBX
+22 -35
View File
@@ -1,47 +1,34 @@
<?php
//includes
require_once "root.php";
require_once "resources/require.php";
//check permissions
require_once "resources/check_auth.php";
if (permission_exists('access_control_delete')) {
//access granted
}
else {
echo "access denied";
exit;
}
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('access_control_delete')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
require_once "app_languages.php";
foreach($text as $key => $value) {
$text[$key] = $value[$_SESSION['domain']['language']['code']];
}
//get the id
if (count($_GET)>0) {
$id = check_str($_GET["id"]);
}
//delete the data
if (strlen($id)>0) {
//delete access_control
$sql = "delete from v_access_controls ";
$sql .= "where access_control_uuid = '$id' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
unset($sql);
//delete access_control_node
$sql = "delete from v_access_control_nodes ";
$sql .= "where access_control_uuid = '$id' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
unset($sql);
// clear cache
remove_config_from_cache('configuration:acl.conf');
}
if (strlen($id)>0) {
//delete access_control
$sql = "delete from v_access_controls ";
$sql .= "where access_control_uuid = '$id' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
unset($sql);
}
//redirect the user
$_SESSION['message'] = $text['message-delete'];
+38 -32
View File
@@ -1,22 +1,20 @@
<?php
//includes
require_once "root.php";
require_once "resources/require.php";
//check permissions
require_once "resources/check_auth.php";
if (permission_exists('access_control_add') || permission_exists('access_control_edit')) {
//access granted
}
else {
echo "access denied";
exit;
}
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('access_control_add') || permission_exists('access_control_edit')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
require_once "app_languages.php";
foreach($text as $key => $value) {
$text[$key] = $value[$_SESSION['domain']['language']['code']];
}
//action add or update
if (isset($_REQUEST["id"])) {
@@ -78,9 +76,8 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$db->exec(check_sql($sql));
unset($sql);
remove_config_from_cache('configuration:acl.conf');
$_SESSION["message"] = $text['message-add'];
header("Location: access_controls.php");
$_SESSION['message'] = $text['message-add'];
header('Location: access_controls.php');
return;
} //if ($action == "add")
@@ -94,13 +91,12 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$db->exec(check_sql($sql));
unset($sql);
remove_config_from_cache('configuration:acl.conf');
$_SESSION["message"] = $text['message-update'];
header("Location: access_controls.php");
$_SESSION['message'] = $text['message-update'];
header('Location: access_controls.php');
return;
} //if ($action == "update")
} //if ($_POST["persistformvar"] != "true")
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
//pre-populate the form
@@ -124,11 +120,18 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
require_once "resources/header.php";
//show the content
echo "<form name='frm' id='frm' method='post' action=''>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<div align='center'>";
echo "<table width='100%' border='0' cellpadding='0' cellspacing=''>\n";
echo "<tr class='border'>\n";
echo " <td align=\"left\">\n";
echo " <br>";
echo "<form method='post' name='frm' action=''>\n";
echo "<div align='center'>\n";
echo "<table width='100%' border='0' cellpadding='6' cellspacing='0'>\n";
echo "<tr>\n";
echo "<td align='left' width='30%' nowrap='nowrap' valign='top'><b>".$text['title-access_control']."</b><br><br></td>\n";
echo "<td width='70%' align='right' valign='top'>\n";
echo "<td align='left' width='30%' nowrap='nowrap'><b>".$text['title-access_control']."</b></td>\n";
echo "<td width='70%' align='right'>\n";
echo " <input type='button' class='btn' name='' alt='".$text['button-back']."' onclick=\"window.location='access_controls.php'\" value='".$text['button-back']."'>";
echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>";
echo "</td>\n";
@@ -152,13 +155,13 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='access_control_default'>\n";
echo " <option value=''></option>\n";
if ($access_control_default == "allow") {
if ($access_control_default == "allow") {
echo " <option value='allow' selected='selected'>".$text['label-allow']."</option>\n";
}
else {
echo " <option value='allow'>".$text['label-allow']."</option>\n";
}
if ($access_control_default == "deny") {
if ($access_control_default == "deny") {
echo " <option value='deny' selected='selected'>".$text['label-deny']."</option>\n";
}
else {
@@ -185,18 +188,21 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
if ($action == "update") {
echo " <input type='hidden' name='access_control_uuid' value='$access_control_uuid'>\n";
}
echo " <br><input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
echo " </td>\n";
echo " </tr>";
echo "</table>";
echo "</form>";
echo "<br /><br />";
if ($action == "update") {
require "access_control_nodes.php";
echo "<br><br>";
}
echo " </td>";
echo " </tr>";
echo "</table>";
echo "</div>";
//include the footer
require_once "resources/footer.php";
?>
@@ -11,8 +11,10 @@ else {
}
//add multi-lingual support
$language = new text;
$text = $language->get();
require_once "app_languages.php";
foreach($text as $key => $value) {
$text[$key] = $value[$_SESSION['domain']['language']['code']];
}
//get the id
if (count($_GET)>0) {
@@ -20,18 +22,18 @@ else {
$access_control_uuid = check_str($_GET["access_control_uuid"]);
}
//delete access_control_node
if (strlen($id)>0) {
if (strlen($id)>0) {
//delete access_control_node
$sql = "delete from v_access_control_nodes ";
$sql .= "where access_control_node_uuid = '$id' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
unset($sql);
remove_config_from_cache('configuration:acl.conf');
}
}
//redirect the user
$_SESSION['message'] = $text['message-delete'];
header('Location: access_control_edit.php?id='.$access_control_uuid);
header('Location: access_control_node_edit.php?id='.$access_control_uuid);
?>
@@ -11,8 +11,10 @@ else {
}
//add multi-lingual support
$language = new text;
$text = $language->get();
require_once "app_languages.php";
foreach($text as $key => $value) {
$text[$key] = $value[$_SESSION['domain']['language']['code']];
}
//action add or update
if (isset($_REQUEST["id"])) {
@@ -85,7 +87,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$db->exec(check_sql($sql));
unset($sql);
remove_config_from_cache('configuration:acl.conf');
$_SESSION['message'] = $text['message-add'];
header('Location: access_control_edit.php?id='.$access_control_uuid);
return;
@@ -103,13 +104,12 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$db->exec(check_sql($sql));
unset($sql);
remove_config_from_cache('configuration:acl.conf');
$_SESSION['message'] = $text['message-update'];
header('Location: access_control_edit.php?id='.$access_control_uuid);
return;
} //if ($action == "update")
} //if ($_POST["persistformvar"] != "true")
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
//pre-populate the form
@@ -134,12 +134,18 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
require_once "resources/header.php";
//show the content
echo "<div align='center'>";
echo "<table width='100%' border='0' cellpadding='0' cellspacing=''>\n";
echo "<tr class='border'>\n";
echo " <td align=\"left\">\n";
echo " <br>";
echo "<form method='post' name='frm' action=''>\n";
echo "<div align='center'>\n";
echo "<table width='100%' border='0' cellpadding='6' cellspacing='0'>\n";
echo "<tr>\n";
echo "<td align='left' width='30%' nowrap='nowrap' valign='top'><b>".$text['title-access_control_node']."</b><br><br></td>\n";
echo "<td width='70%' align='right' valign='top'>\n";
echo "<td align='left' width='30%' nowrap='nowrap'><b>".$text['title-access_control_node']."</b></td>\n";
echo "<td width='70%' align='right'>\n";
echo " <input type='button' class='btn' name='' alt='".$text['button-back']."' onclick=\"window.location='access_control_edit.php?id=$access_control_uuid'\" value='".$text['button-back']."'>";
echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>";
echo "</td>\n";
@@ -152,13 +158,13 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='node_type'>\n";
echo " <option value=''></option>\n";
if ($node_type == "allow") {
if ($node_type == "allow") {
echo " <option value='allow' selected='selected'>".$text['label-allow']."</option>\n";
}
else {
echo " <option value='allow'>".$text['label-allow']."</option>\n";
}
if ($node_type == "deny") {
if ($node_type == "deny") {
echo " <option value='deny' selected='selected'>".$text['label-deny']."</option>\n";
}
else {
@@ -208,12 +214,16 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
if ($action == "update") {
echo " <input type='hidden' name='access_control_node_uuid' value='$access_control_node_uuid'>\n";
}
echo " <br><input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
echo " </td>\n";
echo " </tr>";
echo "</table>";
echo "</form>";
echo "<br><br>";
echo " </td>";
echo " </tr>";
echo "</table>";
echo "</div>";
//include the footer
require_once "resources/footer.php";
+21 -12
View File
@@ -10,19 +10,20 @@ else {
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//get variables used to control the order
$order_by = check_str($_GET["order_by"]);
$order = check_str($_GET["order"]);
$order_by = $_GET["order_by"];
$order = $_GET["order"];
//additional includes
require_once "resources/header.php";
require_once "resources/paging.php";
//show the content
echo "<div align='center'>";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='2'>\n";
echo "<tr class='border'>\n";
echo " <td align=\"center\">\n";
echo " <br />";
echo "<table width='100%' border='0'>\n";
echo " <tr>\n";
@@ -48,12 +49,12 @@ else {
}
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$param = "&id=".$access_control_uuid;
$rows_per_page = 10;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page);
$offset = $rows_per_page * $page;
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page);
$offset = $rows_per_page * $page;
//get the list
$sql = "select * from v_access_control_nodes ";
@@ -70,6 +71,7 @@ else {
$row_style["0"] = "row_style0";
$row_style["1"] = "row_style1";
echo "<div align='center'>\n";
echo "<table class='tr_hover' width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo th_order_by('node_type', $text['label-node_type'], $order_by, $order);
@@ -130,8 +132,15 @@ else {
echo "</tr>\n";
echo "</table>";
echo "</div>";
echo "<br /><br />";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<br /><br />";
//include the footer
require_once "resources/footer.php";
?>
?>
+67 -56
View File
@@ -1,22 +1,19 @@
<?php
//includes
require_once "root.php";
require_once "resources/require.php";
//check permissions
require_once "resources/check_auth.php";
if (permission_exists('access_control_view')) {
//access granted
}
else {
echo "access denied";
exit;
}
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('access_control_view')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
require_once "app_languages.php";
foreach($text as $key => $value) {
$text[$key] = $value[$_SESSION['domain']['language']['code']];
}
//get variables used to control the order
$order_by = $_GET["order_by"];
@@ -26,44 +23,13 @@
require_once "resources/header.php";
require_once "resources/paging.php";
//prepare to page the results
$sql = "select count(*) as num_rows from v_access_controls ";
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
if ($row['num_rows'] > 0) {
$num_rows = $row['num_rows'];
}
else {
$num_rows = '0';
}
}
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page);
$offset = $rows_per_page * $page;
//get the list
$sql = "select * from v_access_controls ";
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
$sql .= "limit $rows_per_page offset $offset ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset ($prep_statement, $sql);
//alternate the row style
$c = 0;
$row_style["0"] = "row_style0";
$row_style["1"] = "row_style1";
//show the content
echo "<div align='center'>";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='2'>\n";
echo "<tr class='border'>\n";
echo " <td align=\"center\">\n";
echo " <br />";
echo "<table width='100%' border='0'>\n";
echo " <tr>\n";
echo " <td width='50%' align='left' nowrap='nowrap'><b>".$text['title-access_controls']."</b></td>\n";
@@ -76,6 +42,44 @@
echo " </tr>\n";
echo "</table>\n";
//prepare to page the results
$sql = "select count(*) as num_rows from v_access_controls ";
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
if ($row['num_rows'] > 0) {
$num_rows = $row['num_rows'];
}
else {
$num_rows = '0';
}
}
//prepare to page the results
$rows_per_page = 10;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page);
$offset = $rows_per_page * $page;
//get the list
$sql = "select * from v_access_controls ";
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
$sql .= "limit $rows_per_page offset $offset ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$result_count = count($result);
unset ($prep_statement, $sql);
$c = 0;
$row_style["0"] = "row_style0";
$row_style["1"] = "row_style1";
echo "<div align='center'>\n";
echo "<table class='tr_hover' width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo th_order_by('access_control_name', $text['label-access_control_name'], $order_by, $order);
@@ -91,7 +95,7 @@
echo "</td>\n";
echo "<tr>\n";
if (is_array($result)) {
if ($result_count > 0) {
foreach($result as $row) {
if (permission_exists('access_control_edit')) {
$tr_link = "href='access_control_edit.php?id=".$row['access_control_uuid']."'";
@@ -132,10 +136,17 @@
echo " </table>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>";
echo "</div>";
echo "<br /><br />";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<br /><br />";
//include the footer
require_once "resources/footer.php";
?>
-7
View File
@@ -69,17 +69,14 @@
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'access_control_name';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the name.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Insira o nome';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'access_control_default';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Select the default type.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Selecione o tipo padrão.';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'access_control_description';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the description';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Insira com uma descrição';
$y = 1; //table array index
$z = 0; //field array index
@@ -109,21 +106,17 @@
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'node_type';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Select the type.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Selecione o tipo.';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'node_cidr';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the IP CIDR range.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Insira o intervalo IP CIDR.';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'node_domain';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the domain.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Insira com o domínio.';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'node_description';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the description.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Insira a descrição.';
$z++;
?>
+14 -31
View File
@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2016
Portions created by the Initial Developer are Copyright (C) 2015
the Initial Developer. All Rights Reserved.
Contributor(s):
@@ -34,29 +34,19 @@
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
if ($row['num_rows'] == 0) {
//set the directory
$xml_dir = $_SESSION["switch"]["conf"]["dir"].'/autoload_configs';
$xml_file = $xml_dir."/acl.conf.xml";
$xml_file_alt = $_SERVER["DOCUMENT_ROOT"].'/'.PROJECT_PATH.'/resources/templates/conf/autoload_configs/acl.conf';
//load the xml and save it into an array
if (file_exists($xml_file)) {
$xml_string = file_get_contents($xml_file);
//find the file
if (file_exists('/usr/share/examples/fusionpbx/resources/templates/conf/autoload_configs')) {
$xml_file = '/usr/share/examples/fusionpbx/resources/templates/conf/autload_configs/acl.conf.xml';
}
elseif (file_exists($xml_file_alt)) {
$xml_string = file_get_contents(xml_file_alt);
elseif (file_exists('/usr/local/share/fusionpbx/resources/templates/conf/autoload_configs')) {
$xml_file = '/usr/local/share/fusionpbx/resources/templates/conf/autoload_configs/acl.conf.xml';
}
else {
$xml_string = "<configuration name=\"acl.conf\" description=\"Network Lists\">\n";
$xml_string .= " <network-lists>\n";
$xml_string .= " <list name=\"lan\" default=\"allow\">\n";
$xml_string .= " <node type=\"allow\" cidr=\"192.168.42.42/32\"/>\n";
$xml_string .= " </list>\n";
$xml_string .= " <list name=\"domains\" default=\"deny\">\n";
$xml_string .= " <node type=\"allow\" domain=\"".$_SESSION['domain_name']."\"/>\n";
$xml_string .= " </list>\n";
$xml_string .= " </network-lists>\n";
$xml_string .= "</configuration>\n";
$xml_file = $_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/resources/templates/conf/autoload_configs/acl.conf.xml';
}
//load the xml and save it into an array
$xml_string = file_get_contents($xml_file);
$xml_object = simplexml_load_string($xml_string);
$json = json_encode($xml_object);
$conf_array = json_decode($json, true);
@@ -97,7 +87,6 @@
$node_type = $row['@attributes']['type'];
$node_cidr = $row['@attributes']['cidr'];
$node_domain = $row['@attributes']['domain'];
$node_description = $row['@attributes']['description'];
//replace $${domain}
if (strlen($node_domain) > 0) {
$node_domain = str_replace("\$\${domain}", $domain_name, $node_domain);
@@ -110,8 +99,7 @@
$sql .= "access_control_uuid, ";
$sql .= "node_type, ";
$sql .= "node_cidr, ";
$sql .= "node_domain, ";
$sql .= "node_description ";
$sql .= "node_domain ";
$sql .= ") ";
$sql .= "values ";
$sql .= "( ";
@@ -119,20 +107,15 @@
$sql .= "'".$access_control_uuid."', ";
$sql .= "'".$node_type."', ";
$sql .= "'".$node_cidr."', ";
$sql .= "'".$node_domain."', ";
$sql .= "'".$node_description."' ";
$sql .= "'".$node_domain."' ";
$sql .= ")";
//echo $sql."\n";
$db->exec(check_sql($sql));
}
}
unset($prep_statement);
//rename the file
rename($xml_dir.'/acl.conf.xml', $xml_dir.'/acl.conf');
}
unset($prep_statement);
}
}
}
?>
+171 -2
View File
@@ -52,6 +52,71 @@ $text['title-access_control']['uk'] = "Управління доступом";
$text['title-access_control']['sv-se'] = "Åtkomstkontroll";
$text['title-access_control']['ar-eg'] = "التحكم في الوصول";
$text['message-update']['en-us'] = "Update Completed";
$text['message-update']['es-cl'] = "Actualización Completada";
$text['message-update']['pt-pt'] = "Actualização Efectuada";
$text['message-update']['fr-fr'] = "Mis à jour";
$text['message-update']['pt-br'] = "Atualização Efetuada";
$text['message-update']['he'] = "עידכון הושלם";
$text['message-update']['de-at'] = "Aktualisierung durchgeführt";
$text['message-update']['pl'] = "Zaktualizowano poprawnie";
$text['message-update']['ro'] = "Actualizare completă";
$text['message-update']['uk'] = "Оновлення завершено";
$text['message-update']['sv-se'] = "Uppdatering Klar";
$text['message-update']['ar-eg'] = "تحديث مكتمل";
$text['message-required']['en-us'] = "Please provide: ";
$text['message-required']['es-cl'] = "Por favor indique:";
$text['message-required']['pt-pt'] = "Por favor indique:";
$text['message-required']['fr-fr'] = "Merci d'indiquer:";
$text['message-required']['pt-br'] = "Por favor Indique:";
$text['message-required']['he'] = " אנא ספק";
$text['message-required']['de-at'] = "Bitte geben Sie folgendes an:";
$text['message-required']['pl'] = "Wpisz:";
$text['message-required']['ro'] = "Vă rugăm să oferiți";
$text['message-required']['uk'] = "Будь ласка, вкажіть:";
$text['message-required']['sv-se'] = "Var god uppge:";
$text['message-required']['ar-eg'] = "يرجى تقديم:";
$text['message-delete']['en-us'] = "Delete Completed";
$text['message-delete']['es-cl'] = "Eliminación Completada";
$text['message-delete']['pt-pt'] = "Remoção Efectuada";
$text['message-delete']['fr-fr'] = "Supprimé";
$text['message-delete']['pt-br'] = "Remoção Efetuada";
$text['message-delete']['he'] = "מחיקה הושלמה";
$text['message-delete']['de-at'] = "Erfolgreich gelöscht";
$text['message-delete']['pl'] = "Usunięto poprawnie";
$text['message-delete']['ro'] = "Ștergere completă";
$text['message-delete']['uk'] = "Видалено";
$text['message-delete']['sv-se'] = "Borttagning Klar";
$text['message-delete']['ar-eg'] = "تم المسح";
$text['message-add']['en-us'] = "Add Completed";
$text['message-add']['es-cl'] = "Agregar Completado";
$text['message-add']['pt-pt'] = "Adição Efectuada";
$text['message-add']['fr-fr'] = "Ajouté";
$text['message-add']['pt-br'] = "Criação Efetuada";
$text['message-add']['he'] = "הוספה הושלמה";
$text['message-add']['de-at'] = "Completed";
$text['message-add']['pl'] = "Dodano poprawnie";
$text['message-add']['ro'] = "Adăugare completă";
$text['message-add']['uk'] = "Додано";
$text['message-add']['sv-se'] = "Tillagd";
$text['message-add']['ar-eg'] = "تمت الأضافة";
$text['label-true']['en-us'] = "true";
$text['label-true']['es-cl'] = "Verdadero";
$text['label-true']['pt-pt'] = "Sim";
$text['label-true']['fr-fr'] = "Oui";
$text['label-true']['pt-br'] = "Sim";
$text['label-true']['he'] = "חיובי";
$text['label-true']['de-at'] = "Ein";
$text['label-true']['pl'] = "Tak";
$text['label-true']['ro'] = "Adevărat";
$text['label-true']['uk'] = "Так";
$text['label-true']['sv-se'] = "Sann";
$text['label-true']['ar-eg'] = "صحيح";
$text['label-node_type']['en-us'] = "Type";
$text['label-node_type']['es-cl'] = "Escribe";
$text['label-node_type']['pt-pt'] = "Tipo";
@@ -104,11 +169,24 @@ $text['label-node_cidr']['uk'] = "CIDR";
$text['label-node_cidr']['sv-se'] = "CIDR";
$text['label-node_cidr']['ar-eg'] = "CIDR";
$text['label-false']['en-us'] = "false";
$text['label-false']['es-cl'] = "Falso";
$text['label-false']['pt-pt'] = "falso";
$text['label-false']['fr-fr'] = "falso";
$text['label-false']['pt-br'] = "Não";
$text['label-false']['he'] = "לא חוקי";
$text['label-false']['de-at'] = "Aus";
$text['label-false']['pl'] = "Nie";
$text['label-false']['ro'] = "Fals";
$text['label-false']['uk'] = "помилковий";
$text['label-false']['sv-se'] = "Falsk";
$text['label-false']['ar-eg'] = "خاطئة";
$text['label-deny']['en-us'] = "deny";
$text['label-deny']['es-cl'] = "Negar";
$text['label-deny']['pt-pt'] = "negar";
$text['label-deny']['fr-fr'] = " nier";
$text['label-deny']['pt-br'] = "negar";
$text['label-deny']['pt-br'] = "Negar";
$text['label-deny']['he'] = "להכחיש";
$text['label-deny']['de-at'] = " leugnen";
$text['label-deny']['pl'] = "zaprzeczać";
@@ -251,7 +329,7 @@ $text['description-access_control_description']['en-us'] = "Enter the descriptio
$text['description-access_control_description']['es-cl'] = "Introduzca la descripción";
$text['description-access_control_description']['pt-pt'] = "Digite a descrição";
$text['description-access_control_description']['fr-fr'] = "Entrez la description.";
$text['description-access_control_description']['pt-br'] = "Digite a descrição.";
$text['description-access_control_description']['pt-br'] = "Digite a descrição";
$text['description-access_control_description']['he'] = " הזן את התיאור";
$text['description-access_control_description']['de-at'] = "Geben Sie die Beschreibung";
$text['description-access_control_description']['pl'] = "Wprowadź opis";
@@ -286,4 +364,95 @@ $text['description-access_control']['uk'] = "Список контролю до
$text['description-access_control']['sv-se'] = "Åtkomstkontrollista kan tillåta eller neka intervall av IP-adresser.";
$text['description-access_control']['ar-eg'] = "قائمة التحكم بالوصول يمكن السماح أو الرفض نطاقات العناوين.";
$text['confirm-delete']['en-us'] = "Do you really want to delete this?";
$text['confirm-delete']['es-cl'] = "¿Realmente desea eliminar esto?";
$text['confirm-delete']['pt-pt'] = "Deseja realmente remover isto?";
$text['confirm-delete']['fr-fr'] = "Voulez-vous vraiment supprimer cela?";
$text['confirm-delete']['pt-br'] = "Deseja realmente remover isto?";
$text['confirm-delete']['he'] = " האם אתה באמת רוצה למחוק את זה?";
$text['confirm-delete']['de-at'] = "Wollen Sie das wirklich löschen?";
$text['confirm-delete']['pl'] = "Czy na pewno chcesz to usunąć?";
$text['confirm-delete']['ro'] = "Chiar vrei să ștergeți asta?";
$text['confirm-delete']['uk'] = "Ви дійсно бажаєте це видалити?";
$text['confirm-delete']['sv-se'] = "Vill du verkligen ta bort detta?";
$text['confirm-delete']['ar-eg'] = "هل تريد حقا أن تحذف هذا؟";
$text['button-view']['en-us'] = "View";
$text['button-view']['es-cl'] = "Ver";
$text['button-view']['pt-pt'] = "Vista";
$text['button-view']['fr-fr'] = "Voir";
$text['button-view']['pt-br'] = "Visualizar";
$text['button-view']['he'] = " צפה ב";
$text['button-view']['de-at'] = "Ansicht";
$text['button-view']['pl'] = "Widok";
$text['button-view']['ro'] = "Vedere";
$text['button-view']['uk'] = "вид";
$text['button-view']['sv-se'] = "Visa";
$text['button-view']['ar-eg'] = "عرض";
$text['button-save']['en-us'] = "Save";
$text['button-save']['es-cl'] = "Guardar";
$text['button-save']['pt-pt'] = "Guardar";
$text['button-save']['fr-fr'] = "Sauvegarder";
$text['button-save']['pt-br'] = "Salvar";
$text['button-save']['he'] = "שמור";
$text['button-save']['de-at'] = "Speichern";
$text['button-save']['pl'] = "Zachowaj";
$text['button-save']['ro'] = "Salvează";
$text['button-save']['uk'] = "Зберегти";
$text['button-save']['sv-se'] = "Spara";
$text['button-save']['ar-eg'] = "حفظ";
$text['button-edit']['en-us'] = "Edit";
$text['button-edit']['es-cl'] = "Editar";
$text['button-edit']['pt-pt'] = "Editar";
$text['button-edit']['fr-fr'] = "Editer";
$text['button-edit']['pt-br'] = "Editar";
$text['button-edit']['he'] = " עריכה";
$text['button-edit']['de-at'] = "Bearbeiten";
$text['button-edit']['pl'] = "Edytuj";
$text['button-edit']['ro'] = "edita";
$text['button-edit']['uk'] = "Редагувати";
$text['button-edit']['sv-se'] = "Editera";
$text['button-edit']['ar-eg'] = "تعديل";
$text['button-delete']['en-us'] = "Delete";
$text['button-delete']['es-cl'] = "Eliminar";
$text['button-delete']['pt-pt'] = "Remover";
$text['button-delete']['fr-fr'] = "Supprimer";
$text['button-delete']['pt-br'] = "Remover";
$text['button-delete']['he'] = " מחק";
$text['button-delete']['de-at'] = "löschen";
$text['button-delete']['pl'] = "Usuń";
$text['button-delete']['ro'] = "șterge";
$text['button-delete']['uk'] = "Видалити";
$text['button-delete']['sv-se'] = "Ta Bort";
$text['button-delete']['ar-eg'] = "مسح";
$text['button-back']['en-us'] = "Back";
$text['button-back']['es-cl'] = "Volver";
$text['button-back']['pt-pt'] = "Voltar";
$text['button-back']['fr-fr'] = "Retour";
$text['button-back']['pt-br'] = "Voltar";
$text['button-back']['he'] = "חזרה";
$text['button-back']['de-at'] = "Zurück";
$text['button-back']['pl'] = "Wróć";
$text['button-back']['ro'] = "Înapoi";
$text['button-back']['uk'] = "Назад";
$text['button-back']['sv-se'] = "Tillbaka";
$text['button-back']['ar-eg'] = "رجوع";
$text['button-add']['en-us'] = "Add";
$text['button-add']['es-cl'] = "Agregar";
$text['button-add']['pt-pt'] = "Adicionar";
$text['button-add']['fr-fr'] = "Ajouter";
$text['button-add']['pt-br'] = "Adicionar";
$text['button-add']['he'] = " להוסיף";
$text['button-add']['de-at'] = "Hinzufügen";
$text['button-add']['pl'] = "Dodaj";
$text['button-add']['ro'] = "Adăuga";
$text['button-add']['uk'] = "Додати";
$text['button-add']['sv-se'] = "Lägg Till";
$text['button-add']['ar-eg'] = "اضافة";
?>
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+1 -1
View File
@@ -314,7 +314,7 @@ fieldset {
/*** Others ***/
#lang {
background: transparent;
font-size: .9em;
font-size: .9em;
left: auto;
right: 90px;
position:fixed;
+400 -417
View File
File diff suppressed because one or more lines are too long
+18 -19
View File
@@ -1,20 +1,19 @@
<?php
$apps[$x]['menu'][0]['title']['en-us'] = "Adminer";
$apps[$x]['menu'][0]['title']['es-cl'] = "Administrador";
$apps[$x]['menu'][0]['title']['de-de'] = "";
$apps[$x]['menu'][0]['title']['de-ch'] = "";
$apps[$x]['menu'][0]['title']['de-at'] = "";
$apps[$x]['menu'][0]['title']['fr-fr'] = "Admin BDD";
$apps[$x]['menu'][0]['title']['fr-ca'] = "";
$apps[$x]['menu'][0]['title']['fr-ch'] = "";
$apps[$x]['menu'][0]['title']['pt-pt'] = "Administrador";
$apps[$x]['menu'][0]['title']['pt-br'] = "Adminer";
$apps[$x]['menu'][0]['uuid'] = "1f59d07b-b4f7-4f9e-bde9-312cf491d66e";
$apps[$x]['menu'][0]['parent_uuid'] = "594d99c5-6128-9c88-ca35-4b33392cec0f";
$apps[$x]['menu'][0]['category'] = "external";
$apps[$x]['menu'][0]['icon'] = "glyphicon-new-window";
$apps[$x]['menu'][0]['path'] = "/app/adminer/index.php";
$apps[$x]['menu'][0]['groups'][] = "superadmin";
<?php
$apps[$x]['menu'][0]['title']['en-us'] = "Adminer";
$apps[$x]['menu'][0]['title']['es-cl'] = "Administrador";
$apps[$x]['menu'][0]['title']['de-de'] = "";
$apps[$x]['menu'][0]['title']['de-ch'] = "";
$apps[$x]['menu'][0]['title']['de-at'] = "";
$apps[$x]['menu'][0]['title']['fr-fr'] = "Admin BDD";
$apps[$x]['menu'][0]['title']['fr-ca'] = "";
$apps[$x]['menu'][0]['title']['fr-ch'] = "";
$apps[$x]['menu'][0]['title']['pt-pt'] = "Administrador";
$apps[$x]['menu'][0]['title']['pt-br'] = "";
$apps[$x]['menu'][0]['uuid'] = "1f59d07b-b4f7-4f9e-bde9-312cf491d66e";
$apps[$x]['menu'][0]['parent_uuid'] = "594d99c5-6128-9c88-ca35-4b33392cec0f";
$apps[$x]['menu'][0]['category'] = "external";
$apps[$x]['menu'][0]['path'] = "<!--{project_path}-->/app/adminer/index.php";
$apps[$x]['menu'][0]['groups'][] = "superadmin";
?>
+34 -40
View File
@@ -23,50 +23,44 @@
exit;
}
//auto login
if (isset($_SESSION['adminer']['auto_login']['boolean'])) {
function adminer_object() {
class AdminerSoftware extends Adminer {
function adminer_object() {
function name() {
// custom name in title and heading
return 'Adminer';
}
class AdminerSoftware extends Adminer {
function permanentLogin() {
// key used for permanent login
if ($_SESSION['adminer']['auto_login']['boolean'] == 'true') {
return "7bebc76d8680196752c6b961ef13c360";
}
}
function credentials() {
// server, username and password for connecting to database
if ($_SESSION['adminer']['auto_login']['boolean'] == 'true') {
global $db_host, $db_username, $db_password;
return array($db_host.':'.$db_port, $db_username, $db_password);
}
}
function database() {
// database name, will be escaped by Adminer
if ($_SESSION['adminer']['auto_login']['boolean'] == 'true') {
global $db_name;
return $db_name;
}
}
function login($login, $password) {
// validate user submitted credentials
return ($_SESSION['adminer']['auto_login']['boolean'] == 'true') ? true : false;
}
}
return new AdminerSoftware;
function name() {
// custom name in title and heading
return 'Adminer';
}
}
/*
function permanentLogin() {
// key used for permanent login
return "7bebc76d8680196752c6b961ef13c360";
}
function credentials() {
global $db_host, $db_username, $db_password;
// server, username and password for connecting to database
return array($db_host.':'.$db_port, $db_username, $db_password);
}
function database() {
global $db_name;
// database name, will be escaped by Adminer
return $db_name;
}
function login($login, $password) {
// validate user submitted credentials
return ($login == 'admin' && $password == '');
}
*/
}
return new AdminerSoftware;
}
// include original Adminer or Adminer Editor
include "adminer.php";
?>
?>
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+26 -6
View File
@@ -34,7 +34,7 @@ $text['message-restore_failed_upload']['en-us'] = "Restore Failed - File Upload
$text['message-restore_failed_upload']['es-cl'] = "Falló la recup - Cargar archivo Error";
$text['message-restore_failed_upload']['pt-pt'] = "Falha de restauração - Upload de arquivo falhou";
$text['message-restore_failed_upload']['fr-fr'] = "Echec de la restauration - Echec du téléchargement";
$text['message-restore_failed_upload']['pt-br'] = "Falha de restauração - Upload de arquivo falhou ";
$text['message-restore_failed_upload']['pt-br'] = "Falha de restauração - Atualização de arquivo falhou ";
$text['message-restore_failed_upload']['pl'] = "Przywracanie oraz przesłanie pliku nie powiodło się";
$text['message-restore_failed_upload']['sv-se'] = "Återställning Misslyckades - Filöverföring misslyckades";
$text['message-restore_failed_upload']['uk'] = "Помилка відновлення: неможливо завантажити файл";
@@ -54,7 +54,7 @@ $text['message-restore_completed']['en-us'] = "Restore Completed";
$text['message-restore_completed']['es-cl'] = "Restaurar Completado";
$text['message-restore_completed']['pt-pt'] = "Concluída a Restauração";
$text['message-restore_completed']['fr-fr'] = "Restaurer Terminé";
$text['message-restore_completed']['pt-br'] = "Restauração Concluída";
$text['message-restore_completed']['pt-br'] = "Concluida a restauração";
$text['message-restore_completed']['pl'] = "Przywracanie zakończono pomyślnie.";
$text['message-restore_completed']['sv-se'] = "Återställning Genomförd";
$text['message-restore_completed']['uk'] = "Відновлено";
@@ -94,7 +94,7 @@ $text['label-source_paths']['en-us'] = "Source Paths";
$text['label-source_paths']['es-cl'] = "Fuente Caminos";
$text['label-source_paths']['pt-pt'] = "Fonte Caminhos";
$text['label-source_paths']['fr-fr'] = "Chemins Source";
$text['label-source_paths']['pt-br'] = "Destino de origem";
$text['label-source_paths']['pt-br'] = "Destino da fonte";
$text['label-source_paths']['pl'] = " Ścieżki źródłowe";
$text['label-source_paths']['sv-se'] = "Källa Sökväg";
$text['label-source_paths']['uk'] = "Об’єкти для резервного копіювання";
@@ -104,7 +104,7 @@ $text['label-select_backup']['en-us'] = "Select Backup File";
$text['label-select_backup']['es-cl'] = "Seleccione Copia de Seguridad";
$text['label-select_backup']['pt-pt'] = "Selecione Backup";
$text['label-select_backup']['fr-fr'] = "Sélectionnez le Fichier de Sauvegarde";
$text['label-select_backup']['pt-br'] = "Selecione o arquivo de Backup";
$text['label-select_backup']['pt-br'] = "Selecione o Backup";
$text['label-select_backup']['pl'] = "Wybierz plik kopii zapasowej";
$text['label-select_backup']['sv-se'] = "Välj Backup Fil";
$text['label-select_backup']['uk'] = "Виберіть файл резервної копії";
@@ -164,7 +164,7 @@ $text['description-restore']['en-us'] = "To restore a backup from a file on your
$text['description-restore']['es-cl'] = "Para restaurar una copia de seguridad de un archivo en el sistema local, haga clic en 'Examinar' y seleccione el archivo de copia de seguridad que desee (por ejemplo, 'backup_[YYMMDD]_[HHMMSS].tgz'), a continuación, haga clic en el botón 'Restaurar'.";
$text['description-restore']['pt-pt'] = "Para restaurar um backup de um arquivo em seu sistema local, clique em 'Procurar' e selecione o arquivo de backup desejado (por exemplo, 'backup_[YYMMDD]_[HHMMSS].tgz'), então clique no botão 'Restaurar'.";
$text['description-restore']['fr-fr'] = "Pour restaurer une sauvegarde à partir d'un fichier sur votre système local, cliquez sur 'Parcourir' puis sélectionnez le fichier de sauvegarde souhaité (par exemple, 'backup_[YYMMDD]_[HHMMSS].tgz'), puis cliquez sur le bouton 'Restaurer'.";
$text['description-restore']['pt-br'] = "Para restaurar um backup de um arquivo em seu sistema local, clique em 'Procurar' e selecione o arquivo de backup desejado (por exemplo, 'backup_[AAMMDD]_[HHMMSS].tgz'), então clique no botão 'Restaurar'. ";
$text['description-restore']['pt-br'] = "Para restaurar um backup de um arquivo em seu sistema local, clique em 'Procurar' e selecione o arquivo de backup desejado (por exemplo, 'backup_[YYMMDD]_[HHMMSS].tgz'), então clique no botão 'Restaurar'. ";
$text['description-restore']['pl'] = "Aby przywrócić kopię zapasową z pliku w systemie lokalnym, kliknij 'Przeglądaj', wybierz żądany plik kopii zapasowej (np. 'Backup_ [ YYMMDD ] _ [ GGMMSS ] .tgz' ), a następnie kliknij przycisk 'Przywróć ustawienia domyślne'.";
$text['description-restore']['sv-se'] = "För att återställa en säkerhetskopia från en fil på ditt lokala system, klicka på ' Bläddra ' och välj sedan önskad säkerhetskopia (t.ex. . ' Backup_ [ ÅÅMMDD ] _ [ HHMMSS ] .tgz ' ) och klicka på ' Återställ ' -knappen.";
$text['description-restore']['uk'] = "Для відновлення резервної копії з файлу, натисніть кнопку 'Огляд' і виберіть потрібний файл резервної копії, а потім натисніть кнопку 'Відновити '.";
@@ -174,12 +174,22 @@ $text['description-backup']['en-us'] = "To create a backup of the Source Paths b
$text['description-backup']['es-cl'] = "Para crear una copia de seguridad de las rutas de origen siguientes (definidos en la configuración predeterminada), seleccione el formato de archivo deseado y tipo de destino.";
$text['description-backup']['pt-pt'] = "Para criar uma cópia de segurança dos caminhos de origem abaixo (definidos em Default Settings), selecione o formato de arquivo desejado e Target Type.";
$text['description-backup']['fr-fr'] = "Pour créer une sauvegarde des chemins source ci-dessous (défini dans les paramètres par défaut), sélectionnez le format de fichier désiré et Type de cible.";
$text['description-backup']['pt-br'] = "Para criar uma cópia de segurança dos caminhos de origem abaixo (definidos em Configurações Padrão), selecione o formato de arquivo desejado e Tipo de destino. ";
$text['description-backup']['pt-br'] = "Para criar uma cópia de segurança do caminhos de origem abaixo (definidos em Default Settings), selecione o formato de arquivo desejado e Target Type. ";
$text['description-backup']['pl'] = "Aby utworzyć kopię zapasową scieżki zródłowej zdefiniowanej w ustawieniach domyślnych, wybierz żądany format pliku i typ docelowy.";
$text['description-backup']['sv-se'] = "För att skapa en säkerhetskopia av Källa Sökväg nedan (som definieras i standardinställningar), välj önskad Filformat och Mål Typ.";
$text['description-backup']['uk'] = "Щоб створити резервну копію вказаних нижче об’єктів (вказано у налаштуваннях за замовчуванням), виберіть потрібний формат і призначення";
$text['description-backup']['de-at'] = "Um eine Sicherung der unten angeführten Quell Pfade (in Standard Einstellungen definiert) zu erstellen, wählen Sie das gewünschte Dateiformat und den Ziel Typ.";
$text['button-restore']['en-us'] = "Restore";
$text['button-restore']['es-cl'] = "Restaurar";
$text['button-restore']['pt-pt'] = "Restaurar";
$text['button-restore']['fr-fr'] = "Restaurer";
$text['button-restore']['pt-br'] = "Restaurar valores";
$text['button-restore']['pl'] = "Przywróć ustawienia domyślne";
$text['button-restore']['sv-se'] = "Återställ";
$text['button-restore']['uk'] = "Відновити";
$text['button-restore']['de-at'] = "Widerherstellen";
$text['button-generate']['en-us'] = "Generate";
$text['button-generate']['es-cl'] = "Generar";
$text['button-generate']['pt-pt'] = "Gerar";
@@ -190,4 +200,14 @@ $text['button-generate']['sv-se'] = "Generera";
$text['button-generate']['uk'] = "Згенерувати";
$text['button-generate']['de-at'] = "Generieren";
$text['button-download']['en-us'] = "Download";
$text['button-download']['es-cl'] = "Descargar";
$text['button-download']['pt-pt'] = "Baixar";
$text['button-download']['fr-fr'] = "Télécharger";
$text['button-download']['pt-br'] = "Download";
$text['button-download']['pl'] = "Pobierz";
$text['button-download']['sv-se'] = "Ladda Ned";
$text['button-download']['uk'] = "Скачати";
$text['button-download']['de-at'] = "Download";
?>
-1
View File
@@ -3,7 +3,6 @@
$apps[$x]['menu'][0]['title']['en-us'] = "Backup";
$apps[$x]['menu'][0]['title']['fr-fr'] = "Sauvegarde";
$apps[$x]['menu'][0]['title']['pl'] = "Kopie zapasowe";
$apps[$x]['menu'][0]['title']['pt-br'] = "Backup";
$apps[$x]['menu'][0]['title']['sv-se'] = "Backup";
$apps[$x]['menu'][0]['title']['uk'] = "Резервна копія";
$apps[$x]['menu'][0]['title']['de-at'] = "Sicherung";
+256 -257
View File
@@ -1,258 +1,257 @@
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2016
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists("backup_download")) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//download the backup
if ($_GET['a'] == "download" && permission_exists('backup_download')) {
$file_format = $_GET['file_format'];
$file_format = ($file_format != '') ? $file_format : 'tgz';
//build the backup file
$backup_path = ($_SESSION['server']['backup']['path'] != '') ? $_SESSION['server']['backup']['path'] : '/tmp';
$backup_file = 'backup_'.date('Ymd_His').'.'.$file_format;
if (count($_SESSION['backup']['path']) > 0) {
//determine compression method
switch ($file_format) {
case "rar" : $cmd = 'rar a -ow -r '; break;
case "zip" : $cmd = 'zip -r '; break;
case "tbz" : $cmd = 'tar -jvcf '; break;
default : $cmd = 'tar -zvcf ';
}
$cmd .= $backup_path.'/'.$backup_file.' ';
if (isset($_SESSION['backup']['path'])) foreach ($_SESSION['backup']['path'] as $value) {
$cmd .= $value.' ';
}
exec($cmd);
//download the file
session_cache_limiter('public');
if (file_exists($backup_path."/".$backup_file)) {
$fd = fopen($backup_path."/".$backup_file, 'rb');
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename='.$backup_file);
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Length: ".filesize($backup_path."/".$backup_file));
header("Pragma: no-cache");
header("Expires: 0");
ob_clean();
fpassthru($fd);
exit;
}
else {
//set response message
$_SESSION["message"] = $text['message-backup_failed_format'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
else {
//set response message
$_SESSION["message"] = $text['message-backup_failed_paths'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
//script a backup (cron)
if ($_GET['a'] == "script" && permission_exists('backup_download')) {
$file_format = $_GET['file_format'];
$target_type = "script";
$backup = new backup;
$command = $backup->command("backup", $file_format);
}
//restore a backup
if ($_POST['a'] == "restore" && permission_exists('backup_upload')) {
$backup_path = ($_SESSION['server']['backup']['path'] != '') ? $_SESSION['server']['backup']['path'] : '/tmp';
$backup_file = $_FILES['backup_file']['name'];
if (is_uploaded_file($_FILES['backup_file']['tmp_name'])) {
//move temp file to backup path
move_uploaded_file($_FILES['backup_file']['tmp_name'], $backup_path.'/'.$backup_file);
//determine file format and restore backup
$file_format = pathinfo($_FILES['backup_file']['name'], PATHINFO_EXTENSION);
$valid_format = true;
switch ($file_format) {
case "rar" : $cmd = 'rar x -ow -o+ '.$backup_path.'/'.$backup_file.' /'; break;
case "zip" : $cmd = 'umask 755; unzip -o -qq -X -K '.$backup_path.'/'.$backup_file.' -d /'; break;
case "tbz" : $cmd = 'tar -xvpjf '.$backup_path.'/'.$backup_file.' -C /'; break;
case "tgz" : $cmd = 'tar -xvpzf '.$backup_path.'/'.$backup_file.' -C /'; break;
default: $valid_format = false;
}
if (!$valid_format) {
@unlink($backup_path.'/'.$backup_file);
$_SESSION["message"] = $text['message-restore_failed_format'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
else {
exec($cmd);
//set response message
$_SESSION["message"] = $text['message-restore_completed'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
else {
//set response message
$_SESSION["message"] = $text['message-restore_failed_upload'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
//add the header
require_once "resources/header.php";
$document['title'] = $text['title-destinations'];
// backup type switch javascript
echo "<script language='javascript' type='text/javascript'>";
echo " var fade_speed = 400;";
echo " function toggle_target(first_elem, second_elem) {";
echo " $('#command').fadeOut(fade_speed);";
echo " $('#'+first_elem).fadeToggle(fade_speed, function() {";
echo " $('#command').slideUp(fade_speed, function() {";
echo " $('#'+second_elem).fadeToggle(fade_speed);";
echo " });";
echo " });";
echo " }";
echo "</script>";
//show the content
echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'>\n";
echo " <tr>\n";
echo " <td width='50%' valign='top'>\n";
echo "<b>".$text['header-backup']."</b>\n";
echo "<br><br>";
echo $text['description-backup']."\n";
echo "<br><br><br>";
echo "<table border='0' cellpadding='0' cellspacing='0' width='100%'>\n";
echo "<tr>\n";
echo "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-source_paths']."\n";
echo "</td>\n";
echo "<td width='70%' class='vtable' align='left'>\n";
if (isset($_SESSION['backup']['path'])) foreach ($_SESSION['backup']['path'] as $backup_path) {
echo $backup_path."<br>\n";
}
echo "</td>";
echo "</tr>";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-file_format']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='file_format' id='file_format'>";
echo " <option value='tgz' ".(($file_format == 'tgz') ? 'selected' : null).">TAR GZIP</option>";
echo " <option value='tbz' ".(($file_format == 'tbz') ? 'selected' : null).">TAR BZIP</option>";
echo " <option value='rar' ".(($file_format == 'rar') ? 'selected' : null).">RAR</option>";
echo " <option value='zip' ".(($file_format == 'zip') ? 'selected' : null).">ZIP</option>";
echo " </select>";
echo "</td>";
echo "</tr>";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-target_type']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='target_type' id='target_type' onchange=\"(this.selectedIndex == 0) ? toggle_target('btn_script','btn_download') : toggle_target('btn_download','btn_script');\">";
echo " <option value='download'>".$text['option-file_download']."</option>";
echo " <option value='script' ".(($target_type == 'script') ? 'selected' : null).">".$text['option-command']."</option>";
echo " </select>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "<div id='command' ".(($command == '') ? "style='display: none;'" : null).">";
echo "<table border='0' cellpadding='0' cellspacing='0' width='100%'>\n";
echo "<tr>\n";
echo "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-command']."\n";
echo "</td>\n";
echo "<td width='70%' class='vtable' align='left'>\n";
echo " <textarea class='formfld' style='width: 100%; height: 200px; font-family: courier;'>".$command."</textarea>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<br>";
echo "<div align='right'>";
echo "<input type='button' id='btn_script' class='btn' ".(($target_type != 'script') ? "style='display: none;'" : null)." value='".$text['button-generate']."' onclick=\"document.location.href='".PROJECT_PATH."/app/backup/index.php?a=script&file_format='+document.getElementById('file_format').options[document.getElementById('file_format').selectedIndex].value;\">";
echo "<input type='button' id='btn_download' class='btn' ".(($target_type == 'script') ? "style='display: none;'" : null)." value='".$text['button-download']."' onclick=\"document.location.href='".PROJECT_PATH."/app/backup/index.php?a=download&file_format='+document.getElementById('file_format').options[document.getElementById('file_format').selectedIndex].value;\">";
echo "</div>";
echo "<br><br>";
if (permission_exists("backup_upload")) {
echo " </td>\n";
echo " <td width='20'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
echo " <td width='50%' valign='top'>\n";
echo " <b>".$text['header-restore']."</b>\n";
echo " <br><br>";
echo $text['description-restore']."\n";
echo " <br><br><br>";
echo " <div align='center'>";
echo " <form name='frmrestore' method='post' enctype='multipart/form-data' action=''>";
echo " <input type='hidden' name='a' value='restore'>";
echo " <table>";
echo " <tr>";
echo " <td nowrap>".$text['label-select_backup']."&nbsp;</td>";
echo " <td><input type='file' class='formfld fileinput' name='backup_file'></td>";
echo " <td><input type='submit' class='btn' value='".$text['button-restore']."'></td>";
echo " </tr>";
echo " </table>";
echo " <br>";
echo " <span style='font-weight: bold; text-decoration: underline; color: #000;'>".$text['description-restore_warning']."</span>";
echo " </form>\n";
echo " </div>";
echo " </td>\n";
}
echo " </tr>\n";
echo "</table>\n";
echo "<br><br>";
//show the footer
require_once "resources/footer.php";
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2012
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists("backup_download")) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//download the backup
if ($_GET['a'] == "download" && permission_exists('backup_download')) {
$file_format = $_GET['file_format'];
$file_format = ($file_format != '') ? $file_format : 'tgz';
//build the backup file
$backup_path = ($_SESSION['server']['backup']['path'] != '') ? $_SESSION['server']['backup']['path'] : '/tmp';
$backup_file = 'backup_'.date('Ymd_His').'.'.$file_format;
if (count($_SESSION['backup']['path']) > 0) {
//determine compression method
switch ($file_format) {
case "rar" : $cmd = 'rar a -ow -r '; break;
case "zip" : $cmd = 'zip -r '; break;
case "tbz" : $cmd = 'tar -jvcf '; break;
default : $cmd = 'tar -zvcf ';
}
$cmd .= $backup_path.'/'.$backup_file.' ';
foreach ($_SESSION['backup']['path'] as $value) {
$cmd .= $value.' ';
}
exec($cmd);
//download the file
session_cache_limiter('public');
if (file_exists($backup_path."/".$backup_file)) {
$fd = fopen($backup_path."/".$backup_file, 'rb');
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename='.$backup_file);
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Length: ".filesize($backup_path."/".$backup_file));
header("Pragma: no-cache");
header("Expires: 0");
ob_clean();
fpassthru($fd);
exit;
}
else {
//set response message
$_SESSION["message"] = $text['message-backup_failed_format'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
else {
//set response message
$_SESSION["message"] = $text['message-backup_failed_paths'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
//script a backup (cron)
if ($_GET['a'] == "script" && permission_exists('backup_download')) {
$file_format = $_GET['file_format'];
$target_type = "script";
$backup = new backup;
$command = $backup->command("backup", $file_format);
}
//restore a backup
if ($_POST['a'] == "restore" && permission_exists('backup_upload')) {
$backup_path = ($_SESSION['server']['backup']['path'] != '') ? $_SESSION['server']['backup']['path'] : '/tmp';
$backup_file = $_FILES['backup_file']['name'];
if (is_uploaded_file($_FILES['backup_file']['tmp_name'])) {
//move temp file to backup path
move_uploaded_file($_FILES['backup_file']['tmp_name'], $backup_path.'/'.$backup_file);
//determine file format and restore backup
$file_format = pathinfo($_FILES['backup_file']['name'], PATHINFO_EXTENSION);
$valid_format = true;
switch ($file_format) {
case "rar" : $cmd = 'rar x -ow -o+ '.$backup_path.'/'.$backup_file.' /'; break;
case "zip" : $cmd = 'umask 755; unzip -o -qq -X -K '.$backup_path.'/'.$backup_file.' -d /'; break;
case "tbz" : $cmd = 'tar -xvpjf '.$backup_path.'/'.$backup_file.' -C /'; break;
case "tgz" : $cmd = 'tar -xvpzf '.$backup_path.'/'.$backup_file.' -C /'; break;
default: $valid_format = false;
}
if (!$valid_format) {
@unlink($backup_path.'/'.$backup_file);
$_SESSION["message"] = $text['message-restore_failed_format'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
else {
exec($cmd);
//set response message
$_SESSION["message"] = $text['message-restore_completed'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
else {
//set response message
$_SESSION["message"] = $text['message-restore_failed_upload'];
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
//add the header
require_once "resources/header.php";
$document['title'] = $text['title-destinations'];
// backup type switch javascript
echo "<script language='javascript' type='text/javascript'>";
echo " var fade_speed = 400;";
echo " function toggle_target(first_elem, second_elem) {";
echo " $('#command').fadeOut(fade_speed);";
echo " $('#'+first_elem).fadeToggle(fade_speed, function() {";
echo " $('#command').slideUp(fade_speed, function() {";
echo " $('#'+second_elem).fadeToggle(fade_speed);";
echo " });";
echo " });";
echo " }";
echo "</script>";
//show the content
echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'>\n";
echo " <tr>\n";
echo " <td width='50%' valign='top'>\n";
echo "<b>".$text['header-backup']."</b>\n";
echo "<br><br>";
echo $text['description-backup']."\n";
echo "<br><br><br>";
echo "<table border='0' cellpadding='0' cellspacing='0' width='100%'>\n";
echo "<tr>\n";
echo "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-source_paths']."\n";
echo "</td>\n";
echo "<td width='70%' class='vtable' align='left'>\n";
foreach ($_SESSION['backup']['path'] as $backup_path) {
echo $backup_path."<br>\n";
}
echo "</td>";
echo "</tr>";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-file_format']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='file_format' id='file_format'>";
echo " <option value='tgz' ".(($file_format == 'tgz') ? 'selected' : null).">TAR GZIP</option>";
echo " <option value='tbz' ".(($file_format == 'tbz') ? 'selected' : null).">TAR BZIP</option>";
echo " <option value='rar' ".(($file_format == 'rar') ? 'selected' : null).">RAR</option>";
echo " <option value='zip' ".(($file_format == 'zip') ? 'selected' : null).">ZIP</option>";
echo " </select>";
echo "</td>";
echo "</tr>";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-target_type']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='target_type' id='target_type' onchange=\"(this.selectedIndex == 0) ? toggle_target('btn_script','btn_download') : toggle_target('btn_download','btn_script');\">";
echo " <option value='download'>".$text['option-file_download']."</option>";
echo " <option value='script' ".(($target_type == 'script') ? 'selected' : null).">".$text['option-command']."</option>";
echo " </select>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "<div id='command' ".(($command == '') ? "style='display: none;'" : null).">";
echo "<table border='0' cellpadding='0' cellspacing='0' width='100%'>\n";
echo "<tr>\n";
echo "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-command']."\n";
echo "</td>\n";
echo "<td width='70%' class='vtable' align='left'>\n";
echo " <textarea class='formfld' style='width: 100%; height: 200px; font-family: courier;'>".$command."</textarea>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<br>";
echo "<div align='right'>";
echo "<input type='button' id='btn_script' class='btn' ".(($target_type != 'script') ? "style='display: none;'" : null)." value='".$text['button-generate']."' onclick=\"document.location.href='".PROJECT_PATH."/app/backup/index.php?a=script&file_format='+document.getElementById('file_format').options[document.getElementById('file_format').selectedIndex].value;\">";
echo "<input type='button' id='btn_download' class='btn' ".(($target_type == 'script') ? "style='display: none;'" : null)." value='".$text['button-download']."' onclick=\"document.location.href='".PROJECT_PATH."/app/backup/index.php?a=download&file_format='+document.getElementById('file_format').options[document.getElementById('file_format').selectedIndex].value;\">";
echo "</div>";
echo "<br><br>";
echo " </td>\n";
echo " <td width='20'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
echo " <td width='50%' valign='top'>\n";
echo "<b>".$text['header-restore']."</b>\n";
echo "<br><br>";
echo $text['description-restore']."\n";
echo "<br><br><br>";
echo "<div align='center'>";
echo "<form name='frmrestore' method='post' enctype='multipart/form-data' action=''>";
echo "<input type='hidden' name='a' value='restore'>";
echo "<table>";
echo " <tr>";
echo " <td nowrap>".$text['label-select_backup']."&nbsp;</td>";
echo " <td><input type='file' class='formfld fileinput' name='backup_file'></td>";
echo " <td><input type='submit' class='btn' value='".$text['button-restore']."'></td>";
echo " </tr>";
echo "</table>";
echo "<br>";
echo "<span style='font-weight: bold; text-decoration: underline; color: #000;'>".$text['description-restore_warning']."</span>";
echo "</form>\n";
echo "</div>";
echo " </td>\n";
echo " </tr>\n";
echo "</table>\n";
echo "<br><br>";
//show the footer
require_once "resources/footer.php";
?>
Regular → Executable
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+5 -7
View File
@@ -17,7 +17,7 @@
$apps[$x]['description']['fr-ca'] = "";
$apps[$x]['description']['fr-ch'] = "";
$apps[$x]['description']['pt-pt'] = "Uma ferramenta para bloquear números indesejados";
$apps[$x]['description']['pt-br'] = "Uma ferramenta para bloquear números que entram.";
$apps[$x]['description']['pt-br'] = "";
//permission details
$y = 0;
@@ -25,18 +25,22 @@
$apps[$x]['permissions'][$y]['menu']['uuid'] = "29295c90-b1b9-440b-9c7E-c8363c6e8975";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$apps[$x]['permissions'][$y]['groups'][] = "admin";
$apps[$x]['permissions'][$y]['groups'][] = "user";
$y++;
$apps[$x]['permissions'][$y]['name'] = "call_block_add";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$apps[$x]['permissions'][$y]['groups'][] = "admin";
$apps[$x]['permissions'][$y]['groups'][] = "user";
$y++;
$apps[$x]['permissions'][$y]['name'] = "call_block_edit";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$apps[$x]['permissions'][$y]['groups'][] = "admin";
$apps[$x]['permissions'][$y]['groups'][] = "user";
$y++;
$apps[$x]['permissions'][$y]['name'] = "call_block_delete";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$apps[$x]['permissions'][$y]['groups'][] = "admin";
$apps[$x]['permissions'][$y]['groups'][] = "user";
$y++;
//schema details
@@ -63,36 +67,30 @@
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "blocked_caller_name";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the name.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Insira o nome.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "call_block_number";
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "blocked_caller_number";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the full phone number.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Insira o número de telefone completo.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "call_block_count";
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "blocked_call_count";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Number of calls.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Número de chamadas.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "call_block_action";
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "blocked_call_action";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Action for call.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Ação para a chamada.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "date_added";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Date/Time number was added.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Data/Hora que o número foi adicionado.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "call_block_enabled";
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "block_call_enabled";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enable/disable blocking the call.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Habilitar/desabilitar bloqueamento da chamada.";
$z++;
?>
+163 -35
View File
@@ -19,7 +19,7 @@ $text['prompt-block_recent_name']['es-cl'] = "Bloqueo de llamadas recientes - Ed
$text['prompt-block_recent_name']['pt-pt'] = "Bloquear Chamadas Recentes - Edite o nome, se desejar...";
$text['prompt-block_recent_name']['fr-fr'] = "Bloquer appels récents - Modifiez le nom, si vous le souhaitez...";
$text['prompt-block_recent_name']['nl-nl'] = "";
$text['prompt-block_recent_name']['pt-br'] = "Bloquear chamadas recentes, edite o nome se assim desejar...";
$text['prompt-block_recent_name']['pt-br'] = "Bloquear chamadas recentes, edite o nome se assim desejar";
$text['prompt-block_recent_name']['pl'] = "Zablokuj ostatnią rozmowę. Edytuj nazwę";
$text['prompt-block_recent_name']['sv-se'] = "Blockera Senaste Samtal, meditera namnet om nödvändigt...";
$text['prompt-block_recent_name']['uk'] = "Блокувати недавній дзвінок. Відредагуйте назву за бажанням";
@@ -33,7 +33,7 @@ $text['label-update-complete']['es-cl'] = "Actualización Completa";
$text['label-update-complete']['pt-pt'] = "Actualização Efectuada";
$text['label-update-complete']['fr-fr'] = "Mise à jour effectuée";
$text['label-update-complete']['nl-nl'] = "";
$text['label-update-complete']['pt-br'] = "Atualização Completa";
$text['label-update-complete']['pt-br'] = "Atualização efetuada";
$text['label-update-complete']['pl'] = "Zaktualizowano poprawnie";
$text['label-update-complete']['sv-se'] = "Uppdatering Klar";
$text['label-update-complete']['uk'] = "Оновлено";
@@ -42,6 +42,20 @@ $text['label-update-complete']['de-at'] = "Aktualisierung abgeschlossen";
$text['label-update-complete']['ar-eg'] = "اكتمال التحديث";
$text['label-update-complete']['he'] = "העדכון הושלם";
$text['label-true']['en-us'] = "True";
$text['label-true']['es-cl'] = "Verdadero";
$text['label-true']['pt-pt'] = "Sim";
$text['label-true']['fr-fr'] = "Oui";
$text['label-true']['nl-nl'] = "";
$text['label-true']['pt-br'] = "Sim";
$text['label-true']['pl'] = "Tak";
$text['label-true']['sv-se'] = "Sann";
$text['label-true']['uk'] = "Так";
$text['label-true']['ro'] = "";
$text['label-true']['de-at'] = "Ein";
$text['label-true']['ar-eg'] = "صحيح";
$text['label-true']['he'] = "חיובי";
$text['label-reject']['en-us'] = "Reject";
$text['label-reject']['es-cl'] = "Rechazar";
$text['label-reject']['pt-pt'] = "Rejeitar";
@@ -61,7 +75,7 @@ $text['label-provide-number']['es-cl'] = "Por favor agregue: Número";
$text['label-provide-number']['pt-pt'] = "Por favor indique: Número";
$text['label-provide-number']['fr-fr'] = "Merci d'indiquer: Numéro";
$text['label-provide-number']['nl-nl'] = "";
$text['label-provide-number']['pt-br'] = "Por favor indique: Número";
$text['label-provide-number']['pt-br'] = "Por favor indique um número";
$text['label-provide-number']['pl'] = " Wprowadź numer";
$text['label-provide-number']['sv-se'] = "Ange: Nummer";
$text['label-provide-number']['uk'] = "Введіть номер";
@@ -75,7 +89,7 @@ $text['label-provide-name']['es-cl'] = "Por favor agregue: Nombre";
$text['label-provide-name']['pt-pt'] = "Por favor indique: Nome";
$text['label-provide-name']['fr-fr'] = "Merci d'indiquer: Nom";
$text['label-provide-name']['nl-nl'] = "";
$text['label-provide-name']['pt-br'] = "Por favor indique: Nome";
$text['label-provide-name']['pt-br'] = "Por favor indique um nome";
$text['label-provide-name']['pl'] = " Wprowadź nazwę ";
$text['label-provide-name']['sv-se'] = "Ange: Namn";
$text['label-provide-name']['uk'] = "Введіть назву";
@@ -89,7 +103,7 @@ $text['label-provide-enabled']['es-cl'] = "Por favor agregue: Activo";
$text['label-provide-enabled']['pt-pt'] = "Por favor indique: Activado";
$text['label-provide-enabled']['fr-fr'] = "Merci d'indiquer: Actif";
$text['label-provide-enabled']['nl-nl'] = "";
$text['label-provide-enabled']['pt-br'] = "Por favor indique se está habilitado";
$text['label-provide-enabled']['pt-br'] = "Por favor indique se esta ativado";
$text['label-provide-enabled']['pl'] = " Wprowadź: Włączony";
$text['label-provide-enabled']['sv-se'] = "Ange: Aktiverad";
$text['label-provide-enabled']['uk'] = "Включити/відключити";
@@ -112,6 +126,20 @@ $text['label-number']['de-at'] = "Nummer";
$text['label-number']['ar-eg'] = "رقم";
$text['label-number']['he'] = "מספר";
$text['label-name']['en-us'] = "Name";
$text['label-name']['es-cl'] = "Nombre";
$text['label-name']['pt-pt'] = "Nome";
$text['label-name']['fr-fr'] = "Nom";
$text['label-name']['nl-nl'] = "";
$text['label-name']['pt-br'] = "Nome";
$text['label-name']['pl'] = "Nazwa";
$text['label-name']['sv-se'] = "Namn";
$text['label-name']['uk'] = "Назва";
$text['label-name']['ro'] = "Nume";
$text['label-name']['de-at'] = "Name";
$text['label-name']['ar-eg'] = "الأسم";
$text['label-name']['he'] = "שם";
$text['label-message']['en-us'] = "Message";
$text['label-message']['es-cl'] = "Mensaje";
$text['label-message']['pt-pt'] = "Mensagem";
@@ -154,6 +182,34 @@ $text['label-inbound']['de-at'] = "Eingehend";
$text['label-inbound']['ar-eg'] = "";
$text['label-inbound']['he'] = "";
$text['label-false']['en-us'] = "False";
$text['label-false']['es-cl'] = "falso";
$text['label-false']['pt-pt'] = "Não";
$text['label-false']['fr-fr'] = "Non";
$text['label-false']['nl-nl'] = "";
$text['label-false']['pt-br'] = "Não";
$text['label-false']['pl'] = "Nie";
$text['label-false']['sv-se'] = "Falsk";
$text['label-false']['uk'] = "Ні";
$text['label-false']['ro'] = "";
$text['label-false']['de-at'] = "Aus";
$text['label-false']['ar-eg'] = "";
$text['label-false']['he'] = "";
$text['label-enabled']['en-us'] = "Enabled";
$text['label-enabled']['es-cl'] = "Activo";
$text['label-enabled']['pt-pt'] = "Activado";
$text['label-enabled']['fr-fr'] = "Actif";
$text['label-enabled']['nl-nl'] = "";
$text['label-enabled']['pt-br'] = "Habilitado";
$text['label-enabled']['pl'] = "Włączony";
$text['label-enabled']['sv-se'] = "Aktiverad";
$text['label-enabled']['uk'] = "Включено";
$text['label-enabled']['ro'] = "";
$text['label-enabled']['de-at'] = "Aktiv";
$text['label-enabled']['ar-eg'] = "مفعل";
$text['label-enabled']['he'] = "";
$text['label-edit-note']['en-us'] = "Block calls from a number. Edit the name and enable/disable below.";
$text['label-edit-note']['es-cl'] = "Bloquea llamadas desde un número. Edite el nombre y active/desactive abajo.";
$text['label-edit-note']['pt-pt'] = "Bloquear chamadas a partir de um número. Edite o nome e active/desactive.";
@@ -243,7 +299,7 @@ $text['label-date-added']['es-cl'] = "Fecha de ingreso";
$text['label-date-added']['pt-pt'] = "Data adicionada";
$text['label-date-added']['fr-fr'] = "Date d'ajout";
$text['label-date-added']['nl-nl'] = "";
$text['label-date-added']['pt-br'] = "Data adicionada";
$text['label-date-added']['pt-br'] = "Data acionada";
$text['label-date-added']['pl'] = "Dodano datę";
$text['label-date-added']['sv-se'] = "Datum Tillagt";
$text['label-date-added']['uk'] = "Додано";
@@ -294,31 +350,6 @@ $text['label-busy']['de-at'] = "Besetzt";
$text['label-busy']['ar-eg'] = "مشغول";
$text['label-busy']['he'] = "תפוס";
$text['label-hold']['en-us'] = "Hold";
$text['label-hold']['es-cl'] = "";
$text['label-hold']['pt-pt'] = "";
$text['label-hold']['fr-fr'] = "";
$text['label-hold']['nl-nl'] = "";
$text['label-hold']['pt-br'] = "Espera";
$text['label-hold']['pl'] = "";
$text['label-hold']['sv-se'] = "";
$text['label-hold']['uk'] = "";
$text['label-hold']['ro'] = "";
$text['label-hold']['de-at'] = "";
$text['label-hold']['ar-eg'] = "";
$text['label-hold']['he'] = "";
$text['label-voicemail']['en-us'] = "Voicemail";
$text['label-voicemail']['es-cl'] = "Correo de Voz";
$text['label-voicemail']['pt-pt'] = "Correio de Voz";
$text['label-voicemail']['fr-fr'] = "Messagerie Vocale";
$text['label-voicemail']['pt-br'] = "Correio de voz";
$text['label-voicemail']['pl'] = "Poczta głosowa";
$text['label-voicemail']['sv-se'] = "Röstbrevlåda";
$text['label-voicemail']['uk'] = "Голосова пошта";
$text['label-voicemail']['de-at'] = "Mailbox";
$text['label-voicemail']['he'] = "תא קולי";
$text['label-add-note']['en-us'] = "Block calls from a number. Either select a number from the list above or enter the number, name and enable below.";
$text['label-add-note']['es-cl'] = "Bloquea llamadas desde un número. Puede elegir un número de la lista de arriba o ingresar el n&uacute, nombre y activarlo abajo.";
$text['label-add-note']['pt-pt'] = "Bloquear chamadas a partir de um número. Seleccione um número a partir da lista indicada ou introduza um número, nome e active.";
@@ -366,7 +397,7 @@ $text['description-number']['es-cl'] = "Ingrese el nú exacto.";
$text['description-number']['pt-pt'] = "Introduza o número exacto.";
$text['description-number']['fr-fr'] = "Entrer le numéro exact.";
$text['description-number']['nl-nl'] = "";
$text['description-number']['pt-br'] = "Insira o número exato.";
$text['description-number']['pt-br'] = "Insira o número exato";
$text['description-number']['pl'] = "Wprowadź dokładny numer.";
$text['description-number']['sv-se'] = "Ange det exakta numret";
$text['description-number']['uk'] = "Введіть точний номер";
@@ -380,7 +411,7 @@ $text['description-name']['es-cl'] = "Introduzca el nombre.";
$text['description-name']['pt-pt'] = "Digite o nome.";
$text['description-name']['fr-fr'] = "Entrez le nom.";
$text['description-name']['nl-nl'] = "";
$text['description-name']['pt-br'] = "Insira o nome.";
$text['description-name']['pt-br'] = "Insira o nome do menu";
$text['description-name']['pl'] = "Wprowadź nazwę";
$text['description-name']['sv-se'] = "Skriv in namnet.";
$text['description-name']['uk'] = "Введіть назву меню";
@@ -394,7 +425,7 @@ $text['description-enable']['es-cl'] = "Seleccione verdadero para activar el blo
$text['description-enable']['pt-pt'] = "Escolha 'sim' para activar o bloqueio de chamadas para este número.";
$text['description-enable']['fr-fr'] = "Choisir Oui pour activer le bloquage d'appel.";
$text['description-enable']['nl-nl'] = "";
$text['description-enable']['pt-br'] = "Escolha 'sim' para ativar o bloqueio de chamadas para este número.";
$text['description-enable']['pt-br'] = "Escolha sim para ativar o bloqueio de chamadas para este número";
$text['description-enable']['pl'] = "Ustaw wartość na TAK, aby umożliwić blokowanie tego numeru ";
$text['description-enable']['sv-se'] = "Välj Sann för att blockera detta nummer.";
$text['description-enable']['uk'] = "Виберіть 'Так', щоб блокувати дзвінки з даного номера.";
@@ -422,7 +453,7 @@ $text['description-action']['es-cl'] = "Configurar una acción para llamadas des
$text['description-action']['pt-pt'] = "Escolha uma acção para chamadas com origem neste número.";
$text['description-action']['fr-fr'] = "Choisir une action pour les appels venant de ce numéro.";
$text['description-action']['nl-nl'] = "";
$text['description-action']['pt-br'] = "Escolha uma ação para chamadas reailzadas por este número.";
$text['description-action']['pt-br'] = "Escolha uma ação para chamadas com origem neste número";
$text['description-action']['pl'] = "Ustaw co zrobić w przypadku polaczeń z tego numeru.";
$text['description-action']['sv-se'] = "Välj en aktion för samtal från detta nummer.";
$text['description-action']['uk'] = "Встановіть дію для дзвінків з цього номера.";
@@ -431,4 +462,101 @@ $text['description-action']['de-at'] = "Setzen Sie eine Aktion für Anrufe von d
$text['description-action']['ar-eg'] = "";
$text['description-action']['he'] = "";
$text['confirm-delete']['en-us'] = "Do you really want to delete this?";
$text['confirm-delete']['es-cl'] = "¿Realmente desea eliminar el número?";
$text['confirm-delete']['pt-pt'] = "Deseja realmente remover isto?";
$text['confirm-delete']['fr-fr'] = "Voulez-vous vraiment supprimer cela?";
$text['confirm-delete']['nl-nl'] = "";
$text['confirm-delete']['pt-br'] = "Deseja realmente remover isto?";
$text['confirm-delete']['pl'] = "Czy na pewno chcesz to usunąć?";
$text['confirm-delete']['sv-se'] = "Vill du verkligen ta bort detta?";
$text['confirm-delete']['uk'] = "Ви дійсно бажаєте це видалити?";
$text['confirm-delete']['ro'] = "";
$text['confirm-delete']['de-at'] = "Wollen Sie das wirklich löschen?";
$text['confirm-delete']['ar-eg'] = "";
$text['confirm-delete']['he'] = "?בטוח שאתה רוצה למחוק";
$text['button-view']['en-us'] = "View";
$text['button-view']['es-cl'] = "Ver";
$text['button-view']['pt-pt'] = "Vista";
$text['button-view']['fr-fr'] = "Voir";
$text['button-view']['nl-nl'] = "";
$text['button-view']['pt-br'] = "Visualizar";
$text['button-view']['pl'] = "Widok";
$text['button-view']['sv-se'] = "Visa";
$text['button-view']['uk'] = "Перегляд";
$text['button-view']['ro'] = "Vizualizare";
$text['button-view']['de-at'] = "Ansicht";
$text['button-view']['ar-eg'] = "عرض";
$text['button-view']['he'] = "הצג";
$text['button-save']['en-us'] = "Save";
$text['button-save']['es-cl'] = "Guardar";
$text['button-save']['pt-pt'] = "Guardar";
$text['button-save']['fr-fr'] = "Sauvegarder";
$text['button-save']['nl-nl'] = "";
$text['button-save']['pt-br'] = "Salvar";
$text['button-save']['pl'] = "Zachowaj";
$text['button-save']['sv-se'] = "Spara";
$text['button-save']['uk'] = "Зберегти";
$text['button-save']['ro'] = "Salvează";
$text['button-save']['de-at'] = "Speichern";
$text['button-save']['ar-eg'] = "حفظ";
$text['button-save']['he'] = "שמור";
$text['button-edit']['en-us'] = "Edit";
$text['button-edit']['es-cl'] = "Editar";
$text['button-edit']['pt-pt'] = "Editar";
$text['button-edit']['fr-fr'] = "Editer";
$text['button-edit']['nl-nl'] = "";
$text['button-edit']['pt-br'] = "Editar";
$text['button-edit']['pl'] = "Edytuj";
$text['button-edit']['sv-se'] = "Editera";
$text['button-edit']['uk'] = "Редагувати";
$text['button-edit']['ro'] = "Editează";
$text['button-edit']['de-at'] = "Bearbeiten";
$text['button-edit']['ar-eg'] = "تعديل";
$text['button-edit']['he'] = "ערוך";
$text['button-delete']['en-us'] = "Delete";
$text['button-delete']['es-cl'] = "Eliminar";
$text['button-delete']['pt-pt'] = "Remover";
$text['button-delete']['fr-fr'] = "Supprimer";
$text['button-delete']['nl-nl'] = "";
$text['button-delete']['pt-br'] = "Remover";
$text['button-delete']['pl'] = "Usuń";
$text['button-delete']['sv-se'] = "Ta Bort";
$text['button-delete']['uk'] = "Видалити";
$text['button-delete']['ro'] = "";
$text['button-delete']['de-at'] = "Löschen";
$text['button-delete']['ar-eg'] = "مسح";
$text['button-delete']['he'] = "מחק";
$text['button-back']['en-us'] = "Back";
$text['button-back']['es-cl'] = "Volver";
$text['button-back']['pt-pt'] = "Voltar";
$text['button-back']['fr-fr'] = "Retour";
$text['button-back']['nl-nl'] = "";
$text['button-back']['pt-br'] = "Voltar";
$text['button-back']['pl'] = "Wróć";
$text['button-back']['sv-se'] = "Tillbaka";
$text['button-back']['uk'] = "Назад";
$text['button-back']['ro'] = "Înapoi";
$text['button-back']['de-at'] = "Zurück";
$text['button-back']['ar-eg'] = "رجوع";
$text['button-back']['he'] = "חזרה";
$text['button-add']['en-us'] = "Add";
$text['button-add']['pt-pt'] = "Adicionar";
$text['button-add']['fr-fr'] = "Ajouter";
$text['button-add']['nl-nl'] = "";
$text['button-add']['pt-br'] = "Adicionar";
$text['button-add']['pl'] = "Dodaj";
$text['button-add']['sv-se'] = "Lägg Till";
$text['button-add']['uk'] = "Додати";
$text['button-add']['ro'] = "Adaugă";
$text['button-add']['de-at'] = "Hinzufügen";
$text['button-add']['ar-eg'] = "اضافة";
$text['button-add']['he'] = "";
?>
+2 -1
View File
@@ -16,7 +16,8 @@ $apps[$x]['menu'][0]['uuid'] = "29295c90-b1b9-440b-9c7E-c8363c6e8975";
$apps[$x]['menu'][0]['parent_uuid'] = "fd29e39c-c936-f5fc-8e2b-611681b266b5";
$apps[$x]['menu'][0]['category'] = "internal";
$apps[$x]['menu'][0]['path'] = "/app/call_block/call_block.php";
$apps[$x]['menu'][0]['groups'][] = "superadmin";
$apps[$x]['menu'][0]['groups'][] = "user";
$apps[$x]['menu'][0]['groups'][] = "admin";
$apps[$x]['menu'][0]['groups'][] = "superadmin";
?>
+2 -2
View File
@@ -80,7 +80,7 @@ require_once "resources/require.php";
}
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 100;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
@@ -139,7 +139,7 @@ require_once "resources/require.php";
}
echo " <td valign='top' class='".$row_style[$c]."'>".$tmp_date_added."</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$row['call_block_action']."</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$text['label-'.$row['call_block_enabled']]."</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".ucwords($row['call_block_enabled'])."</td>\n";
echo " <td class='list_control_icons'>";
if (permission_exists('call_block_edit')) {
echo "<a href='call_block_edit.php?id=".$row['call_block_uuid']."' alt='".$text['button-edit']."'>$v_link_label_edit</a>";
+5 -11
View File
@@ -44,7 +44,7 @@ else {
//define the call_block_get_extensions function
function call_block_get_extensions($select_extension) {
global $db, $text;
global $db;
//list voicemail
$sql = "select extension, user_context, description from v_extensions ";
@@ -55,12 +55,12 @@ else {
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
echo "<optgroup label='".$text['label-voicemail']."'>\n";
echo "<optgroup label='Voicemail'>\n";
foreach ($result as &$row) {
$extension = $row["extension"];
$context = $row["user_context"];
$description = $row["description"];
if ($extension == $select_extension) $selected = "selected='selected'";
if ($extension == $select_extension) $selected = "SELECTED";
echo " <option value='Voicemail $context $extension' $selected>".$extension." ".$description."</option>\n";
$selected = "";
}
@@ -77,7 +77,7 @@ else {
}
//get http post variables and set them to php variables
if (count($_POST) > 0) {
if (count($_POST)>0) {
$call_block_name = check_str($_POST["call_block_name"]);
$call_block_number = check_str($_POST["call_block_number"]);
$call_block_action = check_str($_POST["call_block_action"]);
@@ -167,7 +167,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$result = $prep_statement->fetchAll();
$result_count = count($result);
if ($result_count > 0) {
//set the domain_name
$call_block_number = $result[0]["call_block_number"];
$domain_name = $result[0]["domain_name"];
//clear the cache
@@ -298,12 +298,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
else {
echo " <option value='Busy'>".$text['label-busy']."</option>\n";
}
if ($action == "Hold") {
echo " <option value='Hold' selected='selected'>".$text['label-hold']."</option>\n";
}
else {
echo " <option value='Hold'>".$text['label-hold']."</option>\n";
}
call_block_get_extensions($extension);
echo " </select>\n";
echo "<br />\n";
+17 -55
View File
@@ -22,69 +22,31 @@
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
Callblock is written by Gerrit Visser <gerrit308@gmail.com>
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+1 -1
View File
@@ -17,7 +17,7 @@
$apps[$x]['description']['fr-ca'] = "Il fait d' massive appels vers des extensions, IVR, salles de conferences ou quelqu'autre nom.";
$apps[$x]['description']['fr-ch'] = "";
$apps[$x]['description']['pt-pt'] = "Programação para imediatamente fazer várias chamadas para uma extensão, um IVR, Sala de Conferência, ou qualquer outro número.";
$apps[$x]['description']['pt-br'] = "Programação para imediatamente realizar várias chamadas para uma extensão, um menu IVR, Sala de Conferência ou qualquer outro número.";
$apps[$x]['description']['pt-br'] = "";
//permission details
$apps[$x]['permissions'][0]['name'] = "call_broadcast_view";
+98 -10
View File
@@ -33,6 +33,17 @@ $text['option-false']['uk'] = "Ні";
$text['option-false']['de-at'] = "Aus";
$text['option-false']['he'] = "לא חוקי";
$text['message-message']['en-us'] = "Message";
$text['message-message']['es-cl'] = "Mensaje";
$text['message-message']['pt-pt'] = "Mensagem";
$text['message-message']['fr-fr'] = "Message";
$text['message-message']['pt-br'] = "Mensagem";
$text['message-message']['pl'] = "Wiadomość";
$text['message-message']['sv-se'] = "Meddelande";
$text['message-message']['uk'] = "Повідомлення";
$text['message-message']['de-at'] = "Nachricht";
$text['message-message']['he'] = "הודעה";
$text['label-view-calls']['en-us'] = "View Calls";
$text['label-view-calls']['es-cl'] = "Ver llamadas";
$text['label-view-calls']['pt-pt'] = "Ver Chamadas";
@@ -66,6 +77,17 @@ $text['label-phone']['uk'] = "Список телефонних номерів";
$text['label-phone']['de-at'] = "Liste der Telefonnummern";
$text['label-phone']['he'] = "רשימת מספרי טלפון";
$text['label-name']['en-us'] = "Name";
$text['label-name']['es-cl'] = "Nombre";
$text['label-name']['pt-pt'] = "Nome";
$text['label-name']['fr-fr'] = "Nom";
$text['label-name']['pt-br'] = "Nome";
$text['label-name']['pl'] = "Nazwa";
$text['label-name']['sv-se'] = "Namn";
$text['label-name']['uk'] = "Назва";
$text['label-name']['de-at'] = "Name";
$text['label-name']['he'] = "שם";
$text['label-message']['en-us'] = "Message";
$text['label-message']['es-cl'] = "Mensaje";
$text['label-message']['pt-pt'] = "Mensagem";
@@ -81,7 +103,7 @@ $text['label-has-been']['en-us'] = "has been started";
$text['label-has-been']['es-cl'] = "iniciada";
$text['label-has-been']['pt-pt'] = "foi inicializada";
$text['label-has-been']['fr-fr'] = "a commencé";
$text['label-has-been']['pt-br'] = "foi inicializada";
$text['label-has-been']['pt-br'] = "Foi inicializada";
$text['label-has-been']['pl'] = "rozpoczęto";
$text['label-has-been']['sv-se'] = "har startat";
$text['label-has-been']['uk'] = "було запущено";
@@ -99,11 +121,22 @@ $text['label-destination']['uk'] = "Номер";
$text['label-destination']['de-at'] = "Zielnummer";
$text['label-destination']['he'] = "יעד";
$text['label-description']['en-us'] = "Description";
$text['label-description']['es-cl'] = "Descripción";
$text['label-description']['pt-pt'] = "Descrição";
$text['label-description']['fr-fr'] = "Description";
$text['label-description']['pt-br'] = "Descrição";
$text['label-description']['pl'] = "Opis";
$text['label-description']['sv-se'] = "Beskrivning";
$text['label-description']['uk'] = "Опис";
$text['label-description']['de-at'] = "Beschreibung";
$text['label-description']['he'] = "תיאור";
$text['label-concurrent-limit']['en-us'] = "Concurrent Limit";
$text['label-concurrent-limit']['es-cl'] = "Límite de concurrencia";
$text['label-concurrent-limit']['pt-pt'] = "Limite de chamadas concorrentes";
$text['label-concurrent-limit']['fr-fr'] = "Appels Simultanés";
$text['label-concurrent-limit']['pt-br'] = "Limite de chamadas simultâneas";
$text['label-concurrent-limit']['pt-br'] = "Limite de chamadas concorrentes";
$text['label-concurrent-limit']['pl'] = "Limit jednoczesnych rozmów";
$text['label-concurrent-limit']['sv-se'] = "Samtidig Gräns";
$text['label-concurrent-limit']['uk'] = "Обмеження одночасної кількості";
@@ -178,7 +211,7 @@ $text['label-accountcode']['he'] = "קוד חשבון";
$text['description-timeout']['en-us'] = "";
$text['description-timeout']['es-cl'] = "";
$text['description-timeout']['pt-pt'] = "Limite de tempo (em milissegundos) de espera após reproduzir gravações ou confirmar a macro.";
$text['description-timeout']['pt-pt'] = "";
$text['description-timeout']['fr-fr'] = "";
$text['description-timeout']['pt-br'] = "";
$text['description-timeout']['pl'] = "Ilość milisekund oczekiwania po odtworzeniu nagrania lub potwierdzenia makro.";
@@ -191,7 +224,7 @@ $text['description-phone']['en-us'] = "Optional, set a list of phone numbers one
$text['description-phone']['es-cl'] = "Opcional, definir una lista de números de telefono, uno por línea en el siguiente formato:  123-123-1234 | Apellido, Nombre";
$text['description-phone']['pt-pt'] = "Opcional, definir uma lista de números de telefone, um por linha, no seguinte formato: 210000000 | Apelido, Primeiro Nome";
$text['description-phone']['fr-fr'] = "Optionnel, Insérer une liste de numéros de téléphone, un par ligne, dans le format suivant ; 0123456789 | Nom, Prénom";
$text['description-phone']['pt-br'] = "Opcional, definir uma lista de números de telefone, um por linha, no seguinte formato: 210000000 | Apelido, Primeiro Nome.";
$text['description-phone']['pt-br'] = "Opcional, definir uma lista de números de telefone, um por linha, no seguinte formato: 210000000 | Apelido, Primeiro Nome ";
$text['description-phone']['pl'] = "Opcjonalne - ułóż listę numerów (jeden pod drugim) w formacie: 123-123-1234|Nazwisko, Imię";
$text['description-phone']['sv-se'] = "Frivillig, fyll i en lista med nummer (ett per rad) i följande format: 123-123-1234|Efternamn, Förnamn";
$text['description-phone']['uk'] = "Додатково, задайте список телефонних номерів по одному на рядок в наступному форматі: 123-123-1234 | Прізвище, ім'я";
@@ -202,7 +235,7 @@ $text['description-name']['en-us'] = "Enter the name here.";
$text['description-name']['es-cl'] = "Ingrese el nombre aquí.";
$text['description-name']['pt-pt'] = "Introduza o nome aqui.";
$text['description-name']['fr-fr'] = "Insérer le Nom.";
$text['description-name']['pt-br'] = "Insira o nome do broadcast.";
$text['description-name']['pt-br'] = "Insira o nome do menu";
$text['description-name']['pl'] = "Wprowadź nazwę";
$text['description-name']['sv-se'] = "Skriv in namnet här.";
$text['description-name']['uk'] = "Введіть назву";
@@ -235,7 +268,7 @@ $text['description-concurrent-limit']['en-us'] = "Limit the approximate number o
$text['description-concurrent-limit']['es-cl'] = "Limitar el número de llamadas simultaneas. Deje en blanco para no establecer un límite.";
$text['description-concurrent-limit']['pt-pt'] = "Limitar o número de chamadas concurrentes. Deixe este campo em branco para não ter limite.";
$text['description-concurrent-limit']['fr-fr'] = "Limite le nombre d'appels concurrents. Laisser vide pour illimité.";
$text['description-concurrent-limit']['pt-br'] = "Limitar o número de chamadas simultâneas. Deixe este campo em branco para não ter limite.";
$text['description-concurrent-limit']['pt-br'] = "Limitar o número de chamadas concorrentes. Deixe este campo em branco para não ter limite. ";
$text['description-concurrent-limit']['pl'] = "Ogranicz liczbę równoczesnych połączeń. Aby nie było limitu zostaw to pole puste.";
$text['description-concurrent-limit']['sv-se'] = "Begränsa ungefärliga antalet samtidiga samtal. Lämna det här tomt för ingen gräns.";
$text['description-concurrent-limit']['uk'] = "Обмеження приблизної кількості одночасних дзвінків. Якщо пусто - без обмежень";
@@ -245,7 +278,7 @@ $text['description-concurrent-limit']['he'] = "";
$text['description-caller-id-number']['en-us'] = "Applicable if the provider that allow the Caller ID number to be sent. default: 0000000000";
$text['description-caller-id-number']['pt-pt'] = "Aplicável se o provedor permitir o envio do número do originador das chamadas. Omissão: 0000000000";
$text['description-caller-id-number']['fr-fr'] = "Applicable uniquement si le fournisseur d'accès authorise l'acheminement du numéro d'appelant. Par défaut: 0000000000";
$text['description-caller-id-number']['pt-br'] = "Aplicável se o provedor permitir o envio do número do originador das chamadas. Omissão: 0000000000.";
$text['description-caller-id-number']['pt-br'] = "Aplicável se o provedor permitir o envio do número do originador das chamadas. Omissão: 0000000000 ";
$text['description-caller-id-number']['pl'] = "Zastosowane w przypadku jeżeli operator zezwala na prezentację numeru. Standardowo prezentacja jest w formacie: 0000000000";
$text['description-caller-id-number']['sv-se'] = "Gäller om leverantör tillåter att Caller ID nummer skickas. Standard: 0000000000";
$text['description-caller-id-number']['uk'] = "Стосується, якщо постачальник, дозволяє надсилати номер абонента (Caller ID номер). За замовчуванням: 0000000000";
@@ -256,7 +289,7 @@ $text['description-caller-id-name']['en-us'] = "Applicable if the provider allow
$text['description-caller-id-name']['es-cl'] = "Applicable si el proveedor permite enviar el número de origen. Por defecto: 0000000000";
$text['description-caller-id-name']['pt-pt'] = "Aplicável se o provedor permitir o envio do nome do originador das chamadas. Omissão: anonymous";
$text['description-caller-id-name']['fr-fr'] = "Applicable uniquement si le fournisseur d'accès authorise l'acheminement du nom d'appelant. Par défaut: anonymous";
$text['description-caller-id-name']['pt-br'] = "Aplicável se o provedor de telefônia liberar o nome de quem está discando. Por padrão: anonymous (anônimo).";
$text['description-caller-id-name']['pt-br'] = "Aplicar se o provedor ";
$text['description-caller-id-name']['pl'] = "Zastosowane w przypadku jeżeli operator zezwala na prezentację nazwy. Standardowo prezentacja jest w formacie: 0000000000";
$text['description-caller-id-name']['sv-se'] = "Gäller om leverantör tillåter att Caller ID namn skickas. Standard: anonymous";
$text['description-caller-id-name']['uk'] = "Стосується, якщо постачальник, дозволяє надсилати ім’я абонента (Caller ID Ім’я). За замовчуванням: anonymous";
@@ -267,7 +300,7 @@ $text['description-avmd']['en-us'] = "Select whether to enable or disable the de
$text['description-avmd']['es-cl'] = "Seleccione si desea activar o desactivar la detección de sistemas de contestador automático de mensajes de correo de voz y.";
$text['description-avmd']['pt-pt'] = "Selecione se deseja ativar ou desativar a detecção de mensagens de correio de voz e sistemas de secretária eletrônica.";
$text['description-avmd']['fr-fr'] = "Indiquez si vous souhaitez activer ou désactiver la détection de la messagerie vocale et les systèmes de machines de répondeur.";
$text['description-avmd']['pt-br'] = "Selecione se deseja ativar ou desativar a detecção de mensagens de correio de voz e sistemas de secretária eletrônica.";
$text['description-avmd']['pt-br'] = "Selecione se deseja ativar ou desativar a detecção de mensagens de correio de voz e sistemas de secretária eletrônica. ";
$text['description-avmd']['pl'] = "Wybierz, czy chcesz włączyć lub wyłączyć wykrywanie wiadomości poczty głosowej lub innych systemów automatycznego odbierania rozmów.";
$text['description-avmd']['sv-se'] = "Välj om deteketering av röstbrevlåda skall användas.";
$text['description-avmd']['uk'] = "Виберіть, чи слід включити або відключити виявлення повідомлень голосової пошти і систему автовідповідача.";
@@ -289,7 +322,7 @@ $text['confirm-name']['en-us'] = "Please provide: Name";
$text['confirm-name']['es-cl'] = "Por favor agregue: Nombre";
$text['confirm-name']['pt-pt'] = "Por favor indique: Nome";
$text['confirm-name']['fr-fr'] = "Merci d'indiquer: Nom";
$text['confirm-name']['pt-br'] = "Por favor insira: Nome";
$text['confirm-name']['pt-br'] = "Por favor indique: Nome";
$text['confirm-name']['pl'] = "Wprowadź: Nazwę";
$text['confirm-name']['sv-se'] = "Ange: Namn";
$text['confirm-name']['uk'] = "Введіть назву";
@@ -307,6 +340,17 @@ $text['confirm-delete-info']['uk'] = "Ви дійсно бажаєте це ви
$text['confirm-delete-info']['de-at'] = "Wollen Sie das wirklich löschen?";
$text['confirm-delete-info']['he'] = "";
$text['confirm-delete']['en-us'] = "Delete Complete";
$text['confirm-delete']['es-cl'] = "Eliminación Completa";
$text['confirm-delete']['pt-pt'] = "Remoção Efectuada";
$text['confirm-delete']['fr-fr'] = "Supprimé";
$text['confirm-delete']['pt-br'] = "Deseja realmente remover isto?";
$text['confirm-delete']['pl'] = "Usunięto poprawnie";
$text['confirm-delete']['sv-se'] = "Borttagning Klar";
$text['confirm-delete']['uk'] = "Видалено";
$text['confirm-delete']['de-at'] = "Erfolgreich gelöscht";
$text['confirm-delete']['he'] = "";
$text['confirm-add']['en-us'] = "Add Complete";
$text['confirm-add']['es-cl'] = "Ingreso Completo";
$text['confirm-add']['pt-pt'] = "Adição Efectuada";
@@ -340,4 +384,48 @@ $text['button-send']['uk'] = "Транслювати";
$text['button-send']['de-at'] = "Senden";
$text['button-send']['he'] = "נשלח";
$text['button-save']['en-us'] = "Save";
$text['button-save']['es-cl'] = "Guardar";
$text['button-save']['pt-pt'] = "Guardar";
$text['button-save']['fr-fr'] = "Sauvegarder";
$text['button-save']['pt-br'] = "Salvar";
$text['button-save']['pl'] = "Zachowaj";
$text['button-save']['sv-se'] = "Spara";
$text['button-save']['uk'] = "Зберегти";
$text['button-save']['de-at'] = "Speichern";
$text['button-save']['he'] = "שמור";
$text['button-edit']['en-us'] = "Edit";
$text['button-edit']['es-cl'] = "Editar";
$text['button-edit']['pt-pt'] = "Editar";
$text['button-edit']['fr-fr'] = "Editer";
$text['button-edit']['pt-br'] = "Editar";
$text['button-edit']['pl'] = "Edytuj";
$text['button-edit']['sv-se'] = "Editera";
$text['button-edit']['uk'] = "Редагувати";
$text['button-edit']['de-at'] = "Bearbeiten";
$text['button-edit']['he'] = "";
$text['button-delete']['en-us'] = "Delete";
$text['button-delete']['es-cl'] = "Eliminar";
$text['button-delete']['pt-pt'] = "Remover";
$text['button-delete']['fr-fr'] = "Supprimer";
$text['button-delete']['pt-br'] = "Remover";
$text['button-delete']['pl'] = "Usuń";
$text['button-delete']['sv-se'] = "Ta Bort";
$text['button-delete']['uk'] = "Видалити";
$text['button-delete']['de-at'] = "Löschen";
$text['button-delete']['he'] = "";
$text['button-back']['en-us'] = "Back";
$text['button-back']['es-cl'] = "Volver";
$text['button-back']['pt-pt'] = "Voltar";
$text['button-back']['fr-fr'] = "Retour";
$text['button-back']['pt-br'] = "Voltar";
$text['button-back']['pl'] = "Wróć";
$text['button-back']['sv-se'] = "Tillbaka";
$text['button-back']['uk'] = "Назад";
$text['button-back']['de-at'] = "Zurück";
$text['button-back']['he'] = "חזרה";
?>
+2 -2
View File
@@ -62,7 +62,7 @@ else {
$num_rows = count($result);
unset ($prep_statement, $result, $sql);
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 10;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
@@ -129,7 +129,7 @@ else {
echo "<tr>\n";
echo "<td colspan='5' align='left'>\n";
echo " <table width='100%' cellpadding='0' cellspacing='0'>\n";
echo " <tr class='tr_link_void'>\n";
echo " <tr>\n";
echo " <td width='33.3%' nowrap>&nbsp;</td>\n";
echo " <td width='33.3%' align='center' nowrap>$paging_controls</td>\n";
echo " <td class='list_control_icons'>";
+2 -2
View File
@@ -65,7 +65,7 @@ else {
if (if_group("superadmin")){
$broadcast_accountcode = check_str($_POST["broadcast_accountcode"]);
}
elseif (if_group("admin") && file_exists($_SERVER["PROJECT_ROOT"]."/app/billing/app_config.php")){
elseif (if_group("admin") && file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/billing/app_config.php")){
$sql_accountcode = "SELECT COUNT(*) as count FROM v_billings WHERE domain_uuid = '".$_SESSION['domain_uuid']."' AND type_value='".$_POST["accountcode"]."'";
$prep_statement_accountcode = $db->prepare(check_sql($sql_accountcode));
$prep_statement_accountcode->execute();
@@ -277,7 +277,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo $text['description-accountcode']."\n";
echo "</td>\n";
echo "</tr>\n";
}elseif (if_group("admin") && file_exists($_SERVER["PROJECT_ROOT"]."/app/billing/app_config.php")){
}elseif (if_group("admin") && file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/billing/app_config.php")){
$sql_accountcode = "SELECT type_value FROM v_billings WHERE domain_uuid = '".$_SESSION['domain_uuid']."'";
echo "<tr>\n";
+7 -7
View File
@@ -242,7 +242,7 @@ require_once "resources/header.php";
echo "<div align='center'>";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='2'>\n";
echo "<tr>\n";
echo "<tr class='border'>\n";
echo " <td align=\"center\">\n";
echo " <br>";
@@ -260,10 +260,10 @@ require_once "resources/header.php";
$phone_1 = preg_replace('{\D}', '', $tmp_value_array[0]);
if ($gateway == "loopback") {
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}loopback/".$phone_1."/default/XML ".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}loopback/".$phone_1."/default/XML ".$_SESSION['switch']['recordings']['dir']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
}
else {
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}sofia/gateway/".$gateway."/".$phone_1." ".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}sofia/gateway/".$gateway."/".$phone_1." ".$_SESSION['switch']['recordings']['dir']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
}
echo $cmd."<br />\n";
cmd_async($cmd);
@@ -335,20 +335,20 @@ require_once "resources/header.php";
//make the call
if (strlen($phone_1)> 0) {
if ($gateway == "loopback") {
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}loopback/".$phone_1."/default/XML ".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}loopback/".$phone_1."/default/XML ".$_SESSION['switch']['recordings']['dir']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
}
else {
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}sofia/gateway/".$gateway."/".$phone_1." ".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}sofia/gateway/".$gateway."/".$phone_1." ".$_SESSION['switch']['recordings']['dir']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
}
//echo $cmd."<br />\n";
cmd_async($cmd);
}
if (strlen($phone_2)> 0) {
if ($gateway == "loopback") {
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}loopback/".$phone_2."/default/XML ".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}loopback/".$phone_2."/default/XML ".$_SESSION['switch']['recordings']['dir']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
}
else {
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}sofia/gateway/".$gateway."/".$phone_2." ".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
$cmd = $_SESSION['switch']['bin']['dir']."/fs_cli -x \"luarun call_broadcast_originate.lua {call_timeout=".$broadcast_timeout."}sofia/gateway/".$gateway."/".$phone_2." ".$_SESSION['switch']['recordings']['dir']."/".$recording_filename." '".$broadcast_caller_id_name."' ".$broadcast_caller_id_number." ".$broadcast_timeout." '".$broadcast_destination_application."' '".$broadcast_destination_data."'\";";
}
//echo $cmd."<br />\n";
cmd_async($cmd);
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+1 -1
View File
@@ -17,7 +17,7 @@
$apps[$x]['description']['fr-ca'] = "Il montre les appels actives et des agents en queue du centre d'appels.";
$apps[$x]['description']['fr-ch'] = "";
$apps[$x]['description']['pt-pt'] = "Mostra as chamadas ativas e agentes na fila do centro de chamadas.";
$apps[$x]['description']['pt-br'] = "Mostra as chamadas ativas, e os agentes na fila do Call Center.";
$apps[$x]['description']['pt-br'] = "";
//permission details
$apps[$x]['permissions'][0]['name'] = "call_center_active_view";
+60 -16
View File
@@ -4,7 +4,7 @@ $text['title-call_center_queue_activity']['en-us'] = "Call Center Queue Activity
$text['title-call_center_queue_activity']['es-cl'] = "Actividad de Cola del Centro de Llamados";
$text['title-call_center_queue_activity']['fr-fr'] = "Activité des files d'attente du centre d'appel";
$text['title-call_center_queue_activity']['pt-pt'] = "Actividade das filas do Call Center";
$text['title-call_center_queue_activity']['pt-br'] = "Atividade das filas do Call Center";
$text['title-call_center_queue_activity']['pt-br'] = "Atividade das filas do call center";
$text['title-call_center_queue_activity']['pl'] = "Aktywność kolejek w Call Center ";
$text['title-call_center_queue_activity']['sv-se'] = "Call Center Grupp Aktivitet";
$text['title-call_center_queue_activity']['de-at'] = "Callcenter Warteschlangen Aktivität";
@@ -15,7 +15,7 @@ $text['title-active_call_center']['en-us'] = "Active Call Center";
$text['title-active_call_center']['es-cl'] = "Centro de Llamados Activo";
$text['title-active_call_center']['fr-fr'] = "Centre d'appel Actif";
$text['title-active_call_center']['pt-pt'] = "Atividade do Call Center";
$text['title-active_call_center']['pt-br'] = "Atividade do Call Center";
$text['title-active_call_center']['pt-br'] = "Atividade do callcenter";
$text['title-active_call_center']['pl'] = "Aktywność w Call Center ";
$text['title-active_call_center']['sv-se'] = "Aktivt Call Center";
$text['title-active_call_center']['de-at'] = "Aktive Callcenter";
@@ -36,7 +36,7 @@ $text['message-confirm']['he'] = "";
$text['label-waiting']['en-us'] = "Waiting";
$text['label-waiting']['es-cl'] = "Esperando";
$text['label-waiting']['fr-fr'] = "d'attente";
$text['label-waiting']['pt-pt'] = "Esperando";
$text['label-waiting']['pt-pt'] = "Espera";
$text['label-waiting']['pt-br'] = "Esperar";
$text['label-waiting']['pl'] = "Oczekiwanie";
$text['label-waiting']['sv-se'] = "Väntar";
@@ -47,7 +47,7 @@ $text['label-waiting']['he'] = "";
$text['label-trying']['en-us'] = "Trying";
$text['label-trying']['es-cl'] = "Intentando";
$text['label-trying']['fr-fr'] = "d'essais";
$text['label-trying']['pt-pt'] = "Tentando";
$text['label-trying']['pt-pt'] = "Tentar";
$text['label-trying']['pt-br'] = "Tentando";
$text['label-trying']['pl'] = "Próba";
$text['label-trying']['sv-se'] = "Försöker";
@@ -59,7 +59,7 @@ $text['label-transfer']['en-us'] = "Transfer";
$text['label-transfer']['es-cl'] = "Transferir";
$text['label-transfer']['fr-fr'] = "Transfert";
$text['label-transfer']['pt-pt'] = "Transferir";
$text['label-transfer']['pt-br'] = "Transferir";
$text['label-transfer']['pt-br'] = "Tranferência";
$text['label-transfer']['pl'] = "Transferowanie";
$text['label-transfer']['sv-se'] = "Överför";
$text['label-transfer']['de-at'] = "Weiterleiten";
@@ -103,7 +103,7 @@ $text['label-tier_rules_apply']['en-us'] = "Tier Rules Apply";
$text['label-tier_rules_apply']['es-cl'] = "Aplicar Reglas de Nivel";
$text['label-tier_rules_apply']['fr-fr'] = "Appliquer les règles du Niveau";
$text['label-tier_rules_apply']['pt-pt'] = "Aplicar as Regras do Nível";
$text['label-tier_rules_apply']['pt-br'] = "Aplicar regas de nível";
$text['label-tier_rules_apply']['pt-br'] = "Aplicar regas de nivel";
$text['label-tier_rules_apply']['pl'] = "Zastosuj zasadę poziomów";
$text['label-tier_rules_apply']['sv-se'] = "Kunskap Regler Gäller";
$text['label-tier_rules_apply']['de-at'] = "Ebenen Regeln werden angewendet";
@@ -114,7 +114,7 @@ $text['label-tier_rule_wait_second']['en-us'] = "Tier Rule Wait Second";
$text['label-tier_rule_wait_second']['es-cl'] = "Regla de nível segundo de espera";
$text['label-tier_rule_wait_second']['fr-fr'] = "Attente en secondes de la règle du Niveau";
$text['label-tier_rule_wait_second']['pt-pt'] = "Regra de nível segundo espera";
$text['label-tier_rule_wait_second']['pt-br'] = "Regra de segundo nível de espera";
$text['label-tier_rule_wait_second']['pt-br'] = "Regra de segundo nivel de espera";
$text['label-tier_rule_wait_second']['pl'] = "Poziomowa zasada czekania";
$text['label-tier_rule_wait_second']['sv-se'] = "Kunskap Regel Väntetid i Sekunder";
$text['label-tier_rule_wait_second']['de-at'] = "Ebenen Regel Wartezeit";
@@ -125,7 +125,7 @@ $text['label-tier_rule_wait_multiply_level']['en-us'] = "Tier Rule Wait Multiply
$text['label-tier_rule_wait_multiply_level']['es-cl'] = "Regla de nivel multiplicar nivel de espera";
$text['label-tier_rule_wait_multiply_level']['fr-fr'] = "Règle d'attente multipliée par Niveau";
$text['label-tier_rule_wait_multiply_level']['pt-pt'] = "Regra de nível de espera multiplicado pelo nível";
$text['label-tier_rule_wait_multiply_level']['pt-br'] = "Regra de espera multiplicado pelo nível";
$text['label-tier_rule_wait_multiply_level']['pt-br'] = "Regra de espera multiplicado pelo nivel";
$text['label-tier_rule_wait_multiply_level']['pl'] = "Poziomowa zasada przemnożenia";
$text['label-tier_rule_wait_multiply_level']['sv-se'] = "Kunskap Regel Väntetid Multipla Värden";
$text['label-tier_rule_wait_multiply_level']['de-at'] = "Ebenen Regel Wartezeit Multiplikator Level";
@@ -136,7 +136,7 @@ $text['label-tier_rule_no_agent_no_wait']['en-us'] = "Tier Rule No Agent No Wait
$text['label-tier_rule_no_agent_no_wait']['es-cl'] = "Regla de Nivel sin Agente sin Espera";
$text['label-tier_rule_no_agent_no_wait']['fr-fr'] = "Règle du Niveau Pas d'agent, pas d'attente";
$text['label-tier_rule_no_agent_no_wait']['pt-pt'] = "Regra de Nível Sem Agente Sem Espera";
$text['label-tier_rule_no_agent_no_wait']['pt-br'] = "Regra de nível sem espera do agente";
$text['label-tier_rule_no_agent_no_wait']['pt-br'] = "Regra de nivel sem espera do agente";
$text['label-tier_rule_no_agent_no_wait']['pl'] = "Zasada poziomowa - nie ma agentów, nie ma czekania";
$text['label-tier_rule_no_agent_no_wait']['sv-se'] = "Kunskap Regel Ingen Agent Ingen Väntan";
$text['label-tier_rule_no_agent_no_wait']['de-at'] = "Ebenen Regel kein Agent nicht warten";
@@ -224,7 +224,7 @@ $text['label-record_template']['en-us'] = "Record Template";
$text['label-record_template']['es-cl'] = "Plantilla de Grabación";
$text['label-record_template']['fr-fr'] = "Modèle d'enregistrement";
$text['label-record_template']['pt-pt'] = "Gravar template";
$text['label-record_template']['pt-br'] = "Modelo de gravação";
$text['label-record_template']['pt-br'] = "Gravar";
$text['label-record_template']['pl'] = "Nagraj";
$text['label-record_template']['sv-se'] = "Spela In Mall";
$text['label-record_template']['de-at'] = "Aufnahme Vorlage";
@@ -275,6 +275,17 @@ $text['label-number']['de-at'] = "Nummer";
$text['label-number']['ar-eg'] = "رقم";
$text['label-number']['he'] = "מספר";
$text['label-name']['en-us'] = "Name";
$text['label-name']['es-cl'] = "Nombre";
$text['label-name']['fr-fr'] = "Nom";
$text['label-name']['pt-pt'] = "Nome";
$text['label-name']['pt-br'] = "Nome";
$text['label-name']['pl'] = "Nazwa";
$text['label-name']['sv-se'] = "Namn";
$text['label-name']['de-at'] = "Name";
$text['label-name']['ar-eg'] = "الأسم";
$text['label-name']['he'] = "שם";
$text['label-music_on_hold']['en-us'] = "Music on Hold";
$text['label-music_on_hold']['es-cl'] = "Musica en Espera";
$text['label-music_on_hold']['fr-fr'] = "Musique de Garde";
@@ -301,7 +312,7 @@ $text['label-max_wait_time_with_no_agent']['en-us'] = "Max Wait Time with No Age
$text['label-max_wait_time_with_no_agent']['es-cl'] = "Tiempo Máximo de Espera sin Agente";
$text['label-max_wait_time_with_no_agent']['fr-fr'] = "Max d'attente sans Agent";
$text['label-max_wait_time_with_no_agent']['pt-pt'] = "Tempo máximo de espera sem agente";
$text['label-max_wait_time_with_no_agent']['pt-br'] = "Tempo máximo de esoera sem agente";
$text['label-max_wait_time_with_no_agent']['pt-br'] = "Tempo máximo sem agente";
$text['label-max_wait_time_with_no_agent']['pl'] = "Maks czas oczekiwania bez agenta";
$text['label-max_wait_time_with_no_agent']['sv-se'] = "Max Vänt Tid (Ingen Agent)";
$text['label-max_wait_time_with_no_agent']['de-at'] = "Maximale Wartezeit ohne Agent";
@@ -352,6 +363,17 @@ $text['label-discard_abandoned_after']['de-at'] = "Zurückweisen nach Abwurf";
$text['label-discard_abandoned_after']['ar-eg'] = "";
$text['label-discard_abandoned_after']['he'] = "";
$text['label-description']['en-us'] = "Description";
$text['label-description']['es-cl'] = "Descripción";
$text['label-description']['fr-fr'] = "Description";
$text['label-description']['pt-pt'] = "Descrição";
$text['label-description']['pt-br'] = "Descrição";
$text['label-description']['pl'] = "Opis";
$text['label-description']['sv-se'] = "Beskrivning";
$text['label-description']['de-at'] = "Beschreibung";
$text['label-description']['ar-eg'] = "الوصف";
$text['label-description']['he'] = "תיאור";
$text['label-call']['en-us'] = "Call";
$text['label-call']['es-cl'] = "Llamar";
$text['label-call']['fr-fr'] = "Appel";
@@ -389,7 +411,7 @@ $text['label-abandoned_resume_allowed']['en-us'] = "Abandoned Resume Allowed";
$text['label-abandoned_resume_allowed']['es-cl'] = "Permitir Reanudación de Abandono";
$text['label-abandoned_resume_allowed']['fr-fr'] = "Authoriser la reprise des abandonnés";
$text['label-abandoned_resume_allowed']['pt-pt'] = "Resume Autorizado";
$text['label-abandoned_resume_allowed']['pt-br'] = "Resumo abandonado permidito";
$text['label-abandoned_resume_allowed']['pt-br'] = "Resumo autorizado";
$text['label-abandoned_resume_allowed']['pl'] = "Odbieranie odrzuconych rozmów jest dozwolone";
$text['label-abandoned_resume_allowed']['sv-se'] = "Återuppta Övergivna Tillåtet";
$text['label-abandoned_resume_allowed']['de-at'] = "Wiederaufnahme nach Zurückweisung erlaubt";
@@ -411,7 +433,7 @@ $text['header-active_call_center']['en-us'] = "Active Call Center";
$text['header-active_call_center']['es-cl'] = "Centro de Llamados Activo";
$text['header-active_call_center']['fr-fr'] = "Centre d'appel Actif";
$text['header-active_call_center']['pt-pt'] = "Atividade do Call Center";
$text['header-active_call_center']['pt-br'] = "Atividade do Call Center";
$text['header-active_call_center']['pt-br'] = "Atividade do call center";
$text['header-active_call_center']['pl'] = "Aktywność w Call Center ";
$text['header-active_call_center']['sv-se'] = "Aktivt Call Center";
$text['header-active_call_center']['de-at'] = "Aktives Callcenter";
@@ -422,7 +444,7 @@ $text['description-queue']['en-us'] = "A current list of callers in the queue is
$text['description-queue']['es-cl'] = "Un listado de los llamantes en cola se muestra a continuación.";
$text['description-queue']['fr-fr'] = "Liste des appelants dans la file.";
$text['description-queue']['pt-pt'] = "Lista de chamadas na fila.";
$text['description-queue']['pt-br'] = "Lista atual das chamadas em fila abaixo.";
$text['description-queue']['pt-br'] = "Lista de chamada na fila";
$text['description-queue']['pl'] = "Aktualna lista rozmówców w kolejce jest poniżej .";
$text['description-queue']['sv-se'] = "Aktuell lista på köande samtal enligt nedan ";
$text['description-queue']['de-at'] = "Eine aktuelle Liste der Anrufer in der Warteschlange sehen sie unten.";
@@ -433,7 +455,7 @@ $text['description-agents']['en-us'] = "A current list of agents is below.";
$text['description-agents']['es-cl'] = "Un listado de los agentes actuales de muestra a continuación.";
$text['description-agents']['fr-fr'] = "Liste des agents";
$text['description-agents']['pt-pt'] = "Lista de agentes.";
$text['description-agents']['pt-br'] = "Lista dos atuais agentes abaixo.";
$text['description-agents']['pt-br'] = "Lista de agentes";
$text['description-agents']['pl'] = "Aktualna lista agentów jest poniżej ";
$text['description-agents']['sv-se'] = "Aktuell lista på Agenter enligt nedan";
$text['description-agents']['de-at'] = "Eine aktuelle Liste der Agenten sehen sie unten.";
@@ -444,11 +466,33 @@ $text['description-active_call_center']['en-us'] = "Select a Call Center Queue f
$text['description-active_call_center']['es-cl'] = "Seleccione la Cola del Centro de Llamados desde el siguiente listado para ver su actividad.";
$text['description-active_call_center']['fr-fr'] = "Choisir une file d'attente dans la liste pour voir son activité.";
$text['description-active_call_center']['pt-pt'] = "Seleccione uma fila de Call Center a partir da lista em baixo para ver a sua actividade.";
$text['description-active_call_center']['pt-br'] = "Selecione uma fila de Call Center a partir da lista abaixo para ver a sua atividade.";
$text['description-active_call_center']['pt-br'] = "Selecione uma fila de call center a partir da lista embaixo para ver a sua atividade";
$text['description-active_call_center']['pl'] = "Aby zobaczyć aktywność kolejki w Call Center wybierz ja z poniższej listy.";
$text['description-active_call_center']['sv-se'] = "Välj en Call Center Grupp från listan nedan för att se dess aktivitet";
$text['description-active_call_center']['de-at'] = "Wählen Sie eine Callcenter Warteschlange aus der Liste unten um die Aktivität zu beobachten.";
$text['description-active_call_center']['ar-eg'] = "";
$text['description-active_call_center']['he'] = "";
$text['button-view']['en-us'] = "View";
$text['button-view']['es-cl'] = "Ver";
$text['button-view']['pt-pt'] = "Vista";
$text['button-view']['fr-fr'] = "Voir";
$text['button-view']['pt-br'] = "Visualizar";
$text['button-view']['pl'] = "Widok";
$text['button-view']['sv-se'] = "Visa";
$text['button-view']['de-at'] = "Ansicht";
$text['button-view']['ar-eg'] = "عرض";
$text['button-view']['he'] = "תצוגה";
$text['button-edit']['en-us'] = "Edit";
$text['button-edit']['es-cl'] = "Editar";
$text['button-edit']['fr-fr'] = "Editer";
$text['button-edit']['pt-pt'] = "Editar";
$text['button-edit']['pt-br'] = "Editar";
$text['button-edit']['pl'] = "Edytuj";
$text['button-edit']['sv-se'] = "Editera";
$text['button-edit']['de-at'] = "Bearbeiten";
$text['button-edit']['ar-eg'] = "تعديل";
$text['button-edit']['he'] = "עריכה";
?>
+1 -1
View File
@@ -5,7 +5,7 @@ $apps[$x]['menu'][0]['title']['es-cl'] = "Centro de Llamada Activo";
$apps[$x]['menu'][0]['title']['fr-fr'] = "Centre d'Appel Actif";
$apps[$x]['menu'][0]['title']['fr-ca'] = "Centre d'Appels Active";
$apps[$x]['menu'][0]['title']['pt-pt'] = "Centro de Chamadas Activo";
$apps[$x]['menu'][0]['title']['pt-br'] = "Call Center ativos";
$apps[$x]['menu'][0]['title']['pt-br'] = "Centro de chamadas ativas";
$apps[$x]['menu'][0]['title']['pl'] = "Aktywność w Call Center ";
$apps[$x]['menu'][0]['title']['sv-se'] = "Aktivt Call Center";
$apps[$x]['menu'][0]['title']['de-at'] = "Aktive Callcenter";
+360 -359
View File
@@ -1,359 +1,360 @@
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2016
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
James Rose <james.o.rose@gmail.com>
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('call_center_active_view')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//get the queue_name and set it as a variable
$queue_name = $_GET[queue_name].'@'. $_SESSION['domains'][$domain_uuid]['domain_name'];
//convert the string to a named array
function str_to_named_array($tmp_str, $tmp_delimiter) {
$tmp_array = explode ("\n", $tmp_str);
$result = '';
if (trim(strtoupper($tmp_array[0])) != "+OK") {
$tmp_field_name_array = explode ($tmp_delimiter, $tmp_array[0]);
$x = 0;
if (isset($tmp_array)) foreach ($tmp_array as $row) {
if ($x > 0) {
$tmp_field_value_array = explode ($tmp_delimiter, $tmp_array[$x]);
$y = 0;
if (isset($tmp_field_value_array)) foreach ($tmp_field_value_array as $tmp_value) {
$tmp_name = $tmp_field_name_array[$y];
if (trim(strtoupper($tmp_value)) != "+OK") {
$result[$x][$tmp_name] = $tmp_value;
}
$y++;
}
}
$x++;
}
unset($row);
}
return $result;
}
//alternate the color of the row
$c = 0;
$row_style["0"] = "row_style0";
$row_style["1"] = "row_style1";
//create an event socket connection
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
//get the call center queue, agent and tiers list
if (!$fp) {
$msg = "<div align='center'>Connection to Event Socket failed.<br /></div>";
echo "<div align='center'>\n";
echo "<table width='40%'>\n";
echo "<tr>\n";
echo "<th align='left'>Message</th>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='row_style1'><strong>$msg</strong></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</div>\n";
}
else {
//get the agent list
//show the title
echo "<b>".$text['header-agents']."</b><br />\n";
echo $text['description-agents']."<br /><br />\n";
//send the event socket command and get the response
//callcenter_config queue list tiers [queue_name] |
$switch_cmd = 'callcenter_config queue list tiers '.$queue_name;
$event_socket_str = trim(event_socket_request($fp, 'api '.$switch_cmd));
$result = str_to_named_array($event_socket_str, '|');
//prepare the result for array_multisort
$x = 0;
if (isset($result)) foreach ($result as $row) {
$tier_result[$x]['level'] = $row['level'];
$tier_result[$x]['position'] = $row['position'];
$tier_result[$x]['agent'] = $row['agent'];
$tier_result[$x]['state'] = trim($row['state']);
$tier_result[$x]['queue'] = $row['queue'];
$x++;
}
//sort the array //SORT_ASC, SORT_DESC, SORT_REGULAR, SORT_NUMERIC, SORT_STRING
if (isset($tier_result)) { array_multisort($tier_result, SORT_ASC); }
//send the event socket command and get the response
//callcenter_config queue list agents [queue_name] [status] |
$switch_cmd = 'callcenter_config queue list agents '.$queue_name;
$event_socket_str = trim(event_socket_request($fp, 'api '.$switch_cmd));
$agent_result = str_to_named_array($event_socket_str, '|');
//list the agents
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo "<th>".$text['label-name']."</th>\n";
echo "<th>".$text['label-extension']."</th>\n";
echo "<th>".$text['label-status']."</th>\n";
echo "<th>".$text['label-state']."</th>\n";
echo "<th>".$text['label-status_change']."</th>\n";
echo "<th>".$text['label-missed']."</th>\n";
echo "<th>".$text['label-answered']."</th>\n";
echo "<th>".$text['label-tier_state']."</th>\n";
echo "<th>".$text['label-tier_level']."</th>\n";
echo "<th>".$text['label-tier_position']."</th>\n";
if (permission_exists('call_center_active_options')) {
echo "<th>".$text['label-options']."</th>\n";
}
echo "</tr>\n";
if (isset($tier_result)) foreach ($tier_result as $tier_row) {
//$queue = $tier_row['queue'];
//$queue = str_replace('@'.$_SESSION['domain_name'], '', $queue);
$agent = $tier_row['agent'];
//$agent = str_replace('@'.$_SESSION['domain_name'], '', $agent);
$tier_state = $tier_row['state'];
$tier_level = $tier_row['level'];
$tier_position = $tier_row['position'];
if (isset($agent_result)) foreach ($agent_result as $agent_row) {
if ($tier_row['agent'] == $agent_row['name']) {
$name = $agent_row['name'];
$name = str_replace('@'.$_SESSION['domain_name'], '', $name);
//$system = $agent_row['system'];
$a_uuid = $agent_row['uuid'];
//$type = $agent_row['type'];
$contact = $agent_row['contact'];
$a_exten = preg_replace("/user\//", "", $contact);
$a_exten = preg_replace("/@.*/", "", $a_exten);
$a_exten = preg_replace("/{.*}/", "", $a_exten);
$status = $agent_row['status'];
$state = $agent_row['state'];
$max_no_answer = $agent_row['max_no_answer'];
$wrap_up_time = $agent_row['wrap_up_time'];
$reject_delay_time = $agent_row['reject_delay_time'];
$busy_delay_time = $agent_row['busy_delay_time'];
$last_bridge_start = $agent_row['last_bridge_start'];
$last_bridge_end = $agent_row['last_bridge_end'];
//$last_offered_call = $agent_row['last_offered_call'];
$last_status_change = $agent_row['last_status_change'];
$no_answer_count = $agent_row['no_answer_count'];
$calls_answered = $agent_row['calls_answered'];
$talk_time = $agent_row['talk_time'];
$ready_time = $agent_row['ready_time'];
$last_offered_call_seconds = time() - $last_offered_call;
$last_offered_call_length_hour = floor($last_offered_call_seconds/3600);
$last_offered_call_length_min = floor($last_offered_call_seconds/60 - ($last_offered_call_length_hour * 60));
$last_offered_call_length_sec = $last_offered_call_seconds - (($last_offered_call_length_hour * 3600) + ($last_offered_call_length_min * 60));
$last_offered_call_length_min = sprintf("%02d", $last_offered_call_length_min);
$last_offered_call_length_sec = sprintf("%02d", $last_offered_call_length_sec);
$last_offered_call_length = $last_offered_call_length_hour.':'.$last_offered_call_length_min.':'.$last_offered_call_length_sec;
$last_status_change_seconds = time() - $last_status_change;
$last_status_change_length_hour = floor($last_status_change_seconds/3600);
$last_status_change_length_min = floor($last_status_change_seconds/60 - ($last_status_change_length_hour * 60));
$last_status_change_length_sec = $last_status_change_seconds - (($last_status_change_length_hour * 3600) + ($last_status_change_length_min * 60));
$last_status_change_length_min = sprintf("%02d", $last_status_change_length_min);
$last_status_change_length_sec = sprintf("%02d", $last_status_change_length_sec);
$last_status_change_length = $last_status_change_length_hour.':'.$last_status_change_length_min.':'.$last_status_change_length_sec;
echo "<tr>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$name."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$a_exten."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$status."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$state."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$last_status_change_length."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$no_answer_count."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$calls_answered."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$tier_state."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$tier_level."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$tier_position."</td>\n";
if (permission_exists('call_center_active_options')) {
echo "<td valign='top' class='".$row_style[$c]."'>";
//need to check state to so only waiting gets call, and trying/answer gets eavesdrop
if ($tier_state == "Offering" || $tier_state == "Active Inbound") {
$orig_command="{origination_caller_id_name=eavesdrop,origination_caller_id_number=".$a_exten."}user/".$_SESSION['user']['extension'][0]['user']."@".$_SESSION['domain_name']." %26eavesdrop(".$a_uuid.")";
//debug
//echo $orig_command;
//echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=log+".$orig_command.")');}\">log_cmd</a>&nbsp;\n";
echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=originate+".$orig_command.")');}\">".$text['label-eavesdrop']."</a>&nbsp;\n";
$xfer_command = $a_uuid." -bleg ".$_SESSION['user']['extension'][0]['user']." XML ".$_SESSION['domain_name'];
//$xfer_command = $a_uuid." ".$_SESSION['user']['extension'][0]['user']." XML default";
$xfer_command = urlencode($xfer_command);
echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=uuid_transfer+".$xfer_command."');}\">".$text['label-transfer']."</a>&nbsp;\n";
}
else {
$orig_call="{origination_caller_id_name=c2c-".urlencode($name).",origination_caller_id_number=".$a_exten."}user/".$_SESSION['user']['extension'][0]['user']."@".$_SESSION['domain_name']." %26bridge(user/".$a_exten."@".$_SESSION['domain_name'].")";
echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=originate+".$orig_call.")');}\">".$text['label-call']."</a>&nbsp;\n";
}
echo "</td>";
}
}
}
echo "</tr>\n";
if ($c==0) { $c=1; } else { $c=0; }
}
echo "</table>\n\n";
//add vertical spacing
echo "<br />";
echo "<br />";
echo "<br />";
echo "<br />";
//get the queue list
//send the event socket command and get the response
//callcenter_config queue list members [queue_name]
$switch_cmd = 'callcenter_config queue list members '.$queue_name;
$event_socket_str = trim(event_socket_request($fp, 'api '.$switch_cmd));
$result = str_to_named_array($event_socket_str, '|');
if (!is_array($result)) { unset($result); }
//show the title
$q_waiting=0;
$q_trying=0;
$q_answered=0;
echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo " <tr>\n";
echo " <td align='left'><b>".$text['label-queue'].": ".ucfirst($_GET[queue_name])."</b><br />\n";
echo " ".$text['description-queue']."<br />\n";
echo " </td>\n";
echo " <td align='right' valign='top'>";
if (isset($result)) foreach ($result as $row) {
$state = $row['state'];
$q_trying += ($state == "Trying") ? 1 : 0;
$q_waiting += ($state == "Waiting") ? 1 : 0;
$q_answered += ($state == "Answered") ? 1 : 0;
}
echo " <strong>".$text['label-waiting'].":</strong> <b>".$q_waiting."</b>&nbsp;&nbsp;&nbsp;";
echo " <strong>".$text['label-trying'].":</strong> <b>".$q_trying."</b>&nbsp;&nbsp;&nbsp; ";
echo " <strong>".$text['label-answered'].":</strong> <b>".$q_answered."</b>";
echo " </td>";
echo " </tr>\n";
echo "</table>\n";
echo "<br />\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo "<th>".$text['label-time']."</th>\n";
//echo "<th>".$text['label-system']."</th>\n";
echo "<th>".$text['label-name']."</th>\n";
echo "<th>".$text['label-number']."</th>\n";
echo "<th>".$text['label-status']."</th>\n";
if ((if_group("admin") || if_group("superadmin"))) {
echo "<th>".$text['label-options']."</th>\n";
}
echo "<th>".$text['label-agent']."</th>\n";
echo "</tr>\n";
if (isset($result)) foreach ($result as $row) {
$queue = $row['queue'];
$system = $row['system'];
$uuid = $row['uuid'];
$session_uuid = $row['session_uuid'];
$caller_number = $row['cid_number'];
$caller_name = $row['cid_name'];
$system_epoch = $row['system_epoch'];
$joined_epoch = $row['joined_epoch'];
$rejoined_epoch = $row['rejoined_epoch'];
$bridge_epoch = $row['bridge_epoch'];
$abandoned_epoch = $row['abandoned_epoch'];
$base_score = $row['base_score'];
$skill_score = $row['skill_score'];
$serving_agent = $row['serving_agent'];
$serving_system = $row['serving_system'];
$state = $row['state'];
$joined_seconds = time() - $joined_epoch;
$joined_length_hour = floor($joined_seconds/3600);
$joined_length_min = floor($joined_seconds/60 - ($joined_length_hour * 60));
$joined_length_sec = $joined_seconds - (($joined_length_hour * 3600) + ($joined_length_min * 60));
$joined_length_min = sprintf("%02d", $joined_length_min);
$joined_length_sec = sprintf("%02d", $joined_length_sec);
$joined_length = $joined_length_hour.':'.$joined_length_min.':'.$joined_length_sec;
//$system_seconds = time() - $system_epoch;
//$system_length_hour = floor($system_seconds/3600);
//$system_length_min = floor($system_seconds/60 - ($system_length_hour * 60));
//$system_length_sec = $system_seconds - (($system_length_hour * 3600) + ($system_length_min * 60));
//$system_length_min = sprintf("%02d", $system_length_min);
//$system_length_sec = sprintf("%02d", $system_length_sec);
//$system_length = $system_length_hour.':'.$system_length_min.':'.$system_length_sec;
echo "<tr>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$joined_length."</td>\n";
//echo "<td valign='top' class='".$row_style[$c]."'>".$system_length."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$caller_name."&nbsp;</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$caller_number."&nbsp;</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$state."</td>\n";
if (if_group("admin") || if_group("superadmin")) {
echo "<td valign='top' class='".$row_style[$c]."'>";
if ($state != "Abandoned") {
$q_caller_number = urlencode($caller_number);
$orig_command="{origination_caller_id_name=eavesdrop,origination_caller_id_number=".$q_caller_number."}user/".$_SESSION['user']['extension'][0]['user']."@".$_SESSION['domain_name']." %26eavesdrop(".$session_uuid.")";
//debug
//echo $orig_command;
//echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=log+".$orig_command.")');}\">log_cmd</a>&nbsp;\n";
echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=originate+".$orig_command.")');}\">".$text['label-eavesdrop']."</a>&nbsp;\n";
}
else {
echo "&nbsp;";
}
echo "</td>";
}
echo "<td valign='top' class='".$row_style[$c]."'>".$serving_agent."&nbsp;</td>\n";
echo "</tr>\n";
if ($c==0) { $c=1; } else { $c=0; }
}
echo "</table>\n";
//add vertical spacing
echo "<br />\n";
echo "<br />\n";
echo "<br />\n";
}
?>
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2012
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
James Rose <james.o.rose@gmail.com>
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('call_center_active_view')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//get the queue_name and set it as a variable
$queue_name = $_GET[queue_name].'@'. $_SESSION['domains'][$domain_uuid]['domain_name'];
//convert the string to a named array
function str_to_named_array($tmp_str, $tmp_delimiter) {
$tmp_array = explode ("\n", $tmp_str);
$result = '';
if (trim(strtoupper($tmp_array[0])) != "+OK") {
$tmp_field_name_array = explode ($tmp_delimiter, $tmp_array[0]);
$x = 0;
foreach ($tmp_array as $row) {
if ($x > 0) {
$tmp_field_value_array = explode ($tmp_delimiter, $tmp_array[$x]);
$y = 0;
foreach ($tmp_field_value_array as $tmp_value) {
$tmp_name = $tmp_field_name_array[$y];
if (trim(strtoupper($tmp_value)) != "+OK") {
$result[$x][$tmp_name] = $tmp_value;
}
$y++;
}
}
$x++;
}
unset($row);
}
return $result;
}
//alternate the color of the row
$c = 0;
$row_style["0"] = "row_style0";
$row_style["1"] = "row_style1";
//create an event socket connection
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
//get the call center queue, agent and tiers list
if (!$fp) {
$msg = "<div align='center'>Connection to Event Socket failed.<br /></div>";
echo "<div align='center'>\n";
echo "<table width='40%'>\n";
echo "<tr>\n";
echo "<th align='left'>Message</th>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='row_style1'><strong>$msg</strong></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</div>\n";
}
else {
//get the agent list
//show the title
echo "<b>".$text['header-agents']."</b><br />\n";
echo $text['description-agents']."<br /><br />\n";
//send the event socket command and get the response
//callcenter_config queue list tiers [queue_name] |
$switch_cmd = 'callcenter_config queue list tiers '.$queue_name;
$event_socket_str = trim(event_socket_request($fp, 'api '.$switch_cmd));
$result = str_to_named_array($event_socket_str, '|');
//prepare the result for array_multisort
$x = 0;
foreach ($result as $row) {
$tier_result[$x]['level'] = $row['level'];
$tier_result[$x]['position'] = $row['position'];
$tier_result[$x]['agent'] = $row['agent'];
$tier_result[$x]['state'] = trim($row['state']);
$tier_result[$x]['queue'] = $row['queue'];
$x++;
}
//sort the array //SORT_ASC, SORT_DESC, SORT_REGULAR, SORT_NUMERIC, SORT_STRING
array_multisort($tier_result, SORT_ASC);
//send the event socket command and get the response
//callcenter_config queue list agents [queue_name] [status] |
$switch_cmd = 'callcenter_config queue list agents '.$queue_name;
$event_socket_str = trim(event_socket_request($fp, 'api '.$switch_cmd));
$agent_result = str_to_named_array($event_socket_str, '|');
//list the agents
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo "<th>".$text['label-name']."</th>\n";
echo "<th>".$text['label-extension']."</th>\n";
echo "<th>".$text['label-status']."</th>\n";
echo "<th>".$text['label-state']."</th>\n";
echo "<th>".$text['label-status_change']."</th>\n";
echo "<th>".$text['label-missed']."</th>\n";
echo "<th>".$text['label-answered']."</th>\n";
echo "<th>".$text['label-tier_state']."</th>\n";
echo "<th>".$text['label-tier_level']."</th>\n";
echo "<th>".$text['label-tier_position']."</th>\n";
if (permission_exists('call_center_active_options')) {
echo "<th>".$text['label-options']."</th>\n";
}
echo "</tr>\n";
foreach ($tier_result as $tier_row) {
//$queue = $tier_row['queue'];
//$queue = str_replace('@'.$_SESSION['domain_name'], '', $queue);
$agent = $tier_row['agent'];
//$agent = str_replace('@'.$_SESSION['domain_name'], '', $agent);
$tier_state = $tier_row['state'];
$tier_level = $tier_row['level'];
$tier_position = $tier_row['position'];
foreach ($agent_result as $agent_row) {
if ($tier_row['agent'] == $agent_row['name']) {
$name = $agent_row['name'];
$name = str_replace('@'.$_SESSION['domain_name'], '', $name);
//$system = $agent_row['system'];
$a_uuid = $agent_row['uuid'];
//$type = $agent_row['type'];
$contact = $agent_row['contact'];
$a_exten = preg_replace("/user\//", "", $contact);
$a_exten = preg_replace("/@.*/", "", $a_exten);
$a_exten = preg_replace("/{.*}/", "", $a_exten);
$status = $agent_row['status'];
$state = $agent_row['state'];
$max_no_answer = $agent_row['max_no_answer'];
$wrap_up_time = $agent_row['wrap_up_time'];
$reject_delay_time = $agent_row['reject_delay_time'];
$busy_delay_time = $agent_row['busy_delay_time'];
$last_bridge_start = $agent_row['last_bridge_start'];
$last_bridge_end = $agent_row['last_bridge_end'];
//$last_offered_call = $agent_row['last_offered_call'];
$last_status_change = $agent_row['last_status_change'];
$no_answer_count = $agent_row['no_answer_count'];
$calls_answered = $agent_row['calls_answered'];
$talk_time = $agent_row['talk_time'];
$ready_time = $agent_row['ready_time'];
$last_offered_call_seconds = time() - $last_offered_call;
$last_offered_call_length_hour = floor($last_offered_call_seconds/3600);
$last_offered_call_length_min = floor($last_offered_call_seconds/60 - ($last_offered_call_length_hour * 60));
$last_offered_call_length_sec = $last_offered_call_seconds - (($last_offered_call_length_hour * 3600) + ($last_offered_call_length_min * 60));
$last_offered_call_length_min = sprintf("%02d", $last_offered_call_length_min);
$last_offered_call_length_sec = sprintf("%02d", $last_offered_call_length_sec);
$last_offered_call_length = $last_offered_call_length_hour.':'.$last_offered_call_length_min.':'.$last_offered_call_length_sec;
$last_status_change_seconds = time() - $last_status_change;
$last_status_change_length_hour = floor($last_status_change_seconds/3600);
$last_status_change_length_min = floor($last_status_change_seconds/60 - ($last_status_change_length_hour * 60));
$last_status_change_length_sec = $last_status_change_seconds - (($last_status_change_length_hour * 3600) + ($last_status_change_length_min * 60));
$last_status_change_length_min = sprintf("%02d", $last_status_change_length_min);
$last_status_change_length_sec = sprintf("%02d", $last_status_change_length_sec);
$last_status_change_length = $last_status_change_length_hour.':'.$last_status_change_length_min.':'.$last_status_change_length_sec;
echo "<tr>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$name."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$a_exten."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$status."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$state."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$last_status_change_length."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$no_answer_count."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$calls_answered."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$tier_state."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$tier_level."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$tier_position."</td>\n";
if (permission_exists('call_center_active_options')) {
echo "<td valign='top' class='".$row_style[$c]."'>";
//need to check state to so only waiting gets call, and trying/answer gets eavesdrop
if ($tier_state == "Offering" || $tier_state == "Active Inbound") {
$orig_command="{origination_caller_id_name=eavesdrop,origination_caller_id_number=".$a_exten."}user/".$_SESSION['user']['extension'][0]['user']."@".$_SESSION['domain_name']." %26eavesdrop(".$a_uuid.")";
//debug
//echo $orig_command;
//echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=log+".$orig_command.")');}\">log_cmd</a>&nbsp;\n";
echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=originate+".$orig_command.")');}\">".$text['label-eavesdrop']."</a>&nbsp;\n";
$xfer_command = $a_uuid." -bleg ".$_SESSION['user']['extension'][0]['user']." XML ".$_SESSION['domain_name'];
//$xfer_command = $a_uuid." ".$_SESSION['user']['extension'][0]['user']." XML default";
$xfer_command = urlencode($xfer_command);
echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=uuid_transfer+".$xfer_command."');}\">".$text['label-transfer']."</a>&nbsp;\n";
}
else {
$orig_call="{origination_caller_id_name=c2c-".urlencode($name).",origination_caller_id_number=".$a_exten."}user/".$_SESSION['user']['extension'][0]['user']."@".$_SESSION['domain_name']." %26bridge(user/".$a_exten."@".$_SESSION['domain_name'].")";
echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=originate+".$orig_call.")');}\">".$text['label-call']."</a>&nbsp;\n";
}
echo "</td>";
}
}
}
echo "</tr>\n";
if ($c==0) { $c=1; } else { $c=0; }
}
echo "</table>\n\n";
//add vertical spacing
echo "<br />";
echo "<br />";
echo "<br />";
echo "<br />";
//get the queue list
//send the event socket command and get the response
//callcenter_config queue list members [queue_name]
$switch_cmd = 'callcenter_config queue list members '.$queue_name;
$event_socket_str = trim(event_socket_request($fp, 'api '.$switch_cmd));
$result = str_to_named_array($event_socket_str, '|');
//show the title
$q_waiting=0;
$q_trying=0;
$q_answered=0;
echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo " <tr>\n";
echo " <td align='left'><b>".$text['label-queue'].": ".ucfirst($_GET[queue_name])."</b><br />\n";
echo " ".$text['description-queue']."<br />\n";
echo " </td>\n";
echo " <td align='right' valign='top'>";
foreach ($result as $row) {
$state = $row['state'];
$q_trying += ($state == "Trying") ? 1 : 0;
$q_waiting += ($state == "Waiting") ? 1 : 0;
$q_answered += ($state == "Answered") ? 1 : 0;
}
echo " <strong>".$text['label-waiting'].":</strong> <b>".$q_waiting."</b>&nbsp;&nbsp;&nbsp;";
echo " <strong>".$text['label-trying'].":</strong> <b>".$q_trying."</b>&nbsp;&nbsp;&nbsp; ";
echo " <strong>".$text['label-answered'].":</strong> <b>".$q_answered."</b>";
echo " </td>";
echo " </tr>\n";
echo "</table>\n";
echo "<br />\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo "<th>".$text['label-time']."</th>\n";
//echo "<th>".$text['label-system']."</th>\n";
echo "<th>".$text['label-name']."</th>\n";
echo "<th>".$text['label-number']."</th>\n";
echo "<th>".$text['label-status']."</th>\n";
if ((if_group("admin") || if_group("superadmin"))) {
echo "<th>".$text['label-options']."</th>\n";
}
echo "<th>".$text['label-agent']."</th>\n";
echo "</tr>\n";
foreach ($result as $row) {
$queue = $row['queue'];
$system = $row['system'];
$uuid = $row['uuid'];
$session_uuid = $row['session_uuid'];
$caller_number = $row['cid_number'];
$caller_name = $row['cid_name'];
$system_epoch = $row['system_epoch'];
$joined_epoch = $row['joined_epoch'];
$rejoined_epoch = $row['rejoined_epoch'];
$bridge_epoch = $row['bridge_epoch'];
$abandoned_epoch = $row['abandoned_epoch'];
$base_score = $row['base_score'];
$skill_score = $row['skill_score'];
$serving_agent = $row['serving_agent'];
$serving_system = $row['serving_system'];
$state = $row['state'];
$joined_seconds = time() - $joined_epoch;
$joined_length_hour = floor($joined_seconds/3600);
$joined_length_min = floor($joined_seconds/60 - ($joined_length_hour * 60));
$joined_length_sec = $joined_seconds - (($joined_length_hour * 3600) + ($joined_length_min * 60));
$joined_length_min = sprintf("%02d", $joined_length_min);
$joined_length_sec = sprintf("%02d", $joined_length_sec);
$joined_length = $joined_length_hour.':'.$joined_length_min.':'.$joined_length_sec;
//$system_seconds = time() - $system_epoch;
//$system_length_hour = floor($system_seconds/3600);
//$system_length_min = floor($system_seconds/60 - ($system_length_hour * 60));
//$system_length_sec = $system_seconds - (($system_length_hour * 3600) + ($system_length_min * 60));
//$system_length_min = sprintf("%02d", $system_length_min);
//$system_length_sec = sprintf("%02d", $system_length_sec);
//$system_length = $system_length_hour.':'.$system_length_min.':'.$system_length_sec;
echo "<tr>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$joined_length."</td>\n";
//echo "<td valign='top' class='".$row_style[$c]."'>".$system_length."</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$caller_name."&nbsp;</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$caller_number."&nbsp;</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$state."</td>\n";
if (if_group("admin") || if_group("superadmin")) {
echo "<td valign='top' class='".$row_style[$c]."'>";
if ($state != "Abandoned") {
$q_caller_number = urlencode($caller_number);
$orig_command="{origination_caller_id_name=eavesdrop,origination_caller_id_number=".$q_caller_number."}user/".$_SESSION['user']['extension'][0]['user']."@".$_SESSION['domain_name']." %26eavesdrop(".$session_uuid.")";
//debug
//echo $orig_command;
//echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=log+".$orig_command.")');}\">log_cmd</a>&nbsp;\n";
echo " <a href='javascript:void(0);' style='color: #444444;' onclick=\"confirm_response = confirm('".$text['message-confirm']."');if (confirm_response){send_cmd('call_center_exec.php?cmd=originate+".$orig_command.")');}\">".$text['label-eavesdrop']."</a>&nbsp;\n";
}
else {
echo "&nbsp;";
}
echo "</td>";
}
echo "<td valign='top' class='".$row_style[$c]."'>".$serving_agent."&nbsp;</td>\n";
echo "</tr>\n";
if ($c==0) { $c=1; } else { $c=0; }
}
echo "</table>\n";
//add vertical spacing
echo "<br />\n";
echo "<br />\n";
echo "<br />\n";
}
?>
+100 -100
View File
@@ -1,100 +1,100 @@
<?php
/* $Id$ */
/*
v_exec.php
Copyright (C) 2008 Mark J Crane
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('call_center_active_view')) {
//access granted
}
else {
echo "access denied";
exit;
}
//http get variables set to php variables
if (count($_GET)>0) {
$switch_cmd = trim($_GET["cmd"]);
$action = trim(check_str($_GET["action"]));
$data = trim(check_str($_GET["data"]));
$username = trim(check_str($_GET["username"]));
}
//authorized commands
if (stristr($switch_cmd, 'user_status') == true) {
//authorized;
} elseif (stristr($switch_cmd, 'callcenter_config') == true) {
//authorized;
} elseif (stristr($switch_cmd, 'eavesdrop') == true) {
//authorized;
} elseif (stristr($switch_cmd, 'bridge') == true) {
//authorized;
} elseif (stristr($switch_cmd, 'uuid_transfer') == true) {
//authorized;
} else {
//not found. this command is not authorized
echo "access denied";
exit;
}
//set the username
if (if_group("admin") || if_group("superadmin")) {
//use the username that was provided
}
else {
$username = $_SESSION['username'];
}
//get to php variables
if (count($_GET)>0) {
if ($action == "user_status") {
$user_status = $data;
$sql = "update v_users set ";
$sql .= "user_status = '".trim($user_status, "'")."' ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and username = '".$username."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
}
//fs cmd
if (strlen($switch_cmd) > 0) {
//setup the event socket connection
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
//ensure the connection exists
if ($fp) {
//send the command
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
//set the user state
$cmd = "api callcenter_config agent set state ".$username."@".$_SESSION['domain_name']." Waiting";
$response = event_socket_request($fp, $cmd);
}
}
}
?>
<?php
/* $Id$ */
/*
v_exec.php
Copyright (C) 2008 Mark J Crane
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('call_center_active_view')) {
//access granted
}
else {
echo "access denied";
exit;
}
//http get variables set to php variables
if (count($_GET)>0) {
$switch_cmd = trim($_GET["cmd"]);
$action = trim(check_str($_GET["action"]));
$data = trim(check_str($_GET["data"]));
$username = trim(check_str($_GET["username"]));
}
//authorized commands
if (stristr($switch_cmd, 'user_status') == true) {
//authorized;
} elseif (stristr($switch_cmd, 'callcenter_config') == true) {
//authorized;
} elseif (stristr($switch_cmd, 'eavesdrop') == true) {
//authorized;
} elseif (stristr($switch_cmd, 'bridge') == true) {
//authorized;
} elseif (stristr($switch_cmd, 'uuid_transfer') == true) {
//authorized;
} else {
//not found. this command is not authorized
echo "access denied";
exit;
}
//set the username
if (if_group("admin") || if_group("superadmin")) {
//use the username that was provided
}
else {
$username = $_SESSION['username'];
}
//get to php variables
if (count($_GET)>0) {
if ($action == "user_status") {
$user_status = $data;
$sql = "update v_users set ";
$sql .= "user_status = '".trim($user_status, "'")."' ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and username = '".$username."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
}
//fs cmd
if (strlen($switch_cmd) > 0) {
//setup the event socket connection
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
//ensure the connection exists
if ($fp) {
//send the command
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
//set the user state
$cmd = "api callcenter_config agent set state ".$username."@".$_SESSION['domain_name']." Waiting";
$response = event_socket_request($fp, $cmd);
}
}
}
?>
+1 -1
View File
@@ -69,7 +69,7 @@ else {
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$num_rows = count($result);
unset ($prep_statement, $result, $sql);
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 100;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+1 -1
View File
@@ -17,7 +17,7 @@
$apps[$x]['description']['fr-ca'] = "Queues pour envoyer les appels entrants vers les agents disponibles.";
$apps[$x]['description']['fr-ch'] = "";
$apps[$x]['description']['pt-pt'] = "As filas servem para gerenciamento de chamadas de entrada e encaminhamento das mesmas para os agentes dispon%uFFFDveis.";
$apps[$x]['description']['pt-br'] = "As filas servem para gerenciar as chamadas que entram e encaminhar as mesmas para os agentes disponíveis.";
$apps[$x]['description']['pt-br'] = "";
//destination details
$y = 0;
+67 -26
View File
@@ -1,27 +1,68 @@
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2015
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2015
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
//process this only one time
if ($domains_processed == 1) {
//add switch call_center dir if it is missing
$sql = "select count(*) as num_rows from v_default_settings ";
$sql .= "where default_setting_category = 'switch' ";
$sql .= "and default_setting_subcategory = 'call_center' ";
$sql .= "and default_setting_name = 'dir' ";
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
if ($row['num_rows'] == 0) {
$sql = "insert into v_default_settings ";
$sql .= "(";
$sql .= "default_setting_uuid, ";
$sql .= "default_setting_category, ";
$sql .= "default_setting_subcategory, ";
$sql .= "default_setting_name, ";
$sql .= "default_setting_value, ";
$sql .= "default_setting_enabled, ";
$sql .= "default_setting_description ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'".uuid()."', ";
$sql .= "'switch', ";
$sql .= "'call_center', ";
$sql .= "'dir', ";
$sql .= "'".$_SESSION['switch']['conf']['dir']."/autoload_configs', ";
$sql .= "'true', ";
$sql .= "'' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
}
unset($prep_statement, $row);
}
}
?>
+294 -84
View File
@@ -5,7 +5,7 @@ $text['title-call_centers']['es-cl'] = "Centro de Llamadas";
$text['title-call_centers']['fr-fr'] = "Centre d'appel";
$text['title-call_centers']['fr-ca'] = "Centre d' appels";
$text['title-call_centers']['pt-pt'] = "Centro de Chamadas";
$text['title-call_centers']['pt-br'] = "Call Center";
$text['title-call_centers']['pt-br'] = "Centro de chamadas";
$text['title-call_centers']['pl'] = "Call Center ";
$text['title-call_centers']['sv-se'] = "Call Center";
$text['title-call_centers']['uk'] = "Кол-центр";
@@ -15,26 +15,26 @@ $text['title-call_center_tier_edit']['en-us'] = "Call Center Tier";
$text['title-call_center_tier_edit']['es-cl'] = "Editar Nivel de Centro de Llamados";
$text['title-call_center_tier_edit']['pt-pt'] = "Editar Nível do Call Center";
$text['title-call_center_tier_edit']['fr-fr'] = "Editer un Niveau du Centre d'Appel";
$text['title-call_center_tier_edit']['pt-br'] = "Editar nível do Call Center";
$text['title-call_center_tier_edit']['pt-br'] = "Editar nivel do call center";
$text['title-call_center_tier_edit']['pl'] = "Poziom w Call Center ";
$text['title-call_center_tier_edit']['sv-se'] = "Call Center Kunskap";
$text['title-call_center_tier_edit']['uk'] = "Рівень кол-центра";
$text['title-call_center_tier_edit']['de-at'] = "Callcenter Ebene";
$text['title-call_center_queues_edit']['en-us'] = "Edit Call Center Queue";
$text['title-call_center_queues_edit']['es-cl'] = "Editar Cola de Centro de Llamados";
$text['title-call_center_queues_edit']['pt-pt'] = "Editar Fila de Call Center";
$text['title-call_center_queues_edit']['pt-br'] = "Editar fila de Call Center";
$text['title-call_center_queues_edit']['en-us'] = "";
$text['title-call_center_queues_edit']['pt-br'] = "Editar fila de call center";
$text['title-call_center_queues_edit']['pl'] = "";
$text['title-call_center_queues_edit']['sv-se'] = "";
$text['title-call_center_queues_edit']['uk'] = "";
$text['title-call_center_queues_edit']['fr-fr'] = "";
$text['title-call_center_queues_edit']['de-at'] = "";
$text['title-call_center_queues_add']['en-us'] = "Add Call Center Queue";
$text['title-call_center_queues_add']['es-cl'] = "Agregar Cola de Centro de Llamados";
$text['title-call_center_queues_add']['pt-pt'] = "Adicionar Fila de Call Center";
$text['title-call_center_queues_add']['pt-br'] = "Adicionar filas de Call Center";
$text['title-call_center_queues_add']['en-us'] = "";
$text['title-call_center_queues_add']['pt-br'] = "Adicionar fila de call center";
$text['title-call_center_queues_add']['pl'] = "";
$text['title-call_center_queues_add']['sv-se'] = "";
$text['title-call_center_queues_add']['uk'] = "";
@@ -45,7 +45,7 @@ $text['title-call_center_queues']['en-us'] = "Call Center Queues";
$text['title-call_center_queues']['es-cl'] = "Colas de Centro de Llamados";
$text['title-call_center_queues']['pt-pt'] = "Filas de Call Center";
$text['title-call_center_queues']['fr-fr'] = "Queues du Centre d'appels";
$text['title-call_center_queues']['pt-br'] = "Filas de Call Center";
$text['title-call_center_queues']['pt-br'] = "Filas de call center";
$text['title-call_center_queues']['pl'] = "Kolejki w Call Center ";
$text['title-call_center_queues']['sv-se'] = "Call Center Kö:er";
$text['title-call_center_queues']['uk'] = "Черги кол-центра";
@@ -53,7 +53,7 @@ $text['title-call_center_queues']['de-at'] = "Callcenter Warteschlangen";
$text['title-call_center_queue_edit']['en-us'] = "Call Center Queue";
$text['title-call_center_queue_edit']['fr-fr'] = "Editer une Queue";
$text['title-call_center_queue_edit']['pt-br'] = "Editar fila de Call Center";
$text['title-call_center_queue_edit']['pt-br'] = "Call Center Queue";
$text['title-call_center_queue_edit']['pl'] = "Kolejka w Call Center ";
$text['title-call_center_queue_edit']['sv-se'] = "Call Center Kö";
$text['title-call_center_queue_edit']['uk'] = "Черга кол-центра";
@@ -63,7 +63,7 @@ $text['title-call_center_queue_edit']['de-at'] = "Callcenter Warteschlange";
$text['title-call_center_queue_add']['en-us'] = "Call Center Queue";
$text['title-call_center_queue_add']['fr-fr'] = "Ajouter une Queue";
$text['title-call_center_queue_add']['pt-br'] = "Adicionar fila ao Call Center";
$text['title-call_center_queue_add']['pt-br'] = "Call Center Queue";
$text['title-call_center_queue_add']['pl'] = "Kolejka w Call Center ";
$text['title-call_center_queue_add']['sv-se'] = "Call Center Kö";
$text['title-call_center_queue_add']['uk'] = "Черга кол-центра";
@@ -85,7 +85,7 @@ $text['title-call_center_agent_status']['en-us'] = "Call Center Agent Status";
$text['title-call_center_agent_status']['es-cl'] = "Estado de Agente de Centro de Llamados";
$text['title-call_center_agent_status']['pt-pt'] = "Estado do Agente do Call Center";
$text['title-call_center_agent_status']['fr-fr'] = "Etat de l'Agent";
$text['title-call_center_agent_status']['pt-br'] = "Estado do agente do Call Center";
$text['title-call_center_agent_status']['pt-br'] = "Estado do agente call center";
$text['title-call_center_agent_status']['pl'] = "Status agentów w Call Center";
$text['title-call_center_agent_status']['sv-se'] = "Call Center Agent Status";
$text['title-call_center_agent_status']['uk'] = "Статус оператора кол-центра";
@@ -95,7 +95,7 @@ $text['title-call_center_agent_edit']['en-us'] = "Call Center Agent";
$text['title-call_center_agent_edit']['es-cl'] = "Editar Agente de Centro de Llamados";
$text['title-call_center_agent_edit']['pt-pt'] = "Editar Agente do Call Center";
$text['title-call_center_agent_edit']['fr-fr'] = "Editer un Agent";
$text['title-call_center_agent_edit']['pt-br'] = "Editar agente do Call Center";
$text['title-call_center_agent_edit']['pt-br'] = "Editar agente do call center";
$text['title-call_center_agent_edit']['pl'] = "Agent w Call Center";
$text['title-call_center_agent_edit']['sv-se'] = "Call Center Agent";
$text['title-call_center_agent_edit']['uk'] = "Оператор кол-центра";
@@ -105,7 +105,7 @@ $text['title-call_center_agent_add']['en-us'] = "Call Center Agent";
$text['title-call_center_agent_add']['es-cl'] = "Agregar Agente de Centro de Llamados";
$text['title-call_center_agent_add']['pt-pt'] = "Adicionar Agente ao Call Center";
$text['title-call_center_agent_add']['fr-fr'] = "Ajouter un Agent";
$text['title-call_center_agent_add']['pt-br'] = "Adicionar agente ao Call Center";
$text['title-call_center_agent_add']['pt-br'] = "Adicionar agente ao call center";
$text['title-call_center_agent_add']['pl'] = "Agent w Call Center";
$text['title-call_center_agent_add']['sv-se'] = "Call Center Agent";
$text['title-call_center_agent_add']['uk'] = "Оператор кол-центра";
@@ -116,7 +116,7 @@ $text['title-call_center']['es-cl'] = "Centro de Llamadas";
$text['title-call_center']['fr-fr'] = "Centre d'appel";
$text['title-call_center']['fr-ca'] = "Centre d' appels";
$text['title-call_center']['pt-pt'] = "Centro de Chamadas";
$text['title-call_center']['pt-br'] = "Call Center";
$text['title-call_center']['pt-br'] = "Centro de chamadas";
$text['title-call_center']['pl'] = "Call Center ";
$text['title-call_center']['sv-se'] = "Call Center";
$text['title-call_center']['uk'] = "Кол-центр";
@@ -126,7 +126,7 @@ $text['option-usring']['en-us'] = "us-ring";
$text['option-usring']['es-cl'] = "us-ring";
$text['option-usring']['pt-pt'] = "us-ring";
$text['option-usring']['fr-fr'] = "us-ring";
$text['option-usring']['pt-br'] = "us-ring";
$text['option-usring']['pt-br'] = "USRing";
$text['option-usring']['pl'] = "us-ring";
$text['option-usring']['sv-se'] = "us-ring";
$text['option-usring']['uk'] = "us-ring ";
@@ -136,7 +136,7 @@ $text['option-ukring']['en-us'] = "uk-ring";
$text['option-ukring']['es-cl'] = "uk-ring";
$text['option-ukring']['pt-pt'] = "uk-ring";
$text['option-ukring']['fr-fr'] = "uk-ring";
$text['option-ukring']['pt-br'] = "uk-ring";
$text['option-ukring']['pt-br'] = "UKRing";
$text['option-ukring']['pl'] = "uk-ring";
$text['option-ukring']['sv-se'] = "uk-ring";
$text['option-ukring']['uk'] = "uk-ring ";
@@ -196,7 +196,7 @@ $text['option-rsring']['en-us'] = "rs-ring";
$text['option-rsring']['es-cl'] = "rs-ring";
$text['option-rsring']['pt-pt'] = "rs-ring";
$text['option-rsring']['fr-fr'] = "rs-ring";
$text['option-rsring']['pt-br'] = "rs-ring";
$text['option-rsring']['pt-br'] = "RSRing";
$text['option-rsring']['pl'] = "rs-ring";
$text['option-rsring']['sv-se'] = "rs-ring";
$text['option-rsring']['uk'] = "rs-ring";
@@ -245,7 +245,7 @@ $text['option-queue']['de-at'] = "Warteschlange";
$text['option-ptring']['en-us'] = "pt-ring";
$text['option-ptring']['pt-pt'] = "pt-ring";
$text['option-ptring']['fr-fr'] = "pt-ring";
$text['option-ptring']['pt-br'] = "pt-ring";
$text['option-ptring']['pt-br'] = "PTRing";
$text['option-ptring']['pl'] = "pt-ring";
$text['option-ptring']['sv-se'] = "pt-ring";
$text['option-ptring']['uk'] = "pt-ring";
@@ -286,7 +286,7 @@ $text['option-logged_out']['en-us'] = "Logged Out";
$text['option-logged_out']['es-cl'] = "Desconectado";
$text['option-logged_out']['pt-pt'] = "Desconectado";
$text['option-logged_out']['fr-fr'] = "Déconnecté";
$text['option-logged_out']['pt-br'] = "Desconectado";
$text['option-logged_out']['pt-br'] = "Desligado";
$text['option-logged_out']['pl'] = "Wylogowany";
$text['option-logged_out']['sv-se'] = "Utloggad";
$text['option-logged_out']['uk'] = "Вийшов";
@@ -296,7 +296,7 @@ $text['option-itring']['en-us'] = "it-ring";
$text['option-itring']['es-cl'] = "it-ring";
$text['option-itring']['pt-pt'] = "it-ring";
$text['option-itring']['fr-fr'] = "it-ring";
$text['option-itring']['pt-br'] = "it_ring";
$text['option-itring']['pt-br'] = "ITRing";
$text['option-itring']['pl'] = "it-ring";
$text['option-itring']['sv-se'] = "it-ring";
$text['option-itring']['uk'] = "it-ring ";
@@ -306,7 +306,7 @@ $text['option-frring']['en-us'] = "fr-ring";
$text['option-frring']['es-cl'] = "fr-ring";
$text['option-frring']['pt-pt'] = "fr-ring";
$text['option-frring']['fr-fr'] = "fr-ring";
$text['option-frring']['pt-br'] = "fr-ring";
$text['option-frring']['pt-br'] = "FRRing";
$text['option-frring']['pl'] = "fr-ring";
$text['option-frring']['sv-se'] = "fr-ring";
$text['option-frring']['uk'] = "fr-ring ";
@@ -326,7 +326,7 @@ $text['option-do_not_disturb']['en-us'] = "Do Not Disturb";
$text['option-do_not_disturb']['es-cl'] = "No Molestar";
$text['option-do_not_disturb']['pt-pt'] = "Não incomodar";
$text['option-do_not_disturb']['fr-fr'] = "Ne Pas Derranger";
$text['option-do_not_disturb']['pt-br'] = "Não perturbe (DND)";
$text['option-do_not_disturb']['pt-br'] = "Não perturbe";
$text['option-do_not_disturb']['pl'] = "Nie przeszkadzaj (DND)";
$text['option-do_not_disturb']['sv-se'] = "Stör Ej";
$text['option-do_not_disturb']['uk'] = "Не турбувати";
@@ -336,7 +336,7 @@ $text['option-available_on_demand']['en-us'] = "Available (On Demand)";
$text['option-available_on_demand']['es-cl'] = "Disponible (Bajo Demanda)";
$text['option-available_on_demand']['pt-pt'] = "Disponível (On Demand)";
$text['option-available_on_demand']['fr-fr'] = "Disponible (Sur Demande)";
$text['option-available_on_demand']['pt-br'] = "Disponível (Sob demanda)";
$text['option-available_on_demand']['pt-br'] = "Disponivel (A pedido)";
$text['option-available_on_demand']['pl'] = "Dostępny (na żądanie)";
$text['option-available_on_demand']['sv-se'] = "Tillgänglig (På Begäran)";
$text['option-available_on_demand']['uk'] = "Доступний (на вимогу)";
@@ -372,11 +372,31 @@ $text['option-agent_with_fewest_calls']['sv-se'] = "Agent med minst antal samtal
$text['option-agent_with_fewest_calls']['uk'] = "Оператор з найменшою кількістю дзвінків";
$text['option-agent_with_fewest_calls']['de-at'] = "Agent mit wenigsten Anrufen";
$text['message-update']['en-us'] = "Update Completed";
$text['message-update']['es-cl'] = "Actualización Completada";
$text['message-update']['pt-pt'] = "Actualização Efectuada";
$text['message-update']['fr-fr'] = "Mis à jour";
$text['message-update']['pt-br'] = "Atualização Efetuada";
$text['message-update']['pl'] = "Zaktualizowano poprawnie";
$text['message-update']['sv-se'] = "Uppdatering Klar";
$text['message-update']['uk'] = "Оновлення завершено";
$text['message-update']['de-at'] = "Aktualisierung durchgeführt";
$text['message-required']['en-us'] = "Please provide:";
$text['message-required']['es-cl'] = "Por favor indique:";
$text['message-required']['pt-pt'] = "Por favor indique:";
$text['message-required']['fr-fr'] = "Merci d'indiquer:";
$text['message-required']['pt-br'] = "Por favor Indique:";
$text['message-required']['pl'] = "Wpisz:";
$text['message-required']['sv-se'] = "Var god uppge:";
$text['message-required']['uk'] = "Будь ласка, вкажіть:";
$text['message-required']['de-at'] = "Bitte geben Sie folgendes an:";
$text['message-maximum_queues']['en-us'] = "Maximum Queues:";
$text['message-maximum_queues']['es-cl'] = "Colas Máximo Permitido:";
$text['message-maximum_queues']['pt-pt'] = "Filas Máximo Permitido:";
$text['message-maximum_queues']['fr-fr'] = "Files d'attente Maximum Autorisé:";
$text['message-maximum_queues']['pt-br'] = "Máximo de filas permitido:";
$text['message-maximum_queues']['pt-br'] = "Máximo de filas permitido";
$text['message-maximum_queues']['pl'] = "Maksymalna ilość kolejek:";
$text['message-maximum_queues']['sv-se'] = "Max Antal Kö:er:";
$text['message-maximum_queues']['uk'] = "Максимальна кількість черг:";
@@ -386,12 +406,42 @@ $text['message-duplicate_agent_id']['en-us'] = "Duplicate Agent ID Detected";
$text['message-duplicate_agent_id']['es-cl'] = "Duplicar ID de Agente detectada";
$text['message-duplicate_agent_id']['pt-pt'] = "Duplicar Agent ID Detectado";
$text['message-duplicate_agent_id']['fr-fr'] = "Dupliquer Agent ID détecté";
$text['message-duplicate_agent_id']['pt-br'] = "Duplicar ID do agente detectado";
$text['message-duplicate_agent_id']['pt-br'] = "Duplicar Agent ID Detectado";
$text['message-duplicate_agent_id']['pl'] = "Duplikat Wykryto Agenta ID";
$text['message-duplicate_agent_id']['uk'] = "Повторювані Ідентифікатор агента Виявлено";
$text['message-duplicate_agent_id']['sv-se'] = "Duplicate Agent-ID Funnet";
$text['message-duplicate_agent_id']['de-at'] = "Agenten ID bereits vorhanden";
$text['message-delete']['en-us'] = "Delete Completed";
$text['message-delete']['es-cl'] = "Eliminación Completada";
$text['message-delete']['pt-pt'] = "Remoção Efectuada";
$text['message-delete']['fr-fr'] = "Supprimé";
$text['message-delete']['pt-br'] = "Remoção Efetuada";
$text['message-delete']['pl'] = "Usunięto poprawnie";
$text['message-delete']['sv-se'] = "Borttagning Klar";
$text['message-delete']['uk'] = "Видалено";
$text['message-delete']['de-at'] = "Erfolgreich gelöscht";
$text['message-copy']['en-us'] = "Copy Completed";
$text['message-copy']['es-cl'] = "Copia Realizada";
$text['message-copy']['pt-pt'] = "Cópia Efectuada";
$text['message-copy']['fr-fr'] = "Copié";
$text['message-copy']['pt-br'] = "Cópia Efetuada";
$text['message-copy']['pl'] = "Skopiowano poprawnie";
$text['message-copy']['sv-se'] = "Kopiering Slutförd";
$text['message-copy']['uk'] = "Скопійовано";
$text['message-copy']['de-at'] = "Erfolgreich kopiert";
$text['message-add']['en-us'] = "Add Completed";
$text['message-add']['es-cl'] = "Adición Completada";
$text['message-add']['pt-pt'] = "Adição Efectuada";
$text['message-add']['fr-fr'] = "Ajouté";
$text['message-add']['pt-br'] = "Criação Efetuada";
$text['message-add']['pl'] = "Dodano poprawnie";
$text['message-add']['sv-se'] = "Tillagd";
$text['message-add']['uk'] = "Додано";
$text['message-add']['de-at'] = "Erfolgreich hinzugefügt";
$text['label-wrap_up_time']['en-us'] = "Wrap Up Time";
$text['label-wrap_up_time']['es-cl'] = "Tiempo de Preparación";
$text['label-wrap_up_time']['pt-pt'] = "Tempo de preparação";
@@ -436,7 +486,7 @@ $text['label-tiers']['en-us'] = "Tiers";
$text['label-tiers']['es-cl'] = "Niveles de Centro de Llamados";
$text['label-tiers']['pt-pt'] = "Níveis do Call Center";
$text['label-tiers']['fr-fr'] = "Niveaux du Centre d'Appel";
$text['label-tiers']['pt-br'] = "Niveis do Call Center";
$text['label-tiers']['pt-br'] = "Niveis do call center";
$text['label-tiers']['pl'] = "Poziomy";
$text['label-tiers']['sv-se'] = "Kunskap";
$text['label-tiers']['uk'] = "";
@@ -446,7 +496,7 @@ $text['label-tier_rules_apply']['en-us'] = "Tier Rules Apply";
$text['label-tier_rules_apply']['es-cl'] = "Aplicar Reglas de Nivel";
$text['label-tier_rules_apply']['pt-pt'] = "Aplicar Regras de Nível";
$text['label-tier_rules_apply']['fr-fr'] = "Appliquer la Règle du Niveau";
$text['label-tier_rules_apply']['pt-br'] = "Aplicar regas de nível";
$text['label-tier_rules_apply']['pt-br'] = "Aplicar regas de nivel";
$text['label-tier_rules_apply']['pl'] = "Zastosuj zasadę poziomów";
$text['label-tier_rules_apply']['sv-se'] = "Kunskap Regler Gäller";
$text['label-tier_rules_apply']['uk'] = "";
@@ -456,7 +506,7 @@ $text['label-tier_rule_wait_second']['en-us'] = "Tier Rule Wait Second";
$text['label-tier_rule_wait_second']['es-cl'] = "Regla de nível segundo de espera";
$text['label-tier_rule_wait_second']['pt-pt'] = "Regra de nível segundo espera";
$text['label-tier_rule_wait_second']['fr-fr'] = "Attente, en seconde, de la Règle du Tier";
$text['label-tier_rule_wait_second']['pt-br'] = "Regra de segundo nível de espera";
$text['label-tier_rule_wait_second']['pt-br'] = "Regra de segundo nivel de espera";
$text['label-tier_rule_wait_second']['pl'] = "Poziomowa zasada czekania";
$text['label-tier_rule_wait_second']['sv-se'] = "Kunskap Regel Väntetid i Sekunder";
$text['label-tier_rule_wait_second']['uk'] = "";
@@ -466,7 +516,7 @@ $text['label-tier_rule_wait_multiply_level']['en-us'] = "Tier Rule Wait Multiply
$text['label-tier_rule_wait_multiply_level']['es-cl'] = "Regla de nivel multiplicar nivel de espera";
$text['label-tier_rule_wait_multiply_level']['pt-pt'] = "Regra de nível de espera multiplicado pelo nível";
$text['label-tier_rule_wait_multiply_level']['fr-fr'] = "Règle d'Attente du Niveau Multipliée par Niveau";
$text['label-tier_rule_wait_multiply_level']['pt-br'] = "Regra de espera multiplicado pelo nível";
$text['label-tier_rule_wait_multiply_level']['pt-br'] = "Regra de espera multiplicado pelo nivel";
$text['label-tier_rule_wait_multiply_level']['pl'] = "Poziomowa zasada przemnożenia";
$text['label-tier_rule_wait_multiply_level']['sv-se'] = "Kunskap Regel Väntetid Multipla Värden";
$text['label-tier_rule_wait_multiply_level']['uk'] = "";
@@ -476,7 +526,7 @@ $text['label-tier_rule_no_agent_no_wait']['en-us'] = "Tier Rule No Agent No Wait
$text['label-tier_rule_no_agent_no_wait']['es-cl'] = "Regla de nivel No espera Sin Agente";
$text['label-tier_rule_no_agent_no_wait']['pt-pt'] = "Regra de Nível Sem agente Sem espera";
$text['label-tier_rule_no_agent_no_wait']['fr-fr'] = "Règle du Niveau Pas d'Agent, Pas d'attente";
$text['label-tier_rule_no_agent_no_wait']['pt-br'] = "Regra de nível sem espera sem agente";
$text['label-tier_rule_no_agent_no_wait']['pt-br'] = "Regra de nivel sem espera do agente";
$text['label-tier_rule_no_agent_no_wait']['pl'] = "Zasada poziomowa - nie ma agentów, nie ma czekania";
$text['label-tier_rule_no_agent_no_wait']['sv-se'] = "Kunskap Regel Ingen Agent Ingen Väntan";
$text['label-tier_rule_no_agent_no_wait']['uk'] = "";
@@ -486,7 +536,7 @@ $text['label-tier_position']['en-us'] = "Tier Position";
$text['label-tier_position']['es-cl'] = "Posición de Nivel";
$text['label-tier_position']['pt-pt'] = "Posição no Nível";
$text['label-tier_position']['fr-fr'] = "Position du Niveau";
$text['label-tier_position']['pt-br'] = "Nível da posição";
$text['label-tier_position']['pt-br'] = "Nivel da posição";
$text['label-tier_position']['pl'] = "Pozycja poziomu";
$text['label-tier_position']['sv-se'] = "Kunskap Position";
$text['label-tier_position']['uk'] = "";
@@ -496,7 +546,7 @@ $text['label-tier_level']['en-us'] = "Tier Level";
$text['label-tier_level']['es-cl'] = "Nivel";
$text['label-tier_level']['pt-pt'] = "Nível da Camada";
$text['label-tier_level']['fr-fr'] = "Niveau";
$text['label-tier_level']['pt-br'] = "Nível da camada";
$text['label-tier_level']['pt-br'] = "Nivel da camada";
$text['label-tier_level']['pl'] = "Tier Level ";
$text['label-tier_level']['sv-se'] = "Kunskap Nivå";
$text['label-tier_level']['uk'] = "";
@@ -576,7 +626,7 @@ $text['label-music_on_hold']['en-us'] = "Music on Hold";
$text['label-music_on_hold']['es-cl'] = "Música en Espera";
$text['label-music_on_hold']['pt-pt'] = "Música em Espera";
$text['label-music_on_hold']['fr-fr'] = "Mise de Garde";
$text['label-music_on_hold']['pt-br'] = "Música em espera";
$text['label-music_on_hold']['pt-br'] = "Música de espera";
$text['label-music_on_hold']['pl'] = "Muzyka na czekanie";
$text['label-music_on_hold']['sv-se'] = "Väntmusik";
$text['label-music_on_hold']['uk'] = "Мелодія на утримуванні";
@@ -636,17 +686,27 @@ $text['label-discard_abandoned_after']['en-us'] = "Discard Abandoned After";
$text['label-discard_abandoned_after']['es-cl'] = "Descartar Abandono Despues de";
$text['label-discard_abandoned_after']['pt-pt'] = "Rejeição abandonada depois";
$text['label-discard_abandoned_after']['fr-fr'] = "Ecarter les Abandons fait Après";
$text['label-discard_abandoned_after']['pt-br'] = "Descartar depois de abandonado";
$text['label-discard_abandoned_after']['pt-br'] = "Rejeição abandonada depois";
$text['label-discard_abandoned_after']['pl'] = "Odrzuć opuszczoną rozmowę po";
$text['label-discard_abandoned_after']['sv-se'] = "Uteslut Ej Besvarat Efter";
$text['label-discard_abandoned_after']['uk'] = "";
$text['label-discard_abandoned_after']['de-at'] = "Zurückweisen nach Abwurf";
$text['label-description']['en-us'] = "Description";
$text['label-description']['es-cl'] = "Descripción";
$text['label-description']['pt-pt'] = "Descrição";
$text['label-description']['fr-fr'] = "Description";
$text['label-description']['pt-br'] = "Descrição";
$text['label-description']['pl'] = "Opis";
$text['label-description']['sv-se'] = "Beskrivning";
$text['label-description']['uk'] = "Опис";
$text['label-description']['de-at'] = "Beschreibung";
$text['label-default_status']['en-us'] = "Default Status";
$text['label-default_status']['es-cl'] = "Estado Predeterminado";
$text['label-default_status']['pt-pt'] = "Estado Predeterminado";
$text['label-default_status']['fr-fr'] = "Statut Prédéterminée";
$text['label-default_status']['pt-br'] = "Estado Padrão";
$text['label-default_status']['pt-br'] = "Estado Predeterminado";
$text['label-default_status']['pl'] = "z góry określony status";
$text['label-default_status']['sv-se'] = "i förväg fastställda status";
$text['label-default_status']['uk'] = "Статус за замовчуванням";
@@ -673,7 +733,7 @@ $text['label-caller_id_name_prefix']['uk'] = "";
$text['label-caller_id_name_prefix']['de-at'] = "Anruferkennung (Name) Prefix";
$text['label-caller_announce_sound']['en-us'] = "Announce Sound";
$text['label-caller_announce_sound']['pt-br'] = "Som de anuncio";
$text['label-caller_announce_sound']['pt-br'] = "Som Anuncie";
$text['label-caller_announce_sound']['pl'] = "Zapowiedź głośowa";
$text['label-caller_announce_sound']['sv-se'] = "Meddelande Ljud";
$text['label-caller_announce_sound']['uk'] = "";
@@ -683,7 +743,7 @@ $text['label-caller_announce_sound']['fr-fr'] = "Annoncer Sonore";
$text['label-caller_announce_sound']['de-at'] = "Ankündigung Ton";
$text['label-caller_announce_frequency']['en-us'] = "Announce Frequency";
$text['label-caller_announce_frequency']['pt-br'] = "Frequência do anuncio";
$text['label-caller_announce_frequency']['pt-br'] = "o Frequency Anuncie";
$text['label-caller_announce_frequency']['pl'] = "Częstotliwość zapowiedzi";
$text['label-caller_announce_frequency']['sv-se'] = "Meddelande Frekvens";
$text['label-caller_announce_frequency']['uk'] = "";
@@ -694,7 +754,7 @@ $text['label-caller_announce_frequency']['de-at'] = "Ankündigung Häufigkeit";
$text['label-call_timeout']['en-us'] = "Call Timeout";
$text['label-call_timeout']['es-cl'] = "Timeout de Llamada";
$text['label-call_timeout']['pt-pt'] = "Tempo limite da chamada";
$text['label-call_timeout']['pt-pt'] = "Timeout da chamada";
$text['label-call_timeout']['fr-fr'] = "Timeout d'appel";
$text['label-call_timeout']['pt-br'] = "Timeout da chamada";
$text['label-call_timeout']['pl'] = "Limit czasu rozmowy";
@@ -716,7 +776,7 @@ $text['label-agent_password']['en-us'] = "Agent Password";
$text['label-agent_password']['es-cl'] = "Agente de Password";
$text['label-agent_password']['pt-pt'] = "Agente Senha";
$text['label-agent_password']['fr-fr'] = "Agent Mot de passe";
$text['label-agent_password']['pt-br'] = "Agente de Senha";
$text['label-agent_password']['pt-br'] = "Agente Senha";
$text['label-agent_password']['pl'] = "Środek Hasło";
$text['label-agent_password']['sv-se'] = "Środek Hasło";
$text['label-agent_password']['uk'] = "";
@@ -746,7 +806,7 @@ $text['label-agent_id']['en-us'] = "Agent ID";
$text['label-agent_id']['es-cl'] = "Agente de identidad";
$text['label-agent_id']['pt-pt'] = "Identidade Agent";
$text['label-agent_id']['fr-fr'] = "Identification Agent";
$text['label-agent_id']['pt-br'] = "Identidade do agente";
$text['label-agent_id']['pt-br'] = "Identidade Agent";
$text['label-agent_id']['pl'] = "Tożsamość agenta";
$text['label-agent_id']['sv-se'] = "Agent Identitet";
$text['label-agent_id']['uk'] = "";
@@ -766,7 +826,7 @@ $text['label-abandoned_resume_allowed']['en-us'] = "Abandoned Resume Allowed";
$text['label-abandoned_resume_allowed']['es-cl'] = "Permitir Reanudación de Abandono";
$text['label-abandoned_resume_allowed']['pt-pt'] = "Resume Autorizado";
$text['label-abandoned_resume_allowed']['fr-fr'] = "Recupération Permise des Abandons";
$text['label-abandoned_resume_allowed']['pt-br'] = "Resumo de abandonos autorizados";
$text['label-abandoned_resume_allowed']['pt-br'] = "Resumo autorizado";
$text['label-abandoned_resume_allowed']['pl'] = "Odbieranie odrzuconych rozmów jest dozwolone";
$text['label-abandoned_resume_allowed']['sv-se'] = "Återuppta Ej Besvarade Tillåtet";
$text['label-abandoned_resume_allowed']['uk'] = "";
@@ -776,7 +836,7 @@ $text['header-call_center_tier_edit']['en-us'] = "Call Center Tier";
$text['header-call_center_tier_edit']['es-cl'] = "Editar Nivel de Centro de Llamados";
$text['header-call_center_tier_edit']['pt-pt'] = "Editar Nível do Call Center";
$text['header-call_center_tier_edit']['fr-fr'] = "Editer un Niveau du Centre d'Appel";
$text['header-call_center_tier_edit']['pt-br'] = "Editar nível do Call Center";
$text['header-call_center_tier_edit']['pt-br'] = "Editar nivel do call center";
$text['header-call_center_tier_edit']['pl'] = "Poziom w Call Center ";
$text['header-call_center_tier_edit']['sv-se'] = "Call Center Kunskap";
$text['header-call_center_tier_edit']['uk'] = "";
@@ -806,7 +866,7 @@ $text['header-call_center_queue_add']['en-us'] = "Call Center Queue";
$text['header-call_center_queue_add']['es-cl'] = "Agregar Cola de Centro de Llamados";
$text['header-call_center_queue_add']['pt-pt'] = "Adicionar Fila ao Call Center";
$text['header-call_center_queue_add']['fr-fr'] = "Ajouter une Queue";
$text['header-call_center_queue_add']['pt-br'] = "Adicionar fila ao Call Center";
$text['header-call_center_queue_add']['pt-br'] = "Adicionar fila ao call center";
$text['header-call_center_queue_add']['pl'] = "Kolejka w Call Center ";
$text['header-call_center_queue_add']['sv-se'] = "Call Center Kö";
$text['header-call_center_queue_add']['uk'] = "";
@@ -816,7 +876,7 @@ $text['header-call_center_agents']['en-us'] = "Call Center Agents";
$text['header-call_center_agents']['es-cl'] = "Agentes de Centro de Llamados";
$text['header-call_center_agents']['pt-pt'] = "Agentes do Call Center";
$text['header-call_center_agents']['fr-fr'] = "Agents du Centre d'appels";
$text['header-call_center_agents']['pt-br'] = "Agentes do Call Center";
$text['header-call_center_agents']['pt-br'] = "Agentes do call center";
$text['header-call_center_agents']['pl'] = "Agenci w Call Center ";
$text['header-call_center_agents']['sv-se'] = "Call Center Agenter";
$text['header-call_center_agents']['uk'] = "";
@@ -826,7 +886,7 @@ $text['header-call_center_agent_status']['en-us'] = "Call Center Agent Status";
$text['header-call_center_agent_status']['es-cl'] = "Estado de Agente de Centro de Llamados";
$text['header-call_center_agent_status']['pt-pt'] = "Estado do Agente do Call Center";
$text['header-call_center_agent_status']['fr-fr'] = "Etat de l'agent du Centre d'Appel";
$text['header-call_center_agent_status']['pt-br'] = "Estado do agente do Call Center";
$text['header-call_center_agent_status']['pt-br'] = "Estado do agente do call center";
$text['header-call_center_agent_status']['pl'] = "Status agentów w Call Center ";
$text['header-call_center_agent_status']['sv-se'] = "Call Center Agent Status";
$text['header-call_center_agent_status']['uk'] = "";
@@ -836,7 +896,7 @@ $text['header-call_center_agent_edit']['en-us'] = "Call Center Agent";
$text['header-call_center_agent_edit']['es-cl'] = "Editar Agente de Centro de Llamados";
$text['header-call_center_agent_edit']['pt-pt'] = "Editar Agente do Call Center";
$text['header-call_center_agent_edit']['fr-fr'] = "Editer un agent du Centre d'Appel";
$text['header-call_center_agent_edit']['pt-br'] = "Editar agente do Call Center";
$text['header-call_center_agent_edit']['pt-br'] = "Editar agente do call center";
$text['header-call_center_agent_edit']['pl'] = "Agent w Call Center ";
$text['header-call_center_agent_edit']['sv-se'] = "Call Center Agent";
$text['header-call_center_agent_edit']['uk'] = "";
@@ -846,7 +906,7 @@ $text['header-call_center_agent_add']['en-us'] = "Call Center Agents";
$text['header-call_center_agent_add']['es-cl'] = "Agregar Agente de Centro de Llamados";
$text['header-call_center_agent_add']['pt-pt'] = "Adicionar Agente ao Call Center";
$text['header-call_center_agent_add']['fr-fr'] = "Ajouter un agent du Centre d'Appel";
$text['header-call_center_agent_add']['pt-br'] = "Adicionar agente ao Call Center";
$text['header-call_center_agent_add']['pt-br'] = "Adicionar agente ao call center";
$text['header-call_center_agent_add']['pl'] = "Agenci w Call Center ";
$text['header-call_center_agent_add']['sv-se'] = "Call Center Agenter";
$text['header-call_center_agent_add']['uk'] = "";
@@ -856,7 +916,7 @@ $text['description-wrap_up_time']['en-us'] = "Enter the wrap up time.";
$text['description-wrap_up_time']['es-cl'] = "Introduzca el tiempo de preparación.";
$text['description-wrap_up_time']['pt-pt'] = "Introduza o tempo de preparação.";
$text['description-wrap_up_time']['fr-fr'] = "choisir le temps de wrap up.";
$text['description-wrap_up_time']['pt-br'] = "Insira o tempo de preparação.";
$text['description-wrap_up_time']['pt-br'] = "Insira o tempo de preparação";
$text['description-wrap_up_time']['pl'] = "Wpisz dostępny czas po zakończeniu rozmowy";
$text['description-wrap_up_time']['sv-se'] = "Ange 'Wrap Up' tid.";
$text['description-wrap_up_time']['uk'] = "";
@@ -876,7 +936,7 @@ $text['description-timeout_action']['en-us'] = "Set the action to perform when t
$text['description-timeout_action']['es-cl'] = "Defina una acción a realizar cuando el tiempo máximo es alcanzado.";
$text['description-timeout_action']['pt-pt'] = "Defina a acção a realizar quando o tempo máximo de espera for atingido.";
$text['description-timeout_action']['fr-fr'] = "Choisir l'action à faire quand le temps max d'attente est atteint.";
$text['description-timeout_action']['pt-br'] = "Defina a ação para realizar quando o tempo máximo de espera for atingido.";
$text['description-timeout_action']['pt-br'] = "Defina a ação para realizar quando o tempo máximo de espera for atingido";
$text['description-timeout_action']['pl'] = "Ustaw operację do wykonania po osiągnięciu maks czas oczekiwania.";
$text['description-timeout_action']['sv-se'] = "Ange aktion som skall utföras när max vänttid är nådd.";
$text['description-timeout_action']['uk'] = "";
@@ -886,7 +946,7 @@ $text['description-time_base_score']['en-us'] = "Select the time base score.";
$text['description-time_base_score']['es-cl'] = "Seleccione el tiempo base";
$text['description-time_base_score']['pt-pt'] = "Seleccione o tempo base ";
$text['description-time_base_score']['fr-fr'] = "Sélection du score sur base de temps.";
$text['description-time_base_score']['pt-br'] = "Selecione o tempo base.";
$text['description-time_base_score']['pt-br'] = "Selecione o tempo base";
$text['description-time_base_score']['pl'] = "Wybierz wynik oparty na okresie czasowym";
$text['description-time_base_score']['sv-se'] = "Ange tids-baserad poäng.";
$text['description-time_base_score']['uk'] = "";
@@ -896,7 +956,7 @@ $text['description-tiers']['en-us'] = "Tiers assign agents to queues.";
$text['description-tiers']['es-cl'] = "Lista todos los niveles. Los niveles asignan agentes a las colas.";
$text['description-tiers']['pt-pt'] = "Lista todos os níveis. Os níveis atribuem agentes às filas.";
$text['description-tiers']['fr-fr'] = "Liste tous les Niveaux. Les Niveaux permettent d'affecter les agents aux queues.";
$text['description-tiers']['pt-br'] = "Lista todos os níveis. Os níveis atribuem agentes na fila.";
$text['description-tiers']['pt-br'] = "Listar todos os niveis. Os niveis atribuem agentes na fila";
$text['description-tiers']['pl'] = "Poziomy przypisują operatorów do usługi kolejkowania polaczeń";
$text['description-tiers']['sv-se'] = "Kunskap tilldelar agenter till kö:er.";
$text['description-tiers']['uk'] = "";
@@ -906,7 +966,7 @@ $text['description-tier_rules_apply']['en-us'] = "Set the tier rule rules apply
$text['description-tier_rules_apply']['es-cl'] = "Defina las reglas de nivel como verdaero o falso.";
$text['description-tier_rules_apply']['pt-pt'] = "Defina a regra de nível a verdadeiro ou falso.";
$text['description-tier_rules_apply']['fr-fr'] = "Choisir l'activation de la règle du Niveau à oui ou non.";
$text['description-tier_rules_apply']['pt-br'] = "Defina a regra de nível verdadeira ou falso.";
$text['description-tier_rules_apply']['pt-br'] = "Defina a regra de nivel verdadeira ou falso";
$text['description-tier_rules_apply']['pl'] = "Ustaw regułę poziomów za pomocą zwrotów TAK i NIE";
$text['description-tier_rules_apply']['sv-se'] = "Välj om Kunskap Regler Gäller skall vara sann/falsk.";
$text['description-tier_rules_apply']['uk'] = "";
@@ -916,7 +976,7 @@ $text['description-tier_rule_wait_second']['en-us'] = "Enter the tier rule wait
$text['description-tier_rule_wait_second']['es-cl'] = "Introduzca los segundos de espera de la regla de nivel.";
$text['description-tier_rule_wait_second']['pt-pt'] = "Introduza os segundos de espera da regra de nível.";
$text['description-tier_rule_wait_second']['fr-fr'] = "Entrer le temps d'attente du niveau en secondes.";
$text['description-tier_rule_wait_second']['pt-br'] = "Insira os segundos de espera para esse nível.";
$text['description-tier_rule_wait_second']['pt-br'] = "Insira os segundos de espera para esse nivel";
$text['description-tier_rule_wait_second']['pl'] = "Ustaw regułę poziomów – czas oczekiwania w sekundach";
$text['description-tier_rule_wait_second']['sv-se'] = "Ange kunskaps-regel vänt-tid (sekunder)";
$text['description-tier_rule_wait_second']['uk'] = "";
@@ -925,7 +985,7 @@ $text['description-tier_rule_wait_second']['de-at'] = "Geben Sie die Ebenen Rege
$text['description-tier_rule_wait_multiply_level']['en-us'] = "Set the tier rule wait multiply level to true or false.";
$text['description-tier_rule_wait_multiply_level']['pt-pt'] = "Defina a Regra de nível de espera multiplicado pelo nível.";
$text['description-tier_rule_wait_multiply_level']['fr-fr'] = "Choisir la multiplication du temps d'attente par niveau à oui ou non.";
$text['description-tier_rule_wait_multiply_level']['pt-br'] = "Defina a regra de nível de espera multiplicado pelo nível.";
$text['description-tier_rule_wait_multiply_level']['pt-br'] = "Defina a regra de nivel de espera multiplicado pelo nivel";
$text['description-tier_rule_wait_multiply_level']['pl'] = "Ustaw regułę poziomów – czas oczekiwania w wielu poziomach (TAK lub NIE)";
$text['description-tier_rule_wait_multiply_level']['sv-se'] = "Välj om 'kunskaps-regel vänt-tid' multiply nivå skall vara sann eller ej.";
$text['description-tier_rule_wait_multiply_level']['uk'] = "";
@@ -936,7 +996,7 @@ $text['description-tier_rule_no_agent_no_wait']['en-us'] = "Enter the tier rule
$text['description-tier_rule_no_agent_no_wait']['es-cl'] = "Introduzca la regla de nivel sin agente sin espera.";
$text['description-tier_rule_no_agent_no_wait']['pt-pt'] = "Introduza a regra sem agente sem espera.";
$text['description-tier_rule_no_agent_no_wait']['fr-fr'] = "Entrer la règle du niveau pas d'agent, pas d'attente.";
$text['description-tier_rule_no_agent_no_wait']['pt-br'] = "Insira a regra sem agente na espera.";
$text['description-tier_rule_no_agent_no_wait']['pt-br'] = "Insira a regra sem agente na espera";
$text['description-tier_rule_no_agent_no_wait']['pl'] = "Ustaw regułę poziomów – brak czasu oczekiwania w przypadku braku operatora.";
$text['description-tier_rule_no_agent_no_wait']['sv-se'] = "Välj kunskaps-regel Ingen Agent Vänta Ej.";
$text['description-tier_rule_no_agent_no_wait']['uk'] = "";
@@ -946,7 +1006,7 @@ $text['description-tier_position']['en-us'] = "Select the tier position.";
$text['description-tier_position']['es-cl'] = "Seleccione el nivel de posición.";
$text['description-tier_position']['pt-pt'] = "Seleccione a posição no nível.";
$text['description-tier_position']['fr-fr'] = "Choisir la position du niveau.";
$text['description-tier_position']['pt-br'] = "Selecione o nível da posição.";
$text['description-tier_position']['pt-br'] = "Selecione o nivel da posição";
$text['description-tier_position']['pl'] = "Wpisz pozycję poziomu";
$text['description-tier_position']['sv-se'] = "Välj Kunskaps position.";
$text['description-tier_position']['uk'] = "";
@@ -956,7 +1016,7 @@ $text['description-tier_level']['en-us'] = "Select the tier level.";
$text['description-tier_level']['es-cl'] = "Seleccione el nivel de llamada.";
$text['description-tier_level']['pt-pt'] = "Seleccione o nível da camada.";
$text['description-tier_level']['fr-fr'] = "Choisir le niveau de l'appel.";
$text['description-tier_level']['pt-br'] = "Selecione o nível da camada.";
$text['description-tier_level']['pt-br'] = "Selecione o nivel da camada";
$text['description-tier_level']['pl'] = "Wybierz rodzaj poziomu";
$text['description-tier_level']['sv-se'] = "Välj Kunskaps-nivå";
$text['description-tier_level']['uk'] = "";
@@ -966,7 +1026,7 @@ $text['description-strategy']['en-us'] = "Select the queue ring strategy.";
$text['description-strategy']['es-cl'] = "Seleccione la estratégia de cola anillada.";
$text['description-strategy']['pt-pt'] = "Seleccione a estratégia da fila.";
$text['description-strategy']['fr-fr'] = "Sélection de la stratégie de sonnerie";
$text['description-strategy']['pt-br'] = "Selecione a estratégia da fila";
$text['description-strategy']['pt-br'] = "Selecione a estraétia da fila";
$text['description-strategy']['pl'] = "Wybierz strategię";
$text['description-strategy']['sv-se'] = "Välj strategi för ringflöde i kö:n.";
$text['description-strategy']['uk'] = "";
@@ -976,7 +1036,7 @@ $text['description-status']['en-us'] = "Select the default agent status.";
$text['description-status']['es-cl'] = "Seleccione el estado del agente.";
$text['description-status']['pt-pt'] = "Seleccione o estado do agente.";
$text['description-status']['fr-fr'] = "Choisir le statut de l'agent.";
$text['description-status']['pt-br'] = "Escolha o padrão do agente.";
$text['description-status']['pt-br'] = "Escolha o estado do usuário.";
$text['description-status']['pl'] = "Wybierz status użytkownika";
$text['description-status']['sv-se'] = "Välj agentens status";
$text['description-status']['uk'] = "Виберіть статус користувача";
@@ -986,7 +1046,7 @@ $text['description-reject_delay_time']['en-us'] = "Enter the reject delay time."
$text['description-reject_delay_time']['es-cl'] = "Introduzca el tiempo de espera de rechazo.";
$text['description-reject_delay_time']['pt-pt'] = "Introduza o tempo de atraso de rejeição.";
$text['description-reject_delay_time']['fr-fr'] = "Choisir le délais de rejet.";
$text['description-reject_delay_time']['pt-br'] = "Insira o tempo de atraso para rejeição.";
$text['description-reject_delay_time']['pt-br'] = "Insira o tempo de atraso e rejeição";
$text['description-reject_delay_time']['pl'] = "Wpisz opóźnienie czasowe w przypadku odrzucenia rozmowy";
$text['description-reject_delay_time']['sv-se'] = "Ange 'neka' tids-fördröjning.";
$text['description-reject_delay_time']['uk'] = "";
@@ -996,7 +1056,7 @@ $text['description-record_template']['en-us'] = "Save the recording.";
$text['description-record_template']['es-cl'] = "Guardar la grabación.";
$text['description-record_template']['pt-pt'] = "Salve a gravação.";
$text['description-record_template']['fr-fr'] = "Sauvegarder l'enregistrement.";
$text['description-record_template']['pt-br'] = "Salva a gravação.";
$text['description-record_template']['pt-br'] = "Salva a gravação";
$text['description-record_template']['pl'] = "Zachowaj nagranie";
$text['description-record_template']['sv-se'] = "Spara inspelningen.";
$text['description-record_template']['uk'] = "";
@@ -1006,7 +1066,7 @@ $text['description-queue_name']['en-us'] = "Enter the queue name.";
$text['description-queue_name']['es-cl'] = "Introduzca el Nombre de Cola.";
$text['description-queue_name']['pt-pt'] = "Introduza o nome da fila.";
$text['description-queue_name']['fr-fr'] = "Entrer le nom de la queue";
$text['description-queue_name']['pt-br'] = "Insira o nome da fila.";
$text['description-queue_name']['pt-br'] = "Insira o nome da fila";
$text['description-queue_name']['pl'] = "Wpisz nazwę kolejki";
$text['description-queue_name']['sv-se'] = "Ange kö namn.";
$text['description-queue_name']['uk'] = "";
@@ -1016,7 +1076,7 @@ $text['description-options']['en-us'] = "Select the queue name.";
$text['description-options']['es-cl'] = "Seleccione el nombre de cola.";
$text['description-options']['pt-pt'] = "Seleccione o nome da fila.";
$text['description-options']['fr-fr'] = "Choisir le nom de la queue.";
$text['description-options']['pt-br'] = "Selecione o nome da fila.";
$text['description-options']['pt-br'] = "Selecione o nome da fila";
$text['description-options']['pl'] = "Zdefiniuj opcje dzwoniącego w menu IVR";
$text['description-options']['sv-se'] = "Välj kö namn.";
$text['description-options']['uk'] = "";
@@ -1026,7 +1086,7 @@ $text['description-no_answer_delay_time']['en-us'] = "Enter the agent no answer
$text['description-no_answer_delay_time']['es-cl'] = "Introduzca el tiempo de espera sin responder del agente en segundos.";
$text['description-no_answer_delay_time']['pt-pt'] = "Introduza o tempo de atraso em segundos do agente que não atende.";
$text['description-no_answer_delay_time']['fr-fr'] = "Choisir le delais de non réponse de l'agent.";
$text['description-no_answer_delay_time']['pt-br'] = "Insira o tempo sem resposta do agente em segundos.";
$text['description-no_answer_delay_time']['pt-br'] = "Insira o tempo de resposta em segundos do agente que não atende";
$text['description-no_answer_delay_time']['pl'] = "Wprowadź maks czas nieodbierania rozmowy (sek)";
$text['description-no_answer_delay_time']['sv-se'] = "Ange 'Inget svar Agent fördröjning' i sekunder.";
$text['description-no_answer_delay_time']['uk'] = "";
@@ -1036,7 +1096,7 @@ $text['description-music_on_hold']['en-us'] = "Select the desired hold music.";
$text['description-music_on_hold']['es-cl'] = "Seleccione una música de espera.";
$text['description-music_on_hold']['pt-pt'] = "Seleccione uma música de espera.";
$text['description-music_on_hold']['fr-fr'] = "Sélection de la musique de garde.";
$text['description-music_on_hold']['pt-br'] = "Selecione uma música de espera.";
$text['description-music_on_hold']['pt-br'] = "Selecione uma música de espera";
$text['description-music_on_hold']['pl'] = "Wybierz rodzaj muzyki na czekanie";
$text['description-music_on_hold']['sv-se'] = "Välj önskad vänt-musik.";
$text['description-music_on_hold']['uk'] = "";
@@ -1046,7 +1106,7 @@ $text['description-max_wait_time_with_no_agent_time_reached']['en-us'] = "Enter
$text['description-max_wait_time_with_no_agent_time_reached']['es-cl'] = "Introduzca el tiempo máximo de espera sin agente alcanzado.";
$text['description-max_wait_time_with_no_agent_time_reached']['pt-pt'] = "Introduza o tempo máximo de espera atingido sem agente.";
$text['description-max_wait_time_with_no_agent_time_reached']['fr-fr'] = " Entrez le temps d'attente maximum avec un rien de temps de l'agent atteint.";
$text['description-max_wait_time_with_no_agent_time_reached']['pt-br'] = "Insira o tempo máximo de espera atingido sem o agente.";
$text['description-max_wait_time_with_no_agent_time_reached']['pt-br'] = "Insira o tempo máximo de espera atingido sem o agente";
$text['description-max_wait_time_with_no_agent_time_reached']['pl'] = "Wprowadź maks upłyniety czas oczekiwania bez agenta";
$text['description-max_wait_time_with_no_agent_time_reached']['sv-se'] = "Ange max vänt-tid när 'Utan Agent Tids-gräns' är nådd. ";
$text['description-max_wait_time_with_no_agent_time_reached']['uk'] = "";
@@ -1056,7 +1116,7 @@ $text['description-max_wait_time_with_no_agent']['en-us'] = "Enter the max wait
$text['description-max_wait_time_with_no_agent']['es-cl'] = "Introduzca el tiempo máximo de espera sin agente.";
$text['description-max_wait_time_with_no_agent']['pt-pt'] = "Introduza o tempo máximo de espera sem agente.";
$text['description-max_wait_time_with_no_agent']['fr-fr'] = "Entrer le temps max d'attente sans agent.";
$text['description-max_wait_time_with_no_agent']['pt-br'] = "Insira o tempo máximo de espera sem agente.";
$text['description-max_wait_time_with_no_agent']['pt-br'] = "Insira o tempo máximo de espera sem agente";
$text['description-max_wait_time_with_no_agent']['pl'] = "Wprowadź maks czas oczekiwania bez agenta";
$text['description-max_wait_time_with_no_agent']['sv-se'] = "Ange max vänt-tid utan agent.";
$text['description-max_wait_time_with_no_agent']['uk'] = "";
@@ -1066,7 +1126,7 @@ $text['description-max_wait_time']['en-us'] = "Enter the max wait time.";
$text['description-max_wait_time']['es-cl'] = "Introduzca el tiempo máximo de espera.";
$text['description-max_wait_time']['pt-pt'] = "Introduzia o tempo máximo de espera.";
$text['description-max_wait_time']['fr-fr'] = "Entrer le temps max d'attente.";
$text['description-max_wait_time']['pt-br'] = "Insira o tempo máximo de espera.";
$text['description-max_wait_time']['pt-br'] = "Insira o tempo máximo de espera";
$text['description-max_wait_time']['pl'] = "Wprowadź maks czas oczekiwania";
$text['description-max_wait_time']['sv-se'] = "Ange max vänt-tid.";
$text['description-max_wait_time']['uk'] = "";
@@ -1076,7 +1136,7 @@ $text['description-max_no_answer']['en-us'] = "Enter max no answer.";
$text['description-max_no_answer']['es-cl'] = "Introduza el máximo de no respuestas.";
$text['description-max_no_answer']['pt-pt'] = "Introduza o máximo de não antedidas.";
$text['description-max_no_answer']['fr-fr'] = "Choisr le nom max de non réponses.";
$text['description-max_no_answer']['pt-br'] = "Insira o máximo de chamadas não atendidas.";
$text['description-max_no_answer']['pt-br'] = "Insira o máximo de chamadas não atendidas";
$text['description-max_no_answer']['pl'] = "Wprowadź maks czas nieodbierania rozmowy";
$text['description-max_no_answer']['sv-se'] = "Ange max inget svar.";
$text['description-max_no_answer']['uk'] = "";
@@ -1086,7 +1146,7 @@ $text['description-extension']['en-us'] = "Enter the extension number.";
$text['description-extension']['es-cl'] = "Introduzca el número de extensión.";
$text['description-extension']['pt-pt'] = "Introduza o número da extensão.";
$text['description-extension']['fr-fr'] = "Entrer un numéro d'extension";
$text['description-extension']['pt-br'] = "Atribua um ramal ao dispositivo";
$text['description-extension']['pt-br'] = "Atribua a extensão e números ao dispositivo";
$text['description-extension']['pl'] = "Wprowadź alfanumeryczny numer wewnętrzny. Domyślna konfiguracja pozwala na 2-7 cyfrowe numery wewnętrzne";
$text['description-extension']['sv-se'] = "Ange anknytningsnumret.";
$text['description-extension']['uk'] = "";
@@ -1096,17 +1156,27 @@ $text['description-discard_abandoned_after']['en-us'] = "Set the discard abandon
$text['description-discard_abandoned_after']['es-cl'] = "Defina la cantidad de segundos para el abandono de descarte.";
$text['description-discard_abandoned_after']['pt-pt'] = "Defina a rejeição abandonada segundos depois.";
$text['description-discard_abandoned_after']['fr-fr'] = "Choisir d'écartrer les abandons après un nombre de secondes.";
$text['description-discard_abandoned_after']['pt-br'] = "Defina o tempo em segundos para descartar após abandonado.";
$text['description-discard_abandoned_after']['pt-br'] = "Defina o tempo em segundos";
$text['description-discard_abandoned_after']['pl'] = "Ustaw czas po którym opuszczona rozmowa zostanie odrzucona";
$text['description-discard_abandoned_after']['sv-se'] = "Ange uteslut Ej Besvarade efter sekunder.";
$text['description-discard_abandoned_after']['uk'] = "";
$text['description-discard_abandoned_after']['de-at'] = "Setzen Sie die Zeit in Sekunden, nach der ein Anrufer nicht wieder in die Warteschlange eingereiht wird.";
$text['description-description']['en-us'] = "Enter a description, if desired.";
$text['description-description']['es-cl'] = "Ingrese una descripción, opcional.";
$text['description-description']['pt-pt'] = "Introduza uma descrição, se desejar.";
$text['description-description']['fr-fr'] = "Entrez une description, si vous le souhaitez.";
$text['description-description']['pt-br'] = "Insira a descrição, caso desejar";
$text['description-description']['pl'] = "Wpisz opis (opcjonalne)";
$text['description-description']['sv-se'] = "Fyll i en beskrivning, om nödvändigt.";
$text['description-description']['uk'] = "Введіть опис, якщо це необхідно.";
$text['description-description']['de-at'] = "Falls gewünscht, geben Sie eine Beschreibung an.";
$text['description-contact']['en-us'] = "Select the contact number.";
$text['description-contact']['es-cl'] = "Seleccione el número de contacto.";
$text['description-contact']['pt-pt'] = "Seleccione o número de contacto.";
$text['description-contact']['fr-fr'] = "Choisir le numéro du contact.";
$text['description-contact']['pt-br'] = "Atribui um contato a esta conta de usuário.";
$text['description-contact']['pt-br'] = "Atribui um contato a esta conta de usuário";
$text['description-contact']['pl'] = "Wybierz numer";
$text['description-contact']['sv-se'] = "Välj kontakt numret.";
$text['description-contact']['uk'] = "Призначити контакт в цей обліковий запис користувача.";
@@ -1116,24 +1186,24 @@ $text['description-caller_id_name_prefix']['en-us'] = "Set a prefix on the calle
$text['description-caller_id_name_prefix']['es-cl'] = "Defina un prefijo para el nombre de quien llama.";
$text['description-caller_id_name_prefix']['pt-pt'] = "Defina um prefixo no nome do originador.";
$text['description-caller_id_name_prefix']['fr-fr'] = "Choisir un préfixe pour le nom d'appelant.";
$text['description-caller_id_name_prefix']['pt-br'] = "Defina um prefixo no nome do originador da chamada.";
$text['description-caller_id_name_prefix']['pt-br'] = "Defina um prefixo no nome do originador";
$text['description-caller_id_name_prefix']['pl'] = "Ustaw prefiks nazwy abonenta dzwoniącego.";
$text['description-caller_id_name_prefix']['sv-se'] = "Ange ett prefix för Caller ID namn.";
$text['description-caller_id_name_prefix']['uk'] = "";
$text['description-caller_id_name_prefix']['de-at'] = "Setzen Sie ein Präfix für die Anruferkennung (Name).";
$text['description-caller_announce_sound']['en-us'] = "A sound to play to a caller every announce sound seconds. Needs the full path to the wav file.";
$text['description-caller_announce_sound']['pt-br'] = "Um som tocará para o originador da chamada. Precisa o caminho completo para o arquivo wav.";
$text['description-caller_announce_sound']['pt-br'] = "Um som para tocar a uma cada vez chamador anunciar segundos de som. Precisa o caminho completo para o arquivo wav. ";
$text['description-caller_announce_sound']['pl'] = "Dźwięk odtwarzany dzwoniącemu, który zostaje odtworzony cyklicznie. Wymagana jest pełna ścieżka do pliku.";
$text['description-caller_announce_sound']['sv-se'] = "Ett ljud som spelas upp efter varje 'meddelande ljud sekunder'. Behöver hela sökvägen till WAV filen.";
$text['description-caller_announce_sound']['uk'] = "";
$text['description-caller_announce_sound']['es-cl'] = " Translate from: English Un sonido jugar a un cada persona que llama anunciar segundos de sonido. Necesita la ruta completa al archivo wav.";
$text['description-caller_announce_sound']['pt-pt'] = "Um som para tocar a uma cada vez que o originador da chamada anunciar segundos de som. Precisa o caminho completo para o arquivo wav.";
$text['description-caller_announce_sound']['pt-pt'] = "Um som para tocar a uma cada vez chamador anunciar segundos de som. Precisa o caminho completo para o arquivo wav.";
$text['description-caller_announce_sound']['fr-fr'] = " Un son à jouer à un appelant chaque annoncer secondes sonores. Besoins le chemin complet vers le fichier wav.";
$text['description-caller_announce_sound']['de-at'] = "Eine Datei, die nach jeder ";
$text['description-caller_announce_frequency']['en-us'] = "How often should we play the announce sound. Enter a number in seconds";
$text['description-caller_announce_frequency']['pt-br'] = "Com que frequência devemos reproduzir o som ao anunciar. Digite um número em segundos";
$text['description-caller_announce_frequency']['pt-br'] = "Com que freqüência devemos reproduzir o som anunciar. Digite um número em segundos";
$text['description-caller_announce_frequency']['pl'] = "Wprowadź wartość w sekundach jak często ma być odtwarzany dźwięk powitania.";
$text['description-caller_announce_frequency']['sv-se'] = "Hur ofta skall meddelandet spelas upp. Ange ett värde i sekunder.";
$text['description-caller_announce_frequency']['uk'] = "";
@@ -1146,7 +1216,7 @@ $text['description-call_timeout']['en-us'] = "Enter the call timeout.";
$text['description-call_timeout']['es-cl'] = "Introduzca el timeout de la llamada.";
$text['description-call_timeout']['pt-pt'] = "Introduza o timeout da chamada.";
$text['description-call_timeout']['fr-fr'] = "Choisir le timeout de l'appel.";
$text['description-call_timeout']['pt-br'] = "Insira o tempo limite da chamada";
$text['description-call_timeout']['pt-br'] = "Insira o tempo final da chamada";
$text['description-call_timeout']['pl'] = "Wpisz limit czasu rozmowy";
$text['description-call_timeout']['sv-se'] = "Ange 'call timeout'";
$text['description-call_timeout']['uk'] = "";
@@ -1156,7 +1226,7 @@ $text['description-call_center_queues']['en-us'] = "List of queues for the call
$text['description-call_center_queues']['es-cl'] = "Lista de Colas de Centro de Llamados.";
$text['description-call_center_queues']['pt-pt'] = "Lista de Filas do Call Center.";
$text['description-call_center_queues']['fr-fr'] = "Liste des Queues du Centre d'Appel";
$text['description-call_center_queues']['pt-br'] = "Lista de filas para o Call Center";
$text['description-call_center_queues']['pt-br'] = "Lista de filas do call center";
$text['description-call_center_queues']['pl'] = "Lista kolejek w Call Center";
$text['description-call_center_queues']['sv-se'] = "Lista med kö:er för Call Center";
$text['description-call_center_queues']['uk'] = "";
@@ -1166,7 +1236,7 @@ $text['description-call_center_agents']['en-us'] = "List of call center agents."
$text['description-call_center_agents']['es-cl'] = "Lista de Agentes de Centro de Llamados.";
$text['description-call_center_agents']['pt-pt'] = "Lista de Agentes do Call Center.";
$text['description-call_center_agents']['fr-fr'] = "Liste des agents du Centre d'Appel";
$text['description-call_center_agents']['pt-br'] = "Lista de agentes do Call Center";
$text['description-call_center_agents']['pt-br'] = "Lista de agentes do call center";
$text['description-call_center_agents']['pl'] = "Lista agentów w Call Center";
$text['description-call_center_agents']['sv-se'] = "Lista med Call Center Agenter";
$text['description-call_center_agents']['uk'] = "";
@@ -1176,7 +1246,7 @@ $text['description-call_center_agent_status']['en-us'] = "List all the call cent
$text['description-call_center_agent_status']['es-cl'] = "Lista todos los agentes del Centro de Llamados con la opción de modificar el estado de uno o más agentes.";
$text['description-call_center_agent_status']['pt-pt'] = "Lista todas as chamadas do Call Center com a opção de alterar o estado de um ou mais agentes.";
$text['description-call_center_agent_status']['fr-fr'] = "Liste tous les agents du centre d'appel avec la possibilité de modifier l'état d'un ou plusieurs agents.";
$text['description-call_center_agent_status']['pt-br'] = "Lista todas chamadas do Call Center com a opção de alterar o estado de um ou mais agentes.";
$text['description-call_center_agent_status']['pt-br'] = "Listar com todas as chamadas do call center com a opção de alterar o estado de um ou mais agentes";
$text['description-call_center_agent_status']['pl'] = "Wybierz wszystkich agentów call center, którzy mają uprawnienia do zmiany statusu jednego bądź wielu agentów.";
$text['description-call_center_agent_status']['sv-se'] = "Lista med alla Call Center Agenter med möjlighet att ändra status på en eller flera agenter.";
$text['description-call_center_agent_status']['uk'] = "";
@@ -1186,7 +1256,7 @@ $text['description-busy_delay_time']['en-us'] = "Enter the agent busy delay time
$text['description-busy_delay_time']['es-cl'] = "Introduzca el tiempo de espera de agente ocupado.";
$text['description-busy_delay_time']['pt-pt'] = "Introduza o tempo de atraso do agente ocupado.";
$text['description-busy_delay_time']['fr-fr'] = "Choisir le temps d'attente quand l'agent est occupé.";
$text['description-busy_delay_time']['pt-br'] = "Insira o tempo para atraso do agente ocupado.";
$text['description-busy_delay_time']['pt-br'] = "Insira o tempo de resposta do agente ocupado";
$text['description-busy_delay_time']['pl'] = "Wprowadź wartość czasowego opóźnienia w przypadku, gdy agent jest zajęty.";
$text['description-busy_delay_time']['sv-se'] = "Ange Agent Upptagen Fördröjnings-tid.";
$text['description-busy_delay_time']['uk'] = "";
@@ -1216,7 +1286,7 @@ $text['description-agent_logout']['en-us'] = "Enter the auto agent logout time i
$text['description-agent_logout']['es-cl'] = "Introduzca el tiempo de desconexión automático de agente en formato 00:00. Requiere un servicio para forzar la desconexión.";
$text['description-agent_logout']['pt-pt'] = "Introduza o tempo de logou automático do agente no formato 00:00. Isto requere um serviço dedicado para forçar o logout.";
$text['description-agent_logout']['fr-fr'] = "Entrer l'heure de déconnexion automatique de l'agent au format 00:00. Nécessite un service pour forcer la déconnexion.";
$text['description-agent_logout']['pt-br'] = "Entre com o tempo automático de logout do agente (utilize o formato 00:00). Isto requer um serviço dedicado para forçar o logout do agente.";
$text['description-agent_logout']['pt-br'] = "Insira o tempo de login automatico do agente no formato 00:00. Isto requer um serviço dedicado para foçar o logout";
$text['description-agent_logout']['pl'] = "Wprowadź czas po, którym agent zostanie automatycznie wylogowany (w formacie 00:00). Wymagany jest serwis który egzekwuje czas wylogowania.";
$text['description-agent_logout']['sv-se'] = "Ange Automatisk utläggning av Agent i 00:00 format. Kräver en tjänst för att genomföra utloggningen.";
$text['description-agent_logout']['uk'] = "";
@@ -1236,7 +1306,7 @@ $text['description-agent']['en-us'] = "Select the agent name.";
$text['description-agent']['es-cl'] = "Seleccione el nombre del agente.";
$text['description-agent']['pt-pt'] = "Seleccione o nome do agente.";
$text['description-agent']['fr-fr'] = "Choisir le nom de l'agent.";
$text['description-agent']['pt-br'] = "Selecione o nome do agente.";
$text['description-agent']['pt-br'] = "Selecione o nome do agente";
$text['description-agent']['pl'] = "Wybierz nazwe agenta.";
$text['description-agent']['sv-se'] = "Välj Agent namnet.";
$text['description-agent']['uk'] = "Виберіть ім’я оператора";
@@ -1246,12 +1316,22 @@ $text['description-abandoned_resume_allowed']['en-us'] = "Set the abandoned resu
$text['description-abandoned_resume_allowed']['es-cl'] = "Defina el permiso para permitir la continuación de abandono a verdadero o falso.";
$text['description-abandoned_resume_allowed']['pt-pt'] = "Defina a permissão para abadono do resume a verdadeiro ou a falso.";
$text['description-abandoned_resume_allowed']['fr-fr'] = "choisir l'autorisation de reprise d'abandon à oui ou non.";
$text['description-abandoned_resume_allowed']['pt-br'] = "Defina permissão para desistência (SIM/NÃO).";
$text['description-abandoned_resume_allowed']['pt-br'] = "Defina permissão para desistencia, verdadeira ou falso";
$text['description-abandoned_resume_allowed']['pl'] = "Ustaw czy odbieranie odrzuconych rozmów jest dozwolone (TAK/NIE)";
$text['description-abandoned_resume_allowed']['sv-se'] = "Välj 'Ej Besvarat Återtagning' till sann/falsk.";
$text['description-abandoned_resume_allowed']['uk'] = "";
$text['description-abandoned_resume_allowed']['de-at'] = "Schalten Sie die Wideraufnahme von Anrufern in der Warteschlange Ein oder Aus.";
$text['confirm-delete']['en-us'] = "Do you really want to delete this?";
$text['confirm-delete']['es-cl'] = "¿Realmente desea eliminar esto?";
$text['confirm-delete']['pt-pt'] = "Deseja realmente remover isto?";
$text['confirm-delete']['fr-fr'] = "Voulez-vous vraiment supprimer cela?";
$text['confirm-delete']['pt-br'] = "Deseja realmente remover isto?";
$text['confirm-delete']['pl'] = "Czy na pewno chcesz to usunąć?";
$text['confirm-delete']['sv-se'] = "Vill du verkligen ta bort detta?";
$text['confirm-delete']['uk'] = "Ви дійсно бажаєте це видалити?";
$text['confirm-delete']['de-at'] = "Wollen Sie das wirklich löschen?";
$text['confirm-copy']['en-us'] = "Do you really want to copy this?";
$text['confirm-copy']['es-cl'] = "¿Realmente desea copiar esto?";
$text['confirm-copy']['pt-pt'] = "Deseja realmente copiar isto?";
@@ -1262,6 +1342,16 @@ $text['confirm-copy']['sv-se'] = "Vill du verkligen kopiera detta?";
$text['confirm-copy']['uk'] = "Ви дійсно бажаєте це скопіювати?";
$text['confirm-copy']['de-at'] = "Wollen Sie das wirklich kopieren?";
$text['button-view']['en-us'] = "View";
$text['button-view']['es-cl'] = "Ver";
$text['button-view']['pt-pt'] = "Ver";
$text['button-view']['fr-fr'] = "Voir";
$text['button-view']['pt-br'] = "Visualizar";
$text['button-view']['pl'] = "Widok";
$text['button-view']['sv-se'] = "Visa";
$text['button-view']['uk'] = "Перегляд";
$text['button-view']['de-at'] = "Ansicht";
$text['button-update_status']['en-us'] = "Update Status";
$text['button-update_status']['es-cl'] = "Actualizar Estado";
$text['button-update_status']['pt-pt'] = "Actualizar Estado";
@@ -1276,12 +1366,112 @@ $text['button-tiers']['en-us'] = "Tiers";
$text['button-tiers']['es-cl'] = "Niveles";
$text['button-tiers']['pt-pt'] = "Níveis";
$text['button-tiers']['fr-fr'] = "Tiers";
$text['button-tiers']['pt-br'] = "Níveis ";
$text['button-tiers']['pt-br'] = "Niveis ";
$text['button-tiers']['pl'] = "Poziomy";
$text['button-tiers']['sv-se'] = "Kunskap";
$text['button-tiers']['uk'] = "Рівні";
$text['button-tiers']['de-at'] = "Ebenen";
$text['button-stop']['en-us'] = "Stop";
$text['button-stop']['es-cl'] = "Detener";
$text['button-stop']['pt-pt'] = "Parar";
$text['button-stop']['fr-fr'] = "Stop";
$text['button-stop']['pt-br'] = "Pausar Broadcast";
$text['button-stop']['pl'] = "Zatrzymaj rozsylanie rozmów";
$text['button-stop']['sv-se'] = "Stoppa";
$text['button-stop']['uk'] = "Зупинити трансляцію";
$text['button-stop']['de-at'] = "Stopp";
$text['button-status']['en-us'] = "Status";
$text['button-status']['es-cl'] = "Estado";
$text['button-status']['pt-pt'] = "Estado";
$text['button-status']['fr-fr'] = "Etat";
$text['button-status']['pt-br'] = "Estado";
$text['button-status']['pl'] = "Status";
$text['button-status']['sv-se'] = "Status";
$text['button-status']['uk'] = "Статус";
$text['button-status']['de-at'] = "Status";
$text['button-start']['en-us'] = "Start";
$text['button-start']['es-cl'] = "Iniciar";
$text['button-start']['pt-pt'] = "Iniciar";
$text['button-start']['fr-fr'] = "Démarrer";
$text['button-start']['pt-br'] = "Iniciar";
$text['button-start']['pl'] = "Start";
$text['button-start']['sv-se'] = "Start";
$text['button-start']['uk'] = "Запустити";
$text['button-start']['de-at'] = "Start";
$text['button-save']['en-us'] = "Save";
$text['button-save']['es-cl'] = "Guardar";
$text['button-save']['pt-pt'] = "Guardar";
$text['button-save']['fr-fr'] = "Sauvegarder";
$text['button-save']['pt-br'] = "Salvar";
$text['button-save']['pl'] = "Zachowaj";
$text['button-save']['sv-se'] = "Spara";
$text['button-save']['uk'] = "Зберегти";
$text['button-save']['de-at'] = "Speichern";
$text['button-restart']['en-us'] = "Restart";
$text['button-restart']['es-cl'] = "Reanudar";
$text['button-restart']['pt-pt'] = "Restart";
$text['button-restart']['fr-fr'] = "Redémarrer";
$text['button-restart']['pt-br'] = "Reiniciar";
$text['button-restart']['pl'] = "Restartuj";
$text['button-restart']['sv-se'] = "Starta Om";
$text['button-restart']['uk'] = "Перезапустити";
$text['button-restart']['de-at'] = "Neu starten";
$text['button-refresh']['en-us'] = "Refresh";
$text['button-refresh']['es-cl'] = "Actualizar";
$text['button-refresh']['pt-pt'] = "Actualizar";
$text['button-refresh']['fr-fr'] = "Rafraîchir";
$text['button-refresh']['pt-br'] = "Atualizar";
$text['button-refresh']['pl'] = "Odśwież";
$text['button-refresh']['sv-se'] = "Uppdatera";
$text['button-refresh']['uk'] = "Оновити";
$text['button-refresh']['de-at'] = "Aktualisieren";
$text['button-edit']['en-us'] = "Edit";
$text['button-edit']['es-cl'] = "Editar";
$text['button-edit']['pt-pt'] = "Editar";
$text['button-edit']['fr-fr'] = "Editer";
$text['button-edit']['pt-br'] = "Editar";
$text['button-edit']['pl'] = "Edytuj";
$text['button-edit']['sv-se'] = "Editera";
$text['button-edit']['uk'] = "Редагувати";
$text['button-edit']['de-at'] = "Bearbeiten";
$text['button-delete']['en-us'] = "Delete";
$text['button-delete']['es-cl'] = "Eliminar";
$text['button-delete']['pt-pt'] = "Remover";
$text['button-delete']['fr-fr'] = "Supprimer";
$text['button-delete']['pt-br'] = "Remover";
$text['button-delete']['pl'] = "Usuń";
$text['button-delete']['sv-se'] = "Ta Bort";
$text['button-delete']['uk'] = "Видалити";
$text['button-delete']['de-at'] = "Löschen";
$text['button-copy']['en-us'] = "Copy";
$text['button-copy']['es-cl'] = "Copiar";
$text['button-copy']['pt-pt'] = "Copiar";
$text['button-copy']['fr-fr'] = "Copier";
$text['button-copy']['pt-br'] = "Copiar";
$text['button-copy']['pl'] = "Kopiuj";
$text['button-copy']['sv-se'] = "Kopiera";
$text['button-copy']['uk'] = "Копіювати";
$text['button-copy']['de-at'] = "Kopieren";
$text['button-back']['en-us'] = "Back";
$text['button-back']['es-cl'] = "Volver";
$text['button-back']['pt-pt'] = "Voltar";
$text['button-back']['fr-fr'] = "Retour";
$text['button-back']['pt-br'] = "Voltar";
$text['button-back']['pl'] = "Wróć";
$text['button-back']['sv-se'] = "Tillbaka";
$text['button-back']['uk'] = "Назад";
$text['button-back']['de-at'] = "Zurück";
$text['button-agents']['en-us'] = "Agents";
$text['button-agents']['es-cl'] = "Agentes";
$text['button-agents']['pt-pt'] = "Agentes";
@@ -1292,4 +1482,24 @@ $text['button-agents']['sv-se'] = "Agenter";
$text['button-agents']['uk'] = "Оператори";
$text['button-agents']['de-at'] = "Agenten";
$text['button-advanced']['en-us'] = "Advanced";
$text['button-advanced']['es-cl'] = "Avanzadas";
$text['button-advanced']['pt-pt'] = "Avançadas";
$text['button-advanced']['fr-fr'] = "Avancé";
$text['button-advanced']['pt-br'] = "Avançar";
$text['button-advanced']['pl'] = "Zaawansowany";
$text['button-advanced']['sv-se'] = "Avancerat";
$text['button-advanced']['uk'] = "Додатково";
$text['button-advanced']['de-at'] = "Erweitert";
$text['button-add']['en-us'] = "Add";
$text['button-add']['es-cl'] = "Agregar";
$text['button-add']['pt-pt'] = "Adicionar";
$text['button-add']['fr-fr'] = "ajouter";
$text['button-add']['pt-br'] = "Adicionar";
$text['button-add']['pl'] = "Dodaj";
$text['button-add']['sv-se'] = "Lägg Till";
$text['button-add']['uk'] = "Додати";
$text['button-add']['de-at'] = "Hinzufügen";
?>
+2 -1
View File
@@ -5,7 +5,7 @@ $apps[$x]['menu'][0]['title']['es-cl'] = "Centro de Llamadas";
$apps[$x]['menu'][0]['title']['fr-fr'] = "Centre d'appel";
$apps[$x]['menu'][0]['title']['fr-ca'] = "Centre d' appels";
$apps[$x]['menu'][0]['title']['pt-pt'] = "Centro de Chamadas";
$apps[$x]['menu'][0]['title']['pt-br'] = "Call Center";
$apps[$x]['menu'][0]['title']['pt-br'] = "Centro de chamadas";
$apps[$x]['menu'][0]['title']['pl'] = "Call Center ";
$apps[$x]['menu'][0]['title']['sv-se'] = "Call Center";
$apps[$x]['menu'][0]['title']['uk'] = "Кол-центр";
@@ -31,6 +31,7 @@ $apps[$x]['menu'][1]['uuid'] = "597c483a-51a9-f95a-8d54-ea7d87ada2b8";
$apps[$x]['menu'][1]['parent_uuid'] = "0438b504-8613-7887-c420-c837ffb20cb1";
$apps[$x]['menu'][1]['category'] = "internal";
$apps[$x]['menu'][1]['path'] = "/app/call_centers/call_center_agent_status.php";
$apps[$x]['menu'][1]['groups'][] = "agent_admin";
$apps[$x]['menu'][1]['groups'][] = "admin";
$apps[$x]['menu'][1]['groups'][] = "superadmin";
@@ -86,7 +86,6 @@ if (count($_GET)>0) {
//synchronize configuration
save_call_center_xml();
remove_config_from_cache('configuration:callcenter.conf');
//redirect the browser
$_SESSION["message"] = $text['message-delete'];
+32 -17
View File
@@ -129,32 +129,49 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//get and then set the complete agent_contact with the call_timeout and when necessary confirm
//if you change this variable, also change resources/switch.php
$confirm = "group_confirm_file=custom/press_1_to_accept_this_call.wav,group_confirm_key=1,group_confirm_read_timeout=2000,leg_timeout=".$agent_call_timeout;
$tmp_confirm = "group_confirm_file=custom/press_1_to_accept_this_call.wav,group_confirm_key=1,group_confirm_read_timeout=2000,leg_timeout=".$agent_call_timeout;
if(strstr($agent_contact, '}') === FALSE) {
//not found
if(stristr($agent_contact, 'sofia/gateway') === FALSE) {
//add the call_timeout
$agent_contact = "{call_timeout=".$agent_call_timeout.",sip_invite_domain=".$_SESSION['domain_name']."}".$agent_contact;
$tmp_agent_contact = "{call_timeout=".$agent_call_timeout."}".$agent_contact;
}
else {
//add the call_timeout and confirm
$agent_contact = $first.',call_timeout='.$agent_call_timeout.$last;
$agent_contact = "{".$confirm.",call_timeout=".$agent_call_timeout.",sip_invite_domain=".$_SESSION['domain_name']."}".$agent_contact;
$tmp_agent_contact = $tmp_first.',call_timeout='.$agent_call_timeout.$tmp_last;
$tmp_agent_contact = "{".$tmp_confirm.",call_timeout=".$agent_call_timeout."}".$agent_contact;
echo "\n\n".$tmp_agent_contact."\n\n";
}
}
else {
$position = strrpos($agent_contact, "}");
$first = substr($agent_contact, 0, $position);
$last = substr($agent_contact, $position);
//add call_timeout and sip_invite_domain, only if missing
$call_timeout = (stristr($agent_contact, 'call_timeout') === FALSE) ? ',call_timeout='.$agent_call_timeout : null;
$sip_invite_domain = (stristr($agent_contact, 'sip_invite_domain') === FALSE) ? ',sip_invite_domain='.$_SESSION['domain_name'] : null;
//compose
//found
if(stristr($agent_contact, 'sofia/gateway') === FALSE) {
$agent_contact = $first.$sip_invite_domain.$call_timeout.$last;
//not found
if(stristr($agent_contact, 'call_timeout') === FALSE) {
//add the call_timeout
$tmp_pos = strrpos($agent_contact, "}");
$tmp_first = substr($agent_contact, 0, $tmp_pos);
$tmp_last = substr($agent_contact, $tmp_pos);
$tmp_agent_contact = $tmp_first.',call_timeout='.$agent_call_timeout.$tmp_last;
}
else {
//the string has the call timeout
$tmp_agent_contact = $agent_contact;
}
}
else {
$agent_contact = $first.','.$confirm.$sip_invite_domain.$call_timeout.$last;
//found
$tmp_pos = strrpos($agent_contact, "}");
$tmp_first = substr($agent_contact, 0, $tmp_pos);
$tmp_last = substr($agent_contact, $tmp_pos);
if(stristr($agent_contact, 'call_timeout') === FALSE) {
//add the call_timeout and confirm
$tmp_agent_contact = $tmp_first.','.$tmp_confirm.',call_timeout='.$agent_call_timeout.$tmp_last;
}
else {
//add confirm
$tmp_agent_contact = $tmp_first.','.$tmp_confirm.$tmp_last;
}
}
}
@@ -176,7 +193,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$response = event_socket_request($fp, $cmd);
usleep(200);
//agent set contact
$cmd = "api callcenter_config agent set contact ".$agent_name."@".$_SESSION['domains'][$domain_uuid]['domain_name']." ".$agent_contact;
$cmd = "api callcenter_config agent set contact ".$agent_name."@".$_SESSION['domains'][$domain_uuid]['domain_name']." ".$tmp_agent_contact;
$response = event_socket_request($fp, $cmd);
usleep(200);
//agent set status
@@ -247,7 +264,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//syncrhonize configuration
save_call_center_xml();
remove_config_from_cache('configuration:callcenter.conf');
$_SESSION["message"] = $text['message-add'];
header("Location: call_center_agents.php");
@@ -275,8 +291,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
unset($sql);
//syncrhonize configuration
save_call_center_xml();
remove_config_from_cache('configuration:callcenter.conf');
save_call_center_xml();
$_SESSION["message"] = $text['message-update'];
header("Location: call_center_agents.php");
@@ -173,7 +173,7 @@ else {
echo $text['description-call_center_agent_status']."<br /><br />\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</tr></table>\n";
$c = 0;
$row_style["0"] = "row_style0";
@@ -185,11 +185,11 @@ else {
echo "<th>".$text['label-agent']."</th>\n";
echo "<th>".$text['label-status']."</th>\n";
echo "<th>".$text['label-options']."</th>\n";
echo "</tr>\n";
echo "<tr>\n";
$x = 0;
foreach($agents as $row) {
$str = '';
$str .= "<tr>\n";
$str .= "<tr >\n";
$str .= " <td valign='middle' class='".$row_style[$c]."'>".$row['agent_name']."&nbsp;</td>\n";
$str .= " <td valign='middle' class='".$row_style[$c]."'>".$row['agent_status']."&nbsp;</td>\n";
$str .= " <td valign='middle' class='".$row_style[$c]."'>";
+1 -1
View File
@@ -77,7 +77,7 @@ else {
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$num_rows = count($result);
unset ($prep_statement, $result, $sql);
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 100;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
+43 -46
View File
@@ -43,60 +43,57 @@ else {
$id = check_str($_GET["id"]);
}
//delete the data
if (strlen($id) > 0) {
if (strlen($id) > 0) {
//get the dialplan uuid
$sql = "select * from v_call_center_queues ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and call_center_queue_uuid = '$id' ";
$prep_statement = $db->prepare($sql);
$prep_statement->execute();
while($row = $prep_statement->fetch(PDO::FETCH_ASSOC)) {
$queue_name = $row['queue_name'];
$dialplan_uuid = $row['dialplan_uuid'];
}
//get the dialplan uuid
$sql = "select * from v_call_center_queues ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and call_center_queue_uuid = '$id' ";
$prep_statement = $db->prepare($sql);
$prep_statement->execute();
while($row = $prep_statement->fetch(PDO::FETCH_ASSOC)) {
$queue_name = $row['queue_name'];
$dialplan_uuid = $row['dialplan_uuid'];
}
//delete the tier from the database
$sql = "delete from v_call_center_tiers ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and queue_name = '$queue_name' ";
$db->query($sql);
unset($sql);
//delete the tier from the database
$sql = "delete from v_call_center_tiers ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and queue_name = '$queue_name' ";
$db->query($sql);
unset($sql);
//delete the call center queue
$sql = "delete from v_call_center_queues ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and call_center_queue_uuid = '$id' ";
$db->query($sql);
unset($sql);
//delete the call center queue
$sql = "delete from v_call_center_queues ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
unset($sql);
//delete the dialplan entry
$sql = "delete from v_dialplans ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
unset($sql);
//delete the dialplan entry
$sql = "delete from v_dialplans ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
unset($sql);
//delete the dialplan details
$sql = "delete from v_dialplan_details ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
unset($sql);
//delete the dialplan details
$sql = "delete from v_dialplan_details ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
unset($sql);
//clear the cache
$cache = new cache;
$cache->delete("dialplan:".$_SESSION["context"]);
remove_config_from_cache('configuration:callcenter.conf');
//clear the cache
$cache = new cache;
$cache->delete("memcache delete dialplan:".$_SESSION["context"]);
//synchronize configuration
save_dialplan_xml();
save_call_center_xml();
//synchronize configuration
save_dialplan_xml();
//apply settings reminder
$_SESSION["reload_xml"] = true;
}
//apply settings reminder
$_SESSION["reload_xml"] = true;
}
//redirect the browser
$_SESSION["message"] = $text['message-delete'];
+64 -26
View File
@@ -255,9 +255,8 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$db->exec(check_sql($sql));
unset($sql);
//synchronize the configuration
//syncrhonize the configuration
save_call_center_xml();
remove_config_from_cache('configuration:callcenter.conf');
//delete the dialplan context from memcache
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
@@ -266,8 +265,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
}
//set the message
$_SESSION["message"] = $text['message-add'];
$_SESSION["message"] = $text['message-add'];
} //if ($action == "add")
if ($action == "update") {
@@ -312,32 +310,31 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
}
unset ($prep_statement);
//dialplan add or update
$c = new call_center;
$c->db = $db;
$c->domain_uuid = $_SESSION['domain_uuid'];
$c->call_center_queue_uuid = $call_center_queue_uuid;
$c->dialplan_uuid = $dialplan_uuid;
$c->queue_name = $queue_name;
$c->queue_name = $queue_name;
$c->queue_cid_prefix = $queue_cid_prefix;
$c->queue_timeout_action = $queue_timeout_action;
$c->queue_description = $queue_description;
$c->destination_number = $queue_extension;
$a = $c->dialplan();
//synchronize the configuration
save_call_center_xml();
remove_config_from_cache('configuration:callcenter.conf');
//clear the cache
$cache = new cache;
$cache->delete("dialplan:".$_SESSION["context"]);
$cache->delete("memcache delete dialplan:".$_SESSION["context"]);
//set the update message
$_SESSION["message"] = $text['message-update'];
} //if ($action == "update")
//dialplan add or update
$c = new call_center;
$c->db = $db;
$c->domain_uuid = $_SESSION['domain_uuid'];
$c->call_center_queue_uuid = $call_center_queue_uuid;
$c->dialplan_uuid = $dialplan_uuid;
$c->queue_name = $queue_name;
$c->queue_name = $queue_name;
$c->queue_cid_prefix = $queue_cid_prefix;
$c->queue_timeout_action = $queue_timeout_action;
$c->queue_description = $queue_description;
$c->destination_number = $queue_extension;
$a = $c->dialplan();
//add agent/tier to queue
$agent_name = check_str($_POST["agent_name"]);
$tier_level = check_str($_POST["tier_level"]);
@@ -396,12 +393,11 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//syncrhonize configuration
save_call_center_xml();
remove_config_from_cache('configuration:callcenter.conf');
}
//redirect
header("Location: call_center_queue_edit.php?id=".$call_center_queue_uuid);
return;
header("Location: call_center_queue_edit.php?id=".$call_center_queue_uuid);
return;
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
@@ -684,8 +680,50 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
$ringbacks = new ringbacks;
echo $ringbacks->select('queue_moh_sound', $queue_moh_sound);
$select_options = "";
if ($queue_moh_sound == "tone_stream://\$\${us-ring};loops=-1" || $queue_moh_sound == "us-ring") {
$select_options .= " <option value='tone_stream://\$\${us-ring};loops=-1' selected='selected'>".$text['option-usring']."</option>\n";
}
else {
$select_options .= " <option value='tone_stream://\$\${us-ring};loops=-1'>".$text['option-usring']."</option>\n";
}
if ($queue_moh_sound == "tone_stream://\$\${pt-ring};loops=-1" || $queue_moh_sound == "pt-ring") {
$select_options .= " <option value='tone_stream://\$\${pt-ring};loops=-1' selected='selected'>".$text['option-ptring']."</option>\n";
}
else {
$select_options .= " <option value='tone_stream://\$\${pt-ring};loops=-1'>".$text['option-ptring']."</option>\n";
}
if ($queue_moh_sound == "tone_stream://\$\${fr-ring};loops=-1" || $queue_moh_sound == "fr-ring") {
$select_options .= " <option value='tone_stream://\$\${fr-ring};loops=-1' selected='selected'>".$text['option-frring']."</option>\n";
}
else {
$select_options .= " <option value='tone_stream://\$\${fr-ring};loops=-1'>".$text['option-frring']."</option>\n";
}
if ($queue_moh_sound == "tone_stream://\$\${uk-ring};loops=-1" || $queue_moh_sound == "uk-ring") {
$select_options .= " <option value='tone_stream://\$\${uk-ring};loops=-1' selected='selected'>".$text['option-ukring']."</option>\n";
}
else {
$select_options .= " <option value='tone_stream://\$\${uk-ring};loops=-1'>".$text['option-ukring']."</option>\n";
}
if ($queue_moh_sound == "tone_stream://\$\${rs-ring};loops=-1" || $queue_moh_sound == "rs-ring") {
$select_options .= " <option value='tone_stream://\$\${rs-ring};loops=-1' selected='selected'>".$text['option-rsring']."</option>\n";
}
else {
$select_options .= " <option value='tone_stream://\$\${rs-ring};loops=-1'>".$text['option-rsring']."</option>\n";
}
if ($queue_moh_sound == "tone_stream://\$\${it-ring};loops=-1" || $queue_moh_sound == "it-ring") {
$select_options .= " <option value='tone_stream://\$\${it-ring};loops=-1' selected='selected'>".$text['option-itring']."</option>\n";
}
else {
$select_options .= " <option value='tone_stream://\$\${it-ring};loops=-1'>".$text['option-itring']."</option>\n";
}
require_once "app/music_on_hold/resources/classes/switch_music_on_hold.php";
$moh= new switch_music_on_hold;
$moh->select_name = "queue_moh_sound";
$moh->select_value = $queue_moh_sound;
$moh->select_options = $select_options;
echo $moh->select();
echo "<br />\n";
echo $text['description-music_on_hold']."\n";
@@ -698,7 +736,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
$record_ext=($_SESSION['record_ext']=='mp3'?'mp3':'wav');
$record_template = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}/\${uuid}.".$record_ext;
$record_template = $_SESSION['switch']['recordings']['dir']."/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}/\${uuid}.".$record_ext;
echo " <select class='formfld' name='queue_record_template'>\n";
if (strlen($queue_record_template) > 0) {
echo " <option value='$record_template' selected='selected' >".$text['option-true']."</option>\n";
+1 -1
View File
@@ -86,7 +86,7 @@ else {
$num_rows = count($result);
unset ($prep_statement, $result, $sql);
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 100;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
+1 -2
View File
@@ -111,8 +111,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
unset($sql);
//syncrhonize configuration
save_call_center_xml();
remove_config_from_cache('configuration:callcenter.conf');
save_call_center_xml();
//look up queue uuid by queue name (ugh)
$sql = "select call_center_queue_uuid from v_call_center_queues where queue_name = '".$queue_name."'";
+223 -223
View File
@@ -1,224 +1,224 @@
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Copyright (C) 2015
All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
/**
* cache class provides an abstracted cache
*
* @method string dialplan - builds the dialplan for call center
*/
//define the call center class
if (!class_exists('call_center')) {
class call_center {
/**
* define the variables
*/
public $domain_uuid;
public $call_center_queue_uuid;
public $dialplan_uuid;
public $queue_name;
public $queue_description;
public $destination_number;
/**
* Called when the object is created
*/
public function __construct() {
//place holder
}
/**
* Called when there are no references to a particular object
* unset the variables used in the class
*/
public function __destruct() {
foreach ($this as $key => $value) {
unset($this->$key);
}
}
/**
* Add a dialplan for call center
* @var string $domain_uuid the multi-tenant id
* @var string $value string to be cached
*/
public function dialplan() {
//delete previous dialplan
if (strlen($this->dialplan_uuid) > 0) {
//delete the previous dialplan
$sql = "delete from v_dialplans ";
$sql .= "where dialplan_uuid = '".$this->dialplan_uuid."' ";
$sql .= "and domain_uuid = '".$this->domain_uuid."' ";
$this->db->exec($sql);
$sql = "delete from v_dialplan_details ";
$sql .= "where dialplan_uuid = '".$this->dialplan_uuid."' ";
$sql .= "and domain_uuid = '".$this->domain_uuid."' ";
$this->db->exec($sql);
unset($sql);
}
unset($prep_statement);
//build the dialplan array
$dialplan["app_uuid"] = "95788e50-9500-079e-2807-fd530b0ea370";
$dialplan["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_name"] = ($this->queue_name != '') ? $this->queue_name : format_phone($this->destination_number);
$dialplan["dialplan_number"] = $this->destination_number;
$dialplan["dialplan_context"] = $_SESSION['context'];
$dialplan["dialplan_continue"] = "false";
$dialplan["dialplan_order"] = "210";
$dialplan["dialplan_enabled"] = "true";
$dialplan["dialplan_description"] = $this->queue_description;
$dialplan_detail_order = 10;
//add the public condition
$y = 1;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "condition";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "\${caller_id_name}";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "^([^#]+#)(.*)$";
$dialplan["dialplan_details"][$y]["dialplan_detail_break"] = "never";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "1";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "caller_id_name=$2";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "1";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "condition";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "destination_number";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "^".$this->destination_number."\$";
$dialplan["dialplan_details"][$y]["dialplan_detail_break"] = "";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "answer";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "hangup_after_bridge=true";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
if (strlen($this->queue_cid_prefix) > 0) {
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "effective_caller_id_name=".$this->queue_cid_prefix."#\${caller_id_name}";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
}
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "callcenter";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = $this->queue_name.'@'.$_SESSION["domain_name"];
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
if (strlen($this->queue_timeout_action) > 0) {
$action_array = explode(":",$this->queue_timeout_action);
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $action_array[0];
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = substr($this->queue_timeout_action, strlen($action_array[0])+1, strlen($this->queue_timeout_action));
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
}
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "hangup";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
//add the dialplan permission
$p = new permissions;
$p->add("dialplan_add", 'temp');
$p->add("dialplan_detail_add", 'temp');
$p->add("dialplan_edit", 'temp');
$p->add("dialplan_detail_edit", 'temp');
//save the dialplan
$orm = new orm;
$orm->name('dialplans');
$orm->save($dialplan);
$dialplan_response = $orm->message;
$this->dialplan_uuid = $dialplan_response['uuid'];
//if new dialplan uuid then update the call center queue
$sql = "update v_call_center_queues ";
$sql .= "set dialplan_uuid = '".$this->dialplan_uuid."' ";
$sql .= "where call_center_queue_uuid = '".$this->call_center_queue_uuid."' ";
$sql .= "and domain_uuid = '".$this->domain_uuid."' ";
$this->db->exec($sql);
unset($sql);
//remove the temporary permission
$p->delete("dialplan_add", 'temp');
$p->delete("dialplan_detail_add", 'temp');
$p->delete("dialplan_edit", 'temp');
$p->delete("dialplan_detail_edit", 'temp');
//synchronize the xml config
save_dialplan_xml();
//clear the cache
$cache = new cache;
$cache->delete("dialplan:".$_SESSION['context']);
//return the dialplan_uuid
return $dialplan_response;
}
}
}
/*
$o = new call_center;
$c->domain_uuid = "";
$c->dialplan_uuid = "";
$c->queue_name = "";
$c->queue_cid_prefix = "";
$c->queue_timeout_action = "";
$c->queue_description = "";
$c->destination_number = "";
$c->dialplan();
*/
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Copyright (C) 2015
All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
/**
* cache class provides an abstracted cache
*
* @method string dialplan - builds the dialplan for call center
*/
//define the call center class
if (!class_exists('call_center')) {
class call_center {
/**
* define the variables
*/
public $domain_uuid;
public $call_center_queue_uuid;
public $dialplan_uuid;
public $queue_name;
public $queue_description;
public $destination_number;
/**
* Called when the object is created
*/
public function __construct() {
//place holder
}
/**
* Called when there are no references to a particular object
* unset the variables used in the class
*/
public function __destruct() {
foreach ($this as $key => $value) {
unset($this->$key);
}
}
/**
* Add a dialplan for call center
* @var string $domain_uuid the multi-tenant id
* @var string $value string to be cached
*/
public function dialplan() {
//delete previous dialplan
if (strlen($this->dialplan_uuid) > 0) {
//delete the previous dialplan
$sql = "delete from v_dialplans ";
$sql .= "where dialplan_uuid = '".$this->dialplan_uuid."' ";
$sql .= "and domain_uuid = '".$this->domain_uuid."' ";
$this->db->exec($sql);
$sql = "delete from v_dialplan_details ";
$sql .= "where dialplan_uuid = '".$this->dialplan_uuid."' ";
$sql .= "and domain_uuid = '".$this->domain_uuid."' ";
$this->db->exec($sql);
unset($sql);
}
unset($prep_statement);
//build the dialplan array
$dialplan["app_uuid"] = "95788e50-9500-079e-2807-fd530b0ea370";
$dialplan["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_name"] = ($this->queue_name != '') ? $this->queue_name : format_phone($this->destination_number);
$dialplan["dialplan_number"] = $this->destination_number;
$dialplan["dialplan_context"] = $_SESSION['context'];
$dialplan["dialplan_continue"] = "false";
$dialplan["dialplan_order"] = "210";
$dialplan["dialplan_enabled"] = "true";
$dialplan["dialplan_description"] = $this->queue_description;
$dialplan_detail_order = 10;
//add the public condition
$y = 1;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "condition";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "\${caller_id_name}";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "^([^#]+#)(.*)$";
$dialplan["dialplan_details"][$y]["dialplan_detail_break"] = "never";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "1";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "caller_id_name=$2";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "1";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "condition";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "destination_number";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "^".$this->destination_number."\$";
$dialplan["dialplan_details"][$y]["dialplan_detail_break"] = "";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "answer";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "hangup_after_bridge=true";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
if (strlen($this->queue_cid_prefix) > 0) {
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "effective_caller_id_name=".$this->queue_cid_prefix."#\${caller_id_name}";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
}
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "callcenter";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = $this->queue_name.'@'.$_SESSION["domain_name"];
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
if (strlen($this->queue_timeout_action) > 0) {
$action_array = explode(":",$this->queue_timeout_action);
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $action_array[0];
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = substr($this->queue_timeout_action, strlen($action_array[0])+1, strlen($this->queue_timeout_action));
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
$y++;
}
$dialplan["dialplan_details"][$y]["domain_uuid"] = $this->domain_uuid;
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "hangup";
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "";
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = "2";
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $y * 10;
//add the dialplan permission
$p = new permissions;
$p->add("dialplan_add", 'temp');
$p->add("dialplan_detail_add", 'temp');
$p->add("dialplan_edit", 'temp');
$p->add("dialplan_detail_edit", 'temp');
//save the dialplan
$orm = new orm;
$orm->name('dialplans');
$orm->save($dialplan);
$dialplan_response = $orm->message;
$this->dialplan_uuid = $dialplan_response['uuid'];
//if new dialplan uuid then update the call center queue
$sql = "update v_call_center_queues ";
$sql .= "set dialplan_uuid = '".$this->dialplan_uuid."' ";
$sql .= "where call_center_queue_uuid = '".$this->call_center_queue_uuid."' ";
$sql .= "and domain_uuid = '".$this->domain_uuid."' ";
$this->db->exec($sql);
unset($sql);
//remove the temporary permission
$p->delete("dialplan_add", 'temp');
$p->delete("dialplan_detail_add", 'temp');
$p->delete("dialplan_edit", 'temp');
$p->delete("dialplan_detail_edit", 'temp');
//synchronize the xml config
save_dialplan_xml();
//clear the cache
$cache = new cache;
$cache->delete("dialplan:".$_SESSION['context']);
//return the dialplan_uuid
return $dialplan_response;
}
}
}
/*
$o = new call_center;
$c->domain_uuid = "";
$c->dialplan_uuid = "";
$c->queue_name = "";
$c->queue_cid_prefix = "";
$c->queue_timeout_action = "";
$c->queue_description = "";
$c->destination_number = "";
$c->dialplan();
*/
?>
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+4 -30
View File
@@ -83,79 +83,53 @@
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_name";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the name.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com o nome.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_extension";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the extension number.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com o ramal.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_feature_code";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the feature code.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com o código de recurso.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_context";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the context.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com o contexto.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_status";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Select the status.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Selecione o estado.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_pin_number";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the PIN number.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com o número PIN.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_label";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the label.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com uma etiqueta.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_sound";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Select the sound.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Selecione o som.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_app";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the application.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com a aplicação.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_data";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the application data.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com os dados da aplicação.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "call_flow_alternate_label";
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "call_flow_anti_label";
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_anti_label";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the alternate label.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com uma etiqueta alternativa.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_alternate_sound";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Select the alternate sound.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Selecione um som alternativo.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "call_flow_alternate_app";
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "call_flow_anti_app";
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_anti_app";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the alternate application.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com uma aplicação alternativa.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "call_flow_alternate_data";
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "call_flow_anti_data";
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_anti_data";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the alernate application data.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com os dados da aplicação alternativa.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "call_flow_description";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "Enter the description.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com a descrição.";
$z++;
?>
+191 -91
View File
@@ -27,9 +27,69 @@ $text['title-call_flow-add']['fr-fr'] = "Ajouter un flux";
$text['title-call_flow-add']['pt-br'] = "Adicionar fluxo de chamada";
$text['title-call_flow-add']['pl'] = "Dodaj przepływ rozmów";
$text['title-call_flow-add']['sv-se'] = "Lägg Till Samtalsflöde";
$text['title-call_flow-add']['uk'] = "Виклик Flow Додати";
$text['title-call_flow-add']['uk'] = "";
$text['title-call_flow-add']['de-at'] = "Anruf Steuerung hinzufügen";
$text['message-update']['en-us'] = "Update Completed";
$text['message-update']['es-cl'] = "Actualizar Completado";
$text['message-update']['pt-pt'] = "Actualização Efectuada";
$text['message-update']['fr-fr'] = "Mise à jour effectuée";
$text['message-update']['pt-br'] = "Atualização Efetuada";
$text['message-update']['pl'] = "Zaktualizowano poprawnie";
$text['message-update']['sv-se'] = "Uppdatering Klar";
$text['message-update']['uk'] = "Оновлено";
$text['message-update']['de-at'] = "Aktualisierung durchgeführt";
$text['message-required']['en-us'] = "Please provide: ";
$text['message-required']['es-cl'] = "Por favor indique: ";
$text['message-required']['pt-pt'] = "Por favor indique: ";
$text['message-required']['fr-fr'] = "Merci d'indiquer: ";
$text['message-required']['pt-br'] = "Por favor Indique:";
$text['message-required']['pl'] = "Wpisz:";
$text['message-required']['sv-se'] = "Var god uppge:";
$text['message-required']['uk'] = "Будь ласка, вкажіть:";
$text['message-required']['de-at'] = "Bitte geben Sie folgendes an:";
$text['message-message']['en-us'] = "Message";
$text['message-message']['es-cl'] = "Mensaje";
$text['message-message']['pt-pt'] = "Mensagem";
$text['message-message']['fr-fr'] = "Message";
$text['message-message']['pt-br'] = "Mensagem";
$text['message-message']['pl'] = "Wiadomość";
$text['message-message']['sv-se'] = "Meddelande";
$text['message-message']['uk'] = "Повідомлення";
$text['message-message']['de-at'] = "Nachricht";
$text['message-delete']['en-us'] = "Delete Completed";
$text['message-delete']['es-cl'] = "Eliminar Completado";
$text['message-delete']['pt-pt'] = "Remoção Efectuada";
$text['message-delete']['fr-fr'] = "Suppression effectuée";
$text['message-delete']['pt-br'] = "Remoção Efetuada";
$text['message-delete']['pl'] = "Usunięto poprawnie";
$text['message-delete']['sv-se'] = "Borttagning Klar";
$text['message-delete']['uk'] = "Видалено";
$text['message-delete']['de-at'] = "Erfolgreich gelöscht";
$text['message-add']['en-us'] = "Add Completed";
$text['message-add']['es-cl'] = "Agregar Completado";
$text['message-add']['pt-pt'] = "Adição Efectuada";
$text['message-add']['fr-fr'] = "Ajout effectué";
$text['message-add']['pt-br'] = "Criação Efetuada";
$text['message-add']['pl'] = "Dodano poprawnie";
$text['message-add']['sv-se'] = "Tillagd";
$text['message-add']['uk'] = "Додано";
$text['message-add']['de-at'] = "Erfolgreich hinzugefügt";
$text['label-true']['en-us'] = "True";
$text['label-true']['es-cl'] = "Verdadero";
$text['label-true']['pt-pt'] = "Sim";
$text['label-true']['fr-fr'] = "Oui";
$text['label-true']['pt-br'] = "Sim";
$text['label-true']['pl'] = "Tak";
$text['label-true']['sv-se'] = "Sann";
$text['label-true']['uk'] = "Так";
$text['label-true']['de-at'] = "Ein";
$text['label-status']['en-us'] = "Status";
$text['label-status']['es-cl'] = "Estado";
$text['label-status']['pt-pt'] = "Estado";
@@ -50,6 +110,26 @@ $text['label-pin_number']['sv-se'] = "PIN Kod";
$text['label-pin_number']['uk'] = "PIN-код";
$text['label-pin_number']['de-at'] = "PIN Nummer";
$text['label-none']['en-us'] = "None";
$text['label-none']['es-cl'] = "Ninguno";
$text['label-none']['pt-pt'] = "Nenhum";
$text['label-none']['fr-fr'] = "Aucun";
$text['label-none']['pt-br'] = "Nenhum";
$text['label-none']['pl'] = "Żaden";
$text['label-none']['sv-se'] = "Ingen";
$text['label-none']['uk'] = "Жоден";
$text['label-none']['de-at'] = "keine";
$text['label-name']['en-us'] = "Name";
$text['label-name']['es-cl'] = "Nombre";
$text['label-name']['pt-pt'] = "Nome";
$text['label-name']['fr-fr'] = "Nom";
$text['label-name']['pt-br'] = "Nome";
$text['label-name']['pl'] = "Nazwa";
$text['label-name']['sv-se'] = "Namn";
$text['label-name']['uk'] = "Назва";
$text['label-name']['de-at'] = "Name";
$text['label-feature_code']['en-us'] = "Feature Code";
$text['label-feature_code']['es-cl'] = "Código distintivo";
$text['label-feature_code']['pt-pt'] = "Código de Função";
@@ -60,6 +140,16 @@ $text['label-feature_code']['sv-se'] = "Funktionskod";
$text['label-feature_code']['uk'] = "";
$text['label-feature_code']['de-at'] = "Stern-Code";
$text['label-false']['en-us'] = "False";
$text['label-false']['es-cl'] = "Falso";
$text['label-false']['pt-pt'] = "Não";
$text['label-false']['fr-fr'] = "Non";
$text['label-false']['pt-br'] = "Não";
$text['label-false']['pl'] = "Nie";
$text['label-false']['sv-se'] = "Falsk";
$text['label-false']['uk'] = "Ні";
$text['label-false']['de-at'] = "Aus";
$text['label-extension']['en-us'] = "Extension";
$text['label-extension']['es-cl'] = "Extensión";
$text['label-extension']['pt-pt'] = "Extensão";
@@ -74,10 +164,10 @@ $text['label-destination_label']['en-us'] = "Destination Label";
$text['label-destination_label']['es-cl'] = "Etiqueta de Destino";
$text['label-destination_label']['pt-pt'] = "Destino";
$text['label-destination_label']['fr-fr'] = "Label de la destination";
$text['label-destination_label']['pt-br'] = "Etiqueta de destino";
$text['label-destination_label']['pt-br'] = "Destino";
$text['label-destination_label']['pl'] = "Etykieta destynacji";
$text['label-destination_label']['sv-se'] = "Destination Etikett";
$text['label-destination_label']['uk'] = "призначення етикетки";
$text['label-destination_label']['uk'] = "";
$text['label-destination_label']['de-at'] = "Ziel Kennzeichnung";
$text['label-destination']['en-us'] = "Destination";
@@ -90,6 +180,16 @@ $text['label-destination']['sv-se'] = "Destination";
$text['label-destination']['uk'] = "Номер";
$text['label-destination']['de-at'] = "Ziel";
$text['label-description']['en-us'] = "Description";
$text['label-description']['es-cl'] = "Descripción";
$text['label-description']['pt-pt'] = "Descrição";
$text['label-description']['fr-fr'] = "Description";
$text['label-description']['pt-br'] = "Descrição";
$text['label-description']['pl'] = "Opis";
$text['label-description']['sv-se'] = "Beskrivning";
$text['label-description']['uk'] = "Опис";
$text['label-description']['de-at'] = "Beschreibung";
$text['label-context']['en-us'] = "Context";
$text['label-context']['es-cl'] = "Contexto";
$text['label-context']['pt-pt'] = "Contexto";
@@ -107,7 +207,7 @@ $text['label-alternate_label']['fr-fr'] = "Label alternatif";
$text['label-alternate_label']['pt-br'] = "Etqueta alternativa";
$text['label-alternate_label']['pl'] = "Alternatywna etykieta";
$text['label-alternate_label']['sv-se'] = "Alternativ Etikett";
$text['label-alternate_label']['uk'] = "альтернативні етикетки";
$text['label-alternate_label']['uk'] = "";
$text['label-alternate_label']['de-at'] = "Alternatives Ziel Beschreibung";
$text['label-alternate_destination']['en-us'] = "Alternate Destination";
@@ -117,29 +217,9 @@ $text['label-alternate_destination']['fr-fr'] = "Destination alternative";
$text['label-alternate_destination']['pt-br'] = "Destino alternativo";
$text['label-alternate_destination']['pl'] = "Alternatywna destynacja";
$text['label-alternate_destination']['sv-se'] = "Alternativ Destination";
$text['label-alternate_destination']['uk'] = "альтернативні варіанти призначення";
$text['label-alternate_destination']['uk'] = "";
$text['label-alternate_destination']['de-at'] = "Alternatives Ziel";
$text['label-sound']['en-us'] = "Sound";
$text['label-sound']['es-cl'] = "Sonar";
$text['label-sound']['pt-pt'] = "Som";
$text['label-sound']['fr-fr'] = "Sonner";
$text['label-sound']['pt-br'] = "Som";
$text['label-sound']['pl'] = "Dźwięk";
$text['label-sound']['sv-se'] = "Ljud";
$text['label-sound']['uk'] = "звук";
$text['label-sound']['de-at'] = "Klingen";
$text['label-alternate_sound']['en-us'] = "Alternate Sound";
$text['label-alternate_sound']['es-cl'] = "sonido alternativo";
$text['label-alternate_sound']['pt-pt'] = "som alternativo";
$text['label-alternate_sound']['fr-fr'] = "son suppléant";
$text['label-alternate_sound']['pt-br'] = "Som alternativo";
$text['label-alternate_sound']['pl'] = "Alternatywny dźwięk";
$text['label-alternate_sound']['sv-se'] = "alternativt ljud";
$text['label-alternate_sound']['uk'] = "альтернативний звук";
$text['label-alternate_sound']['de-at'] = "wechseln Klingen";
$text['header-call_flows']['en-us'] = "Call Flows";
$text['header-call_flows']['es-cl'] = "flujo de Llamada";
$text['header-call_flows']['pt-pt'] = "Fluxo de Chamadas";
@@ -174,7 +254,7 @@ $text['description-status']['en-us'] = "Select the status.";
$text['description-status']['es-cl'] = "Seleccione el estado.";
$text['description-status']['pt-pt'] = "Seleccione o estado.";
$text['description-status']['fr-fr'] = "Choisir le statut.";
$text['description-status']['pt-br'] = "Escolha o estado.";
$text['description-status']['pt-br'] = "Escolha o estado do usuário.";
$text['description-status']['pl'] = "Wybierz status użytkownika";
$text['description-status']['sv-se'] = "Välj Status";
$text['description-status']['uk'] = "Виберіть статус користувача";
@@ -184,17 +264,17 @@ $text['description-pin_number']['en-us'] = "Enter the pin number.";
$text['description-pin_number']['es-cl'] = "Ingrese el número PIN.";
$text['description-pin_number']['pt-pt'] = "Introduza o código PIN";
$text['description-pin_number']['fr-fr'] = "Choisir le code PIN.";
$text['description-pin_number']['pt-br'] = "Insira o código PIN.";
$text['description-pin_number']['pl'] = "Wprowadź numer PIN";
$text['description-pin_number']['pt-br'] = "Insira o código PIN";
$text['description-pin_number']['pl'] = "";
$text['description-pin_number']['sv-se'] = "Ange PIN Kod.";
$text['description-pin_number']['uk'] = "Введіть пін - код.";
$text['description-pin_number']['uk'] = "";
$text['description-pin_number']['de-at'] = "Geben Sie einen PIN ein.";
$text['description-name']['en-us'] = "Enter the name.";
$text['description-name']['es-cl'] = "Ingrese el nombre.";
$text['description-name']['pt-pt'] = "Introduza o nome.";
$text['description-name']['fr-fr'] = "Choisr le nom.";
$text['description-name']['pt-br'] = "Insira o nome.";
$text['description-name']['pt-br'] = "Insira o nome do menu";
$text['description-name']['pl'] = "Wprowadź nazwę";
$text['description-name']['sv-se'] = "Ange Namn.";
$text['description-name']['uk'] = "Введіть назву меню";
@@ -204,130 +284,150 @@ $text['description-feature_code']['en-us'] = "Enter the feature code.";
$text['description-feature_code']['es-cl'] = "Ingrese el código distintivo.";
$text['description-feature_code']['pt-pt'] = "Introduza o código de função.";
$text['description-feature_code']['fr-fr'] = "Choisir le code la fonction";
$text['description-feature_code']['pt-br'] = "Insira o código de função.";
$text['description-feature_code']['pt-br'] = "Insira o código de função";
$text['description-feature_code']['pl'] = "Dodaj specjalny kod";
$text['description-feature_code']['sv-se'] = "Ange Funktionskoden.";
$text['description-feature_code']['uk'] = "Введіть код об'єкта.";
$text['description-feature_code']['uk'] = "";
$text['description-feature_code']['de-at'] = "Geben Sie den Stern-Code an.";
$text['description-extension']['en-us'] = "Enter the extension number.";
$text['description-extension']['es-cl'] = "Ingrese el número de extensión.";
$text['description-extension']['pt-pt'] = "Introduza o número da extensão.";
$text['description-extension']['fr-fr'] = "Choisir le numéro d'extension.";
$text['description-extension']['pt-br'] = "Atribua o número de ramal.";
$text['description-extension']['pt-br'] = "Atribua a extensão e números ao dispositivo";
$text['description-extension']['pl'] = "Wprowadź alfanumeryczny numer wewnętrzny. Domyślna konfiguracja pozwala na 2-7 cyfrowe numery wewnętrzne";
$text['description-extension']['sv-se'] = "Ange anknytningsnumret.";
$text['description-extension']['uk'] = "Введіть номер розширення.";
$text['description-extension']['uk'] = "";
$text['description-extension']['de-at'] = "Weisen Sie die Nebenstellen und Linien einem Gerät zu.";
$text['description-destination_label']['en-us'] = "Enter the destination label.";
$text['description-destination_label']['es-cl'] = "Ingrese la etiqueta de destino.";
$text['description-destination_label']['pt-pt'] = "Introduza o destino.";
$text['description-destination_label']['fr-fr'] = "Choisir le label de la destination.";
$text['description-destination_label']['pt-br'] = "Insira o destino.";
$text['description-destination_label']['pt-br'] = "Insira o destino";
$text['description-destination_label']['pl'] = "Wprowadź opis destynacji";
$text['description-destination_label']['sv-se'] = "Ange Destinations Etiketten.";
$text['description-destination_label']['uk'] = "Введіть мітку призначення.";
$text['description-destination_label']['uk'] = "";
$text['description-destination_label']['de-at'] = "Geben Sie eine Beschreibung für das Ziel an.";
$text['description-destination']['en-us'] = "Select the destination.";
$text['description-destination']['es-cl'] = "Seleccione el destino.";
$text['description-destination']['pt-pt'] = "Seleccione o destino.";
$text['description-destination']['fr-fr'] = "Choisir la destination.";
$text['description-destination']['pt-br'] = "Selecionar o destino da chamada.";
$text['description-destination']['pt-br'] = "Enviar a chamada para a extensão de um menu de IVR, Sala de Conferência ou qualquer outro número.";
$text['description-destination']['pl'] = "Wybierz numer docelowy.";
$text['description-destination']['sv-se'] = "Välj destinationen.";
$text['description-destination']['uk'] = "Відправити дзвінок на розширення, меню IVR, конференцію, або будь-який інший номер.";
$text['description-destination']['de-at'] = "Wählen Sie das Ziel.";
$text['description-description']['en-us'] = "Enter a description, if desired.";
$text['description-description']['es-cl'] = "Ingrese una descripción, opcional.";
$text['description-description']['pt-pt'] = "Introduza uma descrição, se desejar.";
$text['description-description']['fr-fr'] = "Entrez une description, si vous le souhaitez.";
$text['description-description']['pt-br'] = "Insira a descrição, caso desejar";
$text['description-description']['pl'] = "Wpisz opis (opcjonalne)";
$text['description-description']['sv-se'] = "Fyll i en beskrivning, om nödvändigt.";
$text['description-description']['uk'] = "Введіть опис, якщо це необхідно.";
$text['description-description']['de-at'] = "Falls gewünscht, geben Sie eine Beschreibung an.";
$text['description-context']['en-us'] = "Enter the context.";
$text['description-context']['es-cl'] = "Ingrese el contexto.";
$text['description-context']['pt-pt'] = "Introduza o contexto";
$text['description-context']['fr-fr'] = "Choisir le contexte.";
$text['description-context']['pt-br'] = "Insira o contexto.";
$text['description-context']['pt-br'] = "Insira o contexto";
$text['description-context']['pl'] = "Wprowadź kontekst";
$text['description-context']['sv-se'] = "Ange Context.";
$text['description-context']['uk'] = "Введіть контекст.";
$text['description-context']['uk'] = "";
$text['description-context']['de-at'] = "Geben Sie den Kontext hier an.";
$text['description-call_flows']['en-us'] = "Direct calls between two destinations by calling a feature code.";
$text['description-call_flows']['es-cl'] = "Llamadas directas entre dos destinatarios llamando a un código distintivo.";
$text['description-call_flows']['pt-pt'] = "Chamadas directas entre dois destinos recorrendo a um código de função.";
$text['description-call_flows']['fr-fr'] = "Appels directs entre deux destinations en appelant une fonction.";
$text['description-call_flows']['pt-br'] = "Chamadas diretas para dois dispositivos utilizando o código de função.";
$text['description-call_flows']['pt-br'] = "Para chamadas direta entre dois destinos utilize um código ";
$text['description-call_flows']['pl'] = "Kieruj rozmowy bezpośrednio pomiędzy dwoma destynacjami poprzez prowadzenie specjalnego kodu.";
$text['description-call_flows']['sv-se'] = "Samtal mellan två destinationer genom att ringa en funktionskod.";
$text['description-call_flows']['uk'] = "Прямі виклики між двома пунктами шляхом виклику коду функції.";
$text['description-call_flows']['uk'] = "";
$text['description-call_flows']['de-at'] = "Leiten Sie Anrufe zwischen zwei Zielen um indem Sie einen Stern-Code wählen.";
$text['description-alternate_label']['en-us'] = "Enter the alternate destination label.";
$text['description-alternate_label']['es-cl'] = "Ingrese la etiqueta de destino alternativo.";
$text['description-alternate_label']['pt-pt'] = "Introduza um destino alternativo.";
$text['description-alternate_label']['fr-fr'] = "Choisir le label de la destination alternative.";
$text['description-alternate_label']['pt-br'] = "Insira um destino alternativo.";
$text['description-alternate_label']['pt-br'] = "Insira um destino alternativo";
$text['description-alternate_label']['pl'] = "Wprowadź alternatywny opis destynacji";
$text['description-alternate_label']['sv-se'] = "Ange den alternativa destinations etiketten.";
$text['description-alternate_label']['uk'] = "Введіть альтернативний ярлик призначення.";
$text['description-alternate_label']['uk'] = "";
$text['description-alternate_label']['de-at'] = "Geben Sie eine Beschreibung für das alternative Ziel ein.";
$text['description-alternate_destination']['en-us'] = "Select the alternate destination.";
$text['description-alternate_destination']['es-cl'] = "Seleccione el destino alternativo.";
$text['description-alternate_destination']['pt-pt'] = "Seleccione um destino alternativo.";
$text['description-alternate_destination']['fr-fr'] = "Choisir la destination alternative.";
$text['description-alternate_destination']['pt-br'] = "Selecione um destino alternativo.";
$text['description-alternate_destination']['pt-br'] = "Selecione um destino alternativo";
$text['description-alternate_destination']['pl'] = "Wybierz alternatywną destynację";
$text['description-alternate_destination']['sv-se'] = "Välj den alternativa destinationen.";
$text['description-alternate_destination']['uk'] = "Виберіть інше розташування.";
$text['description-alternate_destination']['uk'] = "";
$text['description-alternate_destination']['de-at'] = "Wählen Sie ein alternatives Ziel.";
$text['description-sound']['en-us'] = "Select the sound to play when the status is set to the destinations.";
$text['description-sound']['es-cl'] = "Seleccione el sonido a reproducir cuando el estado se establece en el destino.";
$text['description-sound']['pt-pt'] = "Selecione o som para tocar quando o status é definido como o destino.";
$text['description-sound']['fr-fr'] = "Sélectionnez le son à jouer lorsque l'état est réglé sur la destination.";
$text['description-sound']['pt-br'] = "Selecione o som para tocar quando o status é definido para o destino.";
$text['description-sound']['pl'] = "Wybierz dźwięk do odtworzenia, gdy status jest ustawiony do miejsca przeznaczenia.";
$text['description-sound']['sv-se'] = "Välj ljud att spela när status är inställd på destinationen.";
$text['description-sound']['uk'] = "Виберіть звук для відтворення , коли статус встановлений в пункти призначення.";
$text['description-sound']['de-at'] = "Wählen Sie den Ton zu spielen, wenn der Status auf das Ziel festgelegt ist.";
$text['confirm-delete']['en-us'] = "Do you really want to delete this?";
$text['confirm-delete']['es-cl'] = "¿Realmente desea ejecutar esta acción?";
$text['confirm-delete']['pt-pt'] = "Deseja realmente remover isto?";
$text['confirm-delete']['fr-fr'] = "Voulez-vour vraiment supprimer cela?";
$text['confirm-delete']['pt-br'] = "Deseja realmente remover isto?";
$text['confirm-delete']['pl'] = "Czy na pewno chcesz to usunąć?";
$text['confirm-delete']['sv-se'] = "Vill du verkligen ta bort detta?";
$text['confirm-delete']['uk'] = "Ви дійсно бажаєте це видалити?";
$text['confirm-delete']['de-at'] = "Wollen Sie das wirklich löschen?";
$text['description-alternate_sound']['en-us'] = "Select the sound to play when status is set to the alternate destination.";
$text['description-alternate_sound']['es-cl'] = "Seleccione el sonido a reproducir cuando el estado se establece en el destino alternativo.";
$text['description-alternate_sound']['pt-pt'] = "Selecione o som para tocar quando o status é definido como o destino alternativo.";
$text['description-alternate_sound']['fr-fr'] = "Sélectionnez le son à jouer lorsque l'état est réglé sur la destination alternative.";
$text['description-alternate_sound']['pt-br'] = "Selecione o som para tocar quando o status é definido para o destino alternativo.";
$text['description-alternate_sound']['pl'] = "Wybierz dźwięk do odtworzenia, gdy status jest ustawiony na alternatywnego przeznaczenia.";
$text['description-alternate_sound']['sv-se'] = "Välj ljud att spela när status är inställd på den alternativa destinationen.";
$text['description-alternate_sound']['uk'] = "Виберіть звук для відтворення , коли встановлено стан альтернативного призначення.";
$text['description-alternate_sound']['de-at'] = "Wählen Sie den Ton zu spielen, wenn der Status auf den alternativen Ziel gesetzt.";
$text['button-save']['en-us'] = "Save";
$text['button-save']['es-cl'] = "Guardar";
$text['button-save']['pt-pt'] = "Guardar";
$text['button-save']['fr-fr'] = "Sauvegarder";
$text['button-save']['pt-br'] = "Salvar";
$text['button-save']['pl'] = "Zachowaj";
$text['button-save']['sv-se'] = "Spara";
$text['button-save']['uk'] = "Зберегти";
$text['button-save']['de-at'] = "Speichern";
$text['recordings']['en-us'] = "Recordings";
$text['recordings']['es-cl'] = "grabaciones";
$text['recordings']['pt-pt'] = "gravações";
$text['recordings']['fr-fr'] = "Recordings";
$text['recordings']['pt-br'] = "Gravações";
$text['recordings']['pl'] = "nagrania";
$text['recordings']['sv-se'] = "inspelningar";
$text['recordings']['uk'] = "записи";
$text['recordings']['de-at'] = "Aufnahmen";
$text['button-edit']['en-us'] = "Edit";
$text['button-edit']['es-cl'] = "Editar";
$text['button-edit']['pt-pt'] = "Editar";
$text['button-edit']['fr-fr'] = "Editer";
$text['button-edit']['pt-br'] = "Editar";
$text['button-edit']['pl'] = "Edytuj";
$text['button-edit']['sv-se'] = "Editera";
$text['button-edit']['uk'] = "Редагувати";
$text['button-edit']['de-at'] = "Bearbeiten";
$text['miscellaneous']['en-us'] = "Miscellaneous";
$text['miscellaneous']['es-cl'] = "Diverso";
$text['miscellaneous']['pt-pt'] = "Variado";
$text['miscellaneous']['fr-fr'] = "Divers";
$text['miscellaneous']['pt-br'] = "Diversos";
$text['miscellaneous']['pl'] = "Różne";
$text['miscellaneous']['sv-se'] = "Diverse";
$text['miscellaneous']['uk'] = "Різне";
$text['miscellaneous']['de-at'] = "Sonstiges";
$text['button-delete']['en-us'] = "Delete";
$text['button-delete']['es-cl'] = "Eliminar";
$text['button-delete']['pt-pt'] = "Remover";
$text['button-delete']['fr-fr'] = "Supprimer";
$text['button-delete']['pt-br'] = "Remover";
$text['button-delete']['pl'] = "Usuń";
$text['button-delete']['sv-se'] = "Ta Bort";
$text['button-delete']['uk'] = "Видалити";
$text['button-delete']['de-at'] = "Löschen";
$text['sounds']['en-us'] = "Sounds";
$text['sounds']['es-cl'] = "Sonidos";
$text['sounds']['pt-pt'] = "Sons";
$text['sounds']['fr-fr'] = "des sons";
$text['sounds']['pt-br'] = "Sons";
$text['sounds']['pl'] = "Dźwięki";
$text['sounds']['sv-se'] = "Ljud";
$text['sounds']['uk'] = "звуки";
$text['sounds']['de-at'] = "Geräusche";
$text['button-back']['en-us'] = "Back";
$text['button-back']['es-cl'] = "Volver";
$text['button-back']['pt-pt'] = "Voltar";
$text['button-back']['fr-fr'] = "Retour";
$text['button-back']['pt-br'] = "Voltar";
$text['button-back']['pl'] = "Wróć";
$text['button-back']['sv-se'] = "Tillbaka";
$text['button-back']['uk'] = "Назад";
$text['button-back']['de-at'] = "Zurück";
?>
$text['button-add']['en-us'] = "Add";
$text['button-add']['es-cl'] = "Agregar";
$text['button-add']['pt-pt'] = "Adicionar";
$text['button-add']['fr-fr'] = "Ajouter";
$text['button-add']['pt-br'] = "Adicionar";
$text['button-add']['pl'] = "Dodaj";
$text['button-add']['sv-se'] = "Lägg Till";
$text['button-add']['uk'] = "Додати";
$text['button-add']['de-at'] = "Hinzufügen";
?>
-1
View File
@@ -1,7 +1,6 @@
<?php
$apps[$x]['menu'][0]['title']['en-us'] = "Call Flows";
$apps[$x]['menu'][0]['title']['pt-br'] = "Fluxo de chamadas";
$apps[$x]['menu'][0]['title']['es-cl'] = "Flujo de Llamada";
$apps[$x]['menu'][0]['title']['fr-fr'] = "cinématiques d'Appel";
$apps[$x]['menu'][0]['title']['fr-ca'] = "Circulation d'Appel";
+43 -207
View File
@@ -17,27 +17,22 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2016
Portions created by the Initial Developer are Copyright (C) 2008-2012
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
Lewis Hallam <lewishallam80@gmail.com>
*/
//includes
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
//check permissions
if (permission_exists('call_flow_add') || permission_exists('call_flow_edit')) {
//access granted
}
else {
echo "access denied";
exit;
}
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('call_flow_add') || permission_exists('call_flow_edit')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
@@ -62,10 +57,8 @@
$call_flow_status = check_str($_POST["call_flow_status"]);
$call_flow_pin_number = check_str($_POST["call_flow_pin_number"]);
$call_flow_label = check_str($_POST["call_flow_label"]);
$call_flow_sound = check_str($_POST["call_flow_sound"]);
$call_flow_destination = check_str($_POST["call_flow_destination"]);
$call_flow_alternate_label = check_str($_POST["call_flow_alternate_label"]);
$call_flow_alternate_sound = check_str($_POST["call_flow_alternate_sound"]);
$call_flow_anti_label = check_str($_POST["call_flow_anti_label"]);
$call_flow_alternate_destination = check_str($_POST["call_flow_alternate_destination"]);
$call_flow_description = check_str($_POST["call_flow_description"]);
$dialplan_uuid = check_str($_POST["dialplan_uuid"]);
@@ -75,10 +68,10 @@
$call_flow_app = array_shift($destination_array);
$call_flow_data = join(':', $destination_array);
//seperate the action and the param call_flow_alternate_app
//seperate the action and the param call_flow_anti_app
$alternate_destination_array = explode(":", $call_flow_alternate_destination);
$call_flow_alternate_app = array_shift($alternate_destination_array);
$call_flow_alternate_data = join(':', $alternate_destination_array);
$call_flow_anti_app = array_shift($alternate_destination_array);
$call_flow_anti_data = join(':', $alternate_destination_array);
//set the context for users that are not in the superadmin group
if (!if_group("superadmin")) {
@@ -105,9 +98,9 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//if (strlen($call_flow_label) == 0) { $msg .= $text['message-required'].$text['label-destination_label']."<br>\n"; }
//if (strlen($call_flow_app) == 0) { $msg .= $text['message-required'].$text['label-destination']."<br>\n"; }
//if (strlen($call_flow_data) == 0) { $msg .= $text['message-required'].$text['label-destination']."<br>\n"; }
//if (strlen($call_flow_alternate_label) == 0) { $msg .= $text['message-required'].$text['label-alternate_label']."<br>\n"; }
//if (strlen($call_flow_alternate_app) == 0) { $msg .= $text['message-required'].$text['label-alternate_destination']."<br>\n"; }
//if (strlen($call_flow_alternate_data) == 0) { $msg .= $text['message-required'].$text['label-alternate_destination']."<br>\n"; }
//if (strlen($call_flow_anti_label) == 0) { $msg .= $text['message-required'].$text['label-alternate_label']."<br>\n"; }
//if (strlen($call_flow_anti_app) == 0) { $msg .= $text['message-required'].$text['label-alternate_destination']."<br>\n"; }
//if (strlen($call_flow_anti_data) == 0) { $msg .= $text['message-required'].$text['label-alternate_destination']."<br>\n"; }
//if (strlen($call_flow_description) == 0) { $msg .= $text['message-required'].$text['label-description']."<br>\n"; }
if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
require_once "resources/header.php";
@@ -141,13 +134,11 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$sql .= "call_flow_status, ";
$sql .= "call_flow_pin_number, ";
$sql .= "call_flow_label, ";
$sql .= "call_flow_sound, ";
$sql .= "call_flow_app, ";
$sql .= "call_flow_data, ";
$sql .= "call_flow_alternate_label, ";
$sql .= "call_flow_alternate_sound, ";
$sql .= "call_flow_alternate_app, ";
$sql .= "call_flow_alternate_data, ";
$sql .= "call_flow_anti_label, ";
$sql .= "call_flow_anti_app, ";
$sql .= "call_flow_anti_data, ";
$sql .= "call_flow_description ";
$sql .= ")";
$sql .= "values ";
@@ -162,13 +153,11 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$sql .= "'$call_flow_status', ";
$sql .= "'$call_flow_pin_number', ";
$sql .= "'$call_flow_label', ";
$sql .= "'$call_flow_sound', ";
$sql .= "'$call_flow_app', ";
$sql .= "'$call_flow_data', ";
$sql .= "'$call_flow_alternate_label', ";
$sql .= "'$call_flow_alternate_sound', ";
$sql .= "'$call_flow_alternate_app', ";
$sql .= "'$call_flow_alternate_data', ";
$sql .= "'$call_flow_anti_label', ";
$sql .= "'$call_flow_anti_app', ";
$sql .= "'$call_flow_anti_data', ";
$sql .= "'$call_flow_description' ";
$sql .= ")";
$db->exec(check_sql($sql));
@@ -190,13 +179,11 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$sql .= "call_flow_status = '$call_flow_status', ";
$sql .= "call_flow_pin_number = '$call_flow_pin_number', ";
$sql .= "call_flow_label = '$call_flow_label', ";
$sql .= "call_flow_sound = '$call_flow_sound', ";
$sql .= "call_flow_app = '$call_flow_app', ";
$sql .= "call_flow_data = '$call_flow_data', ";
$sql .= "call_flow_alternate_label = '$call_flow_alternate_label', ";
$sql .= "call_flow_alternate_sound = '$call_flow_alternate_sound', ";
$sql .= "call_flow_alternate_app = '$call_flow_alternate_app', ";
$sql .= "call_flow_alternate_data = '$call_flow_alternate_data', ";
$sql .= "call_flow_anti_label = '$call_flow_anti_label', ";
$sql .= "call_flow_anti_app = '$call_flow_anti_app', ";
$sql .= "call_flow_anti_data = '$call_flow_anti_data', ";
$sql .= "call_flow_description = '$call_flow_description' ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and call_flow_uuid = '$call_flow_uuid'";
@@ -234,7 +221,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_detail_tag = 'condition'; //condition, action, antiaction
$dialplan->dialplan_detail_type = 'destination_number';
$dialplan->dialplan_detail_data = '^'.str_replace('+', '\+', str_replace('*', '\*', $call_flow_feature_code)).'$';
$dialplan->dialplan_detail_data = '^'.str_replace('*', '\*', $call_flow_feature_code).'$';
$dialplan->dialplan_detail_break = 'on-true';
//$dialplan->dialplan_detail_inline = '';
$dialplan->dialplan_detail_group = '1';
@@ -291,7 +278,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_detail_tag = 'condition'; //condition, action, antiaction
$dialplan->dialplan_detail_type = 'destination_number';
$dialplan->dialplan_detail_data = '^'.str_replace('+', '\+', str_replace('*', '\*', $call_flow_extension)).'$';
$dialplan->dialplan_detail_data = '^'.str_replace('*', '\*', $call_flow_extension).'$';
//$dialplan->dialplan_detail_break = '';
//$dialplan->dialplan_detail_inline = '';
$dialplan->dialplan_detail_group = '2';
@@ -350,7 +337,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//clear the cache
$cache = new cache;
$cache->delete("dialplan:".$call_flow_context);
$cache->delete("memcache delete dialplan:".$call_flow_context);
//set the message
if ($action == "add") {
@@ -387,14 +374,12 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$call_flow_context = $row["call_flow_context"];
$call_flow_status = $row["call_flow_status"];
$call_flow_label = $row["call_flow_label"];
$call_flow_sound = $row["call_flow_sound"];
$call_flow_app = $row["call_flow_app"];
$call_flow_pin_number = $row["call_flow_pin_number"];
$call_flow_data = $row["call_flow_data"];
$call_flow_alternate_label = $row["call_flow_alternate_label"];
$call_flow_alternate_sound = $row["call_flow_alternate_sound"];
$call_flow_alternate_app = $row["call_flow_alternate_app"];
$call_flow_alternate_data = $row["call_flow_alternate_data"];
$call_flow_anti_label = $row["call_flow_anti_label"];
$call_flow_anti_app = $row["call_flow_anti_app"];
$call_flow_anti_data = $row["call_flow_anti_data"];
$call_flow_description = $row["call_flow_description"];
$dialplan_uuid = $row["dialplan_uuid"];
@@ -408,10 +393,10 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//if superadmin show both the app and data
if (if_group("superadmin")) {
$alternate_destination_label = $call_flow_alternate_app.':'.$call_flow_alternate_data;
$alternate_destination_label = $call_flow_anti_app.':'.$call_flow_anti_data;
}
else {
$alternate_destination_label = $call_flow_alternate_data;
$alternate_destination_label = $call_flow_anti_data;
}
}
unset ($prep_statement);
@@ -431,151 +416,6 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$document['title'] = $text['title-call_flow-add'];
}
//get the recordings
$sql = "select recording_name, recording_filename from v_recordings ";
$sql .= "where domain_uuid = '".$_SESSION["domain_uuid"]."' ";
$sql .= "order by recording_name asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$recordings = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
if (if_group("superadmin")) {
echo "<script>\n";
echo "var Objs;\n";
echo "\n";
echo "function changeToInput(obj){\n";
echo " tb=document.createElement('INPUT');\n";
echo " tb.type='text';\n";
echo " tb.name=obj.name;\n";
echo " tb.setAttribute('class', 'formfld');\n";
//echo " tb.setAttribute('style', 'width: 380px;');\n";
echo " tb.value=obj.options[obj.selectedIndex].value;\n";
echo " tbb=document.createElement('INPUT');\n";
echo " tbb.setAttribute('class', 'btn');\n";
echo " tbb.setAttribute('style', 'margin-left: 4px;');\n";
echo " tbb.type='button';\n";
echo " tbb.value=$('<div />').html('&#9665;').text();\n";
echo " tbb.objs=[obj,tb,tbb];\n";
echo " tbb.onclick=function(){ Replace(this.objs); }\n";
echo " obj.parentNode.insertBefore(tb,obj);\n";
echo " obj.parentNode.insertBefore(tbb,obj);\n";
echo " obj.parentNode.removeChild(obj);\n";
echo "}\n";
echo "\n";
echo "function Replace(obj){\n";
echo " obj[2].parentNode.insertBefore(obj[0],obj[2]);\n";
echo " obj[0].parentNode.removeChild(obj[1]);\n";
echo " obj[0].parentNode.removeChild(obj[2]);\n";
echo "}\n";
echo "</script>\n";
echo "\n";
}
function sound_select_list($var, $name, $description_name, $load_sound=false) {
global $text, $recordings, $db;
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap>\n";
echo " ".$text['label-' . $description_name]."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo "<select name='$name' class='formfld' ".((if_group("superadmin")) ? "onchange='changeToInput(this);'" : null).">\n";
echo " <option value=''></option>\n";
//misc optgroup
if (if_group("superadmin")) {
echo "<optgroup label=".$text['miscellaneous'].">\n";
echo " <option value='say:'>say:</option>\n";
echo " <option value='tone_stream:'>tone_stream:</option>\n";
echo "</optgroup>\n";
}
//recordings
$tmp_selected = false;
if (count($recordings) > 0) {
echo "<optgroup label=".$text['recordings'].">\n";
foreach ($recordings as &$row) {
$recording_name = $row["recording_name"];
$recording_filename = $row["recording_filename"];
if ($var == $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename && strlen($var) > 0) {
$tmp_selected = true;
echo " <option value='".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename."' selected='selected'>".$recording_name."</option>\n";
}
else if ($var == $recording_filename && strlen($var) > 0) {
$tmp_selected = true;
echo " <option value='".$recording_filename."' selected='selected'>".$recording_name."</option>\n";
}
else {
echo " <option value='".$recording_filename."'>".$recording_name."</option>\n";
}
}
echo "</optgroup>\n";
}
//phrases
$sql = "select * from v_phrases where domain_uuid = '".$domain_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
if (count($result) > 0) {
echo "<optgroup label='Phrases'>\n";
foreach ($result as &$row) {
if ($var == "phrase:".$row["phrase_uuid"]) {
$tmp_selected = true;
echo " <option value='phrase:".$row["phrase_uuid"]."' selected='selected'>".$row["phrase_name"]."</option>\n";
}
else {
echo " <option value='phrase:".$row["phrase_uuid"]."'>".$row["phrase_name"]."</option>\n";
}
}
unset ($prep_statement);
echo "</optgroup>\n";
}
//sounds
if ($load_sound) {
$file = new file;
$sound_files = $file->sounds();
if (is_array($sound_files)) {
echo "<optgroup label=".$text["sounds"].">\n";
foreach ($sound_files as $value) {
if (strlen($value) > 0) {
if (substr($var, 0, 71) == "\$\${sounds_dir}/\${default_language}/\${default_dialect}/\${default_voice}/") {
$var = substr($var, 71);
}
if ($var == $value) {
$tmp_selected = true;
echo " <option value='$value' selected='selected'>$value</option>\n";
}
else {
echo " <option value='$value'>$value</option>\n";
}
}
}
echo "</optgroup>\n";
}
}
//select
if (if_group("superadmin")) {
if (!$tmp_selected && strlen($var) > 0) {
echo "<optgroup label='Selected'>\n";
if (file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$var)) {
echo " <option value='".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$var."' selected='selected'>".$var."</option>\n";
}
else if (substr($var, -3) == "wav" || substr($var, -3) == "mp3") {
echo " <option value='".$var."' selected='selected'>".$var."</option>\n";
}
else {
echo " <option value='".$var."' selected='selected'>".$var."</option>\n";
}
echo "</optgroup>\n";
}
unset($tmp_selected);
}
echo " </select>\n";
echo " <br />\n";
echo $text['description-' . $description_name]."\n";
echo "</td>\n";
echo "</tr>\n";
}
//show the content
echo "<form method='post' name='frm' action=''>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
@@ -662,16 +502,16 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
}
}
if ($call_flow_status == "false") {
if (strlen($call_flow_alternate_label) > 0) {
echo " <option value='false' selected='selected'>$call_flow_alternate_label</option>\n";
if (strlen($call_flow_anti_label) > 0) {
echo " <option value='false' selected='selected'>$call_flow_anti_label</option>\n";
}
else {
echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
}
}
else {
if (strlen($call_flow_alternate_label) > 0) {
echo " <option value='false'>$call_flow_alternate_label</option>\n";
if (strlen($call_flow_anti_label) > 0) {
echo " <option value='false'>$call_flow_anti_label</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
@@ -705,8 +545,6 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
echo "</td>\n";
echo "</tr>\n";
sound_select_list($call_flow_sound, 'call_flow_sound', 'sound', true);
echo "<tr>\n";
echo "<td class='vncellreq' valign='top' align='left' nowrap>\n";
echo " ".$text['label-destination']."\n";
@@ -730,22 +568,20 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
echo " ".$text['label-alternate_label']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='call_flow_alternate_label' maxlength='255' value=\"$call_flow_alternate_label\">\n";
echo " <input class='formfld' type='text' name='call_flow_anti_label' maxlength='255' value=\"$call_flow_anti_label\">\n";
echo "<br />\n";
echo $text['description-alternate_label']."\n";
echo "</td>\n";
echo "</tr>\n";
sound_select_list($call_flow_alternate_sound, 'call_flow_alternate_sound', 'alternate_sound', true);
echo "<tr>\n";
echo "<td class='vncellreq' valign='top' align='left' nowrap>\n";
echo " ".$text['label-alternate_destination']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
$select_value = '';
if (strlen($call_flow_alternate_app.$call_flow_alternate_data) > 0) {
$select_value = $call_flow_alternate_app.':'.$call_flow_alternate_data;
if (strlen($call_flow_anti_app.$call_flow_anti_data) > 0) {
$select_value = $call_flow_anti_app.':'.$call_flow_anti_data;
}
echo $destination->select('dialplan', 'call_flow_alternate_destination', $select_value);
unset($select_value);
@@ -781,4 +617,4 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//include the footer
require_once "resources/footer.php";
?>
?>
+5 -5
View File
@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2016
Portions created by the Initial Developer are Copyright (C) 2008-2012
the Initial Developer. All Rights Reserved.
Contributor(s):
@@ -77,7 +77,7 @@ require_once "resources/paging.php";
}
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 10;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
@@ -124,7 +124,7 @@ require_once "resources/paging.php";
echo $row['call_flow_label'];
}
else {
echo $row['call_flow_alternate_label'];
echo $row['call_flow_anti_label'];
}
echo "&nbsp;\n";
echo " </td>\n";
@@ -132,7 +132,7 @@ require_once "resources/paging.php";
echo " <td valign='top' class='".$row_style[$c]."'>".$row['call_flow_extension']."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$row['call_flow_feature_code']."&nbsp;</td>\n";
//echo " <td valign='top' class='".$row_style[$c]."'>".$row['call_flow_app']." ".$row['call_flow_data']."&nbsp;</td>\n";
//echo " <td valign='top' class='".$row_style[$c]."'>".$row['call_flow_alternate_app']." ".$row['call_flow_alternate_data']."&nbsp;</td>\n";
//echo " <td valign='top' class='".$row_style[$c]."'>".$row['call_flow_anti_app']." ".$row['call_flow_anti_data']."&nbsp;</td>\n";
echo " <td valign='top' class='row_stylebg' width='30%'>".$row['call_flow_description']."&nbsp;</td>\n";
echo " <td class='list_control_icons'>";
if (permission_exists('call_flow_edit')) {
@@ -169,4 +169,4 @@ require_once "resources/paging.php";
//include the footer
require_once "resources/footer.php";
?>
?>
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+1 -1
View File
@@ -17,7 +17,7 @@
$apps[$x]['description']['fr-ca'] = "";
$apps[$x]['description']['fr-ch'] = "";
$apps[$x]['description']['pt-pt'] = "Desvio de Chamadas, Seguir-me e Não Perturbar.";
$apps[$x]['description']['pt-br'] = "Desvio de chamadas, Siga-me e Não perturbe (DND).";
$apps[$x]['description']['pt-br'] = "";
//permission details
$apps[$x]['permissions'][$y]['name'] = "follow_me";
+116 -96
View File
@@ -1,16 +1,14 @@
<?php
$text['title']['en-us'] = "Call Routing";
$text['title']['es-cl'] = "enrutamiento de llamadas";
$text['title']['pt-pt'] = "Roteamento de chamadas";
$text['title']['fr-fr'] = "routage des appels";
$text['title']['uk'] = "маршрутизація викликів";
$text['title']['pl'] = "Call Routing";
$text['title']['sv-se'] = "Call Routing";
$text['title']['de-at'] = "Call Routing";
$text['title']['ro'] = "rutare de apel";
$text['title']['ar-eg'] = "توجيه الدعوة";
$text['title']['he'] = "ניתוב שיחות";
$text['title']['en-us'] = "Calls";
$text['title']['es-cl'] = "Llamadas";
$text['title']['pt-pt'] = "Chamadas";
$text['title']['fr-fr'] = "Appels";
$text['title']['pt-br'] = "Configurações da Conta";
$text['title']['pl'] = "Rozmowy";
$text['title']['sv-se'] = "Samtal ";
$text['title']['uk'] = "Дзвінки";
$text['title']['de-at'] = "Anrufe";
$text['table-tools']['en-us'] = "Tools";
$text['table-tools']['es-cl'] = "Herramientas";
@@ -76,7 +74,7 @@ $text['label-ring-delay']['en-us'] = "Delay";
$text['label-ring-delay']['es-cl'] = "Retardo";
$text['label-ring-delay']['pt-pt'] = "Atraso";
$text['label-ring-delay']['fr-fr'] = "Délais";
$text['label-ring-delay']['pt-br'] = "Atraso";
$text['label-ring-delay']['pt-br'] = "Delay";
$text['label-ring-delay']['pl'] = "Opóznienie";
$text['label-ring-delay']['sv-se'] = "Fördröjning ";
$text['label-ring-delay']['uk'] = "Затримка";
@@ -103,6 +101,17 @@ $text['label-on-busy']['sv-se'] = "Vid Upptaget ";
$text['label-on-busy']['uk'] = "Якщо зайнято";
$text['label-on-busy']['de-at'] = "Bei Besetzt";
$text['label-ignore-busy']['en-us'] = "Ignore Busy";
$text['label-ignore-busy']['es-cl'] = "";
$text['label-ignore-busy']['pt-pt'] = "";
$text['label-ignore-busy']['fr-fr'] = "";
$text['label-ignore-busy']['it-it'] = "";
$text['label-ignore-busy']['pt-br'] = "";
$text['label-ignore-busy']['pl'] = "";
$text['label-ignore-busy']['sv-se'] = "";
$text['label-ignore-busy']['uk'] = "";
$text['label-ignore-busy']['de-at'] = "";
$text['label-number']['en-us'] = "Number";
$text['label-number']['es-cl'] = "Número";
$text['label-number']['pt-pt'] = "Número";
@@ -124,28 +133,6 @@ $text['label-no_answer']['sv-se'] = "Inget Svar ";
$text['label-no_answer']['uk'] = "Без відповіді";
$text['label-no_answer']['de-at'] = "Keine Antwort";
$text['label-not_registered']['en-us'] = "Not Registered";
$text['label-not_registered']['es-cl'] = "";
$text['label-not_registered']['pt-pt'] = "";
$text['label-not_registered']['fr-fr'] = "";
$text['label-not_registered']['it-it'] = "";
$text['label-not_registered']['pt-br'] = "Sem registro";
$text['label-not_registered']['pl'] = "";
$text['label-not_registered']['sv-se'] = "";
$text['label-not_registered']['uk'] = "";
$text['label-not_registered']['de-at'] = "";
$text['label-ignore-busy']['en-us'] = "Ignore Busy";
$text['label-ignore-busy']['es-cl'] = "";
$text['label-ignore-busy']['pt-pt'] = "";
$text['label-ignore-busy']['fr-fr'] = "";
$text['label-ignore-busy']['it-it'] = "";
$text['label-ignore-busy']['pt-br'] = "Ignorar ocupado";
$text['label-ignore-busy']['pl'] = "";
$text['label-ignore-busy']['sv-se'] = "";
$text['label-ignore-busy']['uk'] = "";
$text['label-ignore-busy']['de-at'] = "Ignorieren bei Besetzt";
$text['label-follow-me']['en-us'] = "Follow Me";
$text['label-follow-me']['es-cl'] = "Sígueme";
$text['label-follow-me']['pt-pt'] = "Segue-me";
@@ -154,18 +141,58 @@ $text['label-follow-me']['pt-br'] = "Siga-me";
$text['label-follow-me']['pl'] = "Podążaj za mną";
$text['label-follow-me']['sv-se'] = "Följ Mig ";
$text['label-follow-me']['uk'] = "";
$text['label-follow-me']['de-at'] = "Anrufweiterschaltung";
$text['label-follow-me']['de-at'] = "Follow Me";
$text['label-enabled']['en-us'] = "Enabled";
$text['label-enabled']['es-cl'] = "Activo";
$text['label-enabled']['pt-pt'] = "Activo";
$text['label-enabled']['fr-fr'] = "Activé";
$text['label-enabled']['pt-br'] = "Habilitado";
$text['label-enabled']['pl'] = "Włączony";
$text['label-enabled']['sv-se'] = "Aktiverad ";
$text['label-enabled']['uk'] = "Включено";
$text['label-enabled']['de-at'] = "An";
$text['label-enable']['en-us'] = "Enable";
$text['label-enable']['es-cl'] = "Activar";
$text['label-enable']['pt-pt'] = "Activar";
$text['label-enable']['fr-fr'] = "Activer";
$text['label-enable']['pt-br'] = "Ativar";
$text['label-enable']['pl'] = "Włącz";
$text['label-enable']['sv-se'] = "Aktivera ";
$text['label-enable']['uk'] = "";
$text['label-enable']['de-at'] = "Aktivieren";
$text['label-dnd']['en-us'] = "Do Not Disturb";
$text['label-dnd']['es-cl'] = "No Molestar";
$text['label-dnd']['pt-pt'] = "Não Perturbar";
$text['label-dnd']['fr-fr'] = "Ne pas déranger";
$text['label-dnd']['pt-br'] = "Não Pertube (DND)";
$text['label-dnd']['pt-br'] = "Não Pertube";
$text['label-dnd']['pl'] = "Nie przeszkadzaj (DND)";
$text['label-dnd']['sv-se'] = "Stör Ej ";
$text['label-dnd']['uk'] = "Не турбувати";
$text['label-dnd']['de-at'] = "Bitte nicht stören";
$text['label-disabled']['en-us'] = "Disabled";
$text['label-disabled']['es-cl'] = "Desactivado";
$text['label-disabled']['pt-pt'] = "Desactivo";
$text['label-disabled']['fr-fr'] = "Desactivé";
$text['label-disabled']['pt-br'] = "Inválido";
$text['label-disabled']['pl'] = "Wyłączony";
$text['label-disabled']['sv-se'] = "Inaktiverad ";
$text['label-disabled']['uk'] = "Відключено";
$text['label-disabled']['de-at'] = "Inaktiv";
$text['label-disable']['en-us'] = "Disable";
$text['label-disable']['es-cl'] = "Desactivar";
$text['label-disable']['pt-pt'] = "Desactivo";
$text['label-disable']['fr-fr'] = "Désactiver";
$text['label-disable']['pt-br'] = "Desativado";
$text['label-disable']['pl'] = "Wyłącz";
$text['label-disable']['sv-se'] = "Inaktivera ";
$text['label-disable']['uk'] = "Відключити";
$text['label-disable']['de-at'] = "Deaktivieren";
$text['label-destinations']['en-us'] = "Destinations";
$text['label-destinations']['es-cl'] = "Destinos";
$text['label-destinations']['fr-fr'] = "Destinations";
@@ -180,7 +207,7 @@ $text['label-destination_timeout']['en-us'] = "Timeout";
$text['label-destination_timeout']['es-cl'] = "Timeout";
$text['label-destination_timeout']['fr-fr'] = "Timeout";
$text['label-destination_timeout']['pt-pt'] = "Timeout";
$text['label-destination_timeout']['pt-br'] = "Tempo limite";
$text['label-destination_timeout']['pt-br'] = "Tempo de saída";
$text['label-destination_timeout']['pl'] = "Limit czasowy";
$text['label-destination_timeout']['sv-se'] = "Tidsgräns ";
$text['label-destination_timeout']['uk'] = "Таймаут";
@@ -220,7 +247,7 @@ $text['label-destination_number']['en-us'] = "Destination";
$text['label-destination_number']['es-cl'] = "Destino";
$text['label-destination_number']['fr-fr'] = "Destination";
$text['label-destination_number']['pt-pt'] = "Destino";
$text['label-destination_number']['pt-br'] = "Destino";
$text['label-destination_number']['pt-br'] = "Desvio";
$text['label-destination_number']['pl'] = "Destynacja";
$text['label-destination_number']['sv-se'] = "Destination Nummer ";
$text['label-destination_number']['uk'] = "Номер";
@@ -230,7 +257,7 @@ $text['label-destination_delay']['en-us'] = "Delay";
$text['label-destination_delay']['es-cl'] = "Retraso";
$text['label-destination_delay']['fr-fr'] = "Délais";
$text['label-destination_delay']['pt-pt'] = "Atraso";
$text['label-destination_delay']['pt-br'] = "Atraso";
$text['label-destination_delay']['pt-br'] = "Delay";
$text['label-destination_delay']['pl'] = "Opóźnienie";
$text['label-destination_delay']['sv-se'] = "Fördröjning ";
$text['label-destination_delay']['uk'] = "Затримка";
@@ -260,7 +287,7 @@ $text['label-cid-name-prefix']['en-us'] = "Caller ID Name";
$text['label-cid-name-prefix']['es-cl'] = "Nombre de Caller ID";
$text['label-cid-name-prefix']['pt-pt'] = "Nome do Chamador";
$text['label-cid-name-prefix']['fr-fr'] = "Préfixe de l'appelant";
$text['label-cid-name-prefix']['pt-br'] = "Nome (ID) de origem";
$text['label-cid-name-prefix']['pt-br'] = "Nome do discador";
$text['label-cid-name-prefix']['pl'] = "Prefiks prezentacji nazwy dzwoniącego";
$text['label-cid-name-prefix']['sv-se'] = "Namnpresentation ";
$text['label-cid-name-prefix']['uk'] = "Caller ID Ім’я";
@@ -270,7 +297,7 @@ $text['label-call-prompt']['en-us'] = "Call Prompt";
$text['label-call-prompt']['es-cl'] = "Aviso de Llamadas";
$text['label-call-prompt']['pt-pt'] = "Espoletar Chamada";
$text['label-call-prompt']['fr-fr'] = "Annonce d'appel";
$text['label-call-prompt']['pt-br'] = "Prompt de chamada";
$text['label-call-prompt']['pt-br'] = "Prompt chamada";
$text['label-call-prompt']['pl'] = "Potwierdź przed odebraniem rozmowy";
$text['label-call-prompt']['sv-se'] = "Samtals Verifiering ";
$text['label-call-prompt']['uk'] = "";
@@ -284,28 +311,14 @@ $text['label-call-forward']['pt-br'] = "Encaminhamento de chamadas";
$text['label-call-forward']['pl'] = "Przekierowanie";
$text['label-call-forward']['sv-se'] = "Vidarekoppling ";
$text['label-call-forward']['uk'] = "Переадресація";
$text['label-call-forward']['de-at'] = "Rufumleitung";
$text['header-call_routing']['en-us'] = "Call Routing";
$text['header-call_routing']['es-cl'] = "Enrutamiento de Llamadas";
$text['header-call_routing']['pt-pt'] = "Roteamento de Chamadas";
$text['header-call_routing']['fr-fr'] = "Routage des Appels";
$text['header-call_routing']['pt-br'] = "Roteamento de Chamadas";
$text['header-call_routing']['pl'] = "Trasy połączeń";
$text['header-call_routing']['he'] = "ניתוב שיחות";
$text['header-call_routing']['uk'] = "маршрутизація викликів";
$text['header-call_routing']['sv-se'] = "samtals Rutter";
$text['header-call_routing']['de-at'] = "Anrufrouten";
$text['header-call_routing']['ro'] = "Маршрутизация вызовов";
$text['header-call_routing']['fa'] = "";
$text['header-call_routing']['ar-eg'] = "توجيه الدعوة";
$text['label-call-forward']['de-at'] = "Ruf Weiterleitung";
$text['description-on-busy']['en-us'] = "If enabled, it overrides the value of voicemail enabling in extension.";
$text['description-on-busy']['es-cl'] = "Si está habilitada, anula el valor del correo de voz que permite en la extensión.";
$text['description-on-busy']['pt-pt'] = "Se ativado, ele substitui o valor de correio de voz que permite em extensão.";
$text['description-on-busy']['fr-fr'] = "Remplace la messagerie vocale si activé.";
$text['description-on-busy']['it-it'] = "Se abilitato, esegue l'override del valore di abilitazione voicemail nell'estensione.";
$text['description-on-busy']['pt-br'] = "Se ativado, substitui o valor do correio de voz permitindo algum ramal atender quando estiver ocupado.";
$text['description-on-busy']['pt-br'] = "Se ativado, substitui o valor do correio de voz permitindo uma extensão quando estiver ocupado";
$text['description-on-busy']['pl'] = "Jeżeli włączone, ustawienie włączenia poczty głosowej zostaje nadpisane.";
$text['description-on-busy']['sv-se'] = "Om aktiverad, så tar den överhand framför röstbrevlåda hos anknytningen. ";
$text['description-on-busy']['uk'] = "";
@@ -322,21 +335,10 @@ $text['description-no_answer']['sv-se'] = "Om aktiverad, så tar den överhand f
$text['description-no_answer']['uk'] = "";
$text['description-no_answer']['de-at'] = "Falls aktiv, wird der Wert 'Mailbox eingeschaltet' in der Nebenstelle überschrieben";
$text['description-not_registered']['en-us'] = "If endpoint is not reachable, forward to this destination before going to voicemail.";
$text['description-not_registered']['es-cl'] = "";
$text['description-not_registered']['pt-pt'] = "";
$text['description-not_registered']['fr-fr'] = "";
$text['description-not_registered']['it-it'] = "";
$text['description-not_registered']['pt-br'] = "Se o destino não for alcançável, desvia a chamata para este destino antes de enviar para o correio de voz. ";
$text['description-not_registered']['pl'] = "";
$text['description-not_registered']['sv-se'] = "";
$text['description-not_registered']['uk'] = "";
$text['description-not_registered']['de-at'] = "";
$text['description-cid-number-prefix']['en-us'] = "Set the caller ID number prefix.";
$text['description-cid-number-prefix']['es-cl'] = "Configure el prefijo de número de caller ID.";
$text['description-cid-number-prefix']['pt-pt'] = "Defina o número do Chamador";
$text['description-cid-number-prefix']['pt-br'] = "Defina o número do prefixo.";
$text['description-cid-number-prefix']['pt-br'] = "Defina o número do prefixo";
$text['description-cid-number-prefix']['pl'] = "Prefiks prezentacji numeru dzwoniącego.";
$text['description-cid-number-prefix']['sv-se'] = "Ange nummerpresentation prefix. ";
$text['description-cid-number-prefix']['uk'] = "";
@@ -347,7 +349,7 @@ $text['description-cid-name-prefix']['en-us'] = "Set the caller ID name prefix."
$text['description-cid-name-prefix']['es-cl'] = "Configure el prefijo de nombre de caller ID";
$text['description-cid-name-prefix']['pt-pt'] = "Defina o nome do Chamador";
$text['description-cid-name-prefix']['fr-fr'] = "Choisr le péfixe du nom d'appelant.";
$text['description-cid-name-prefix']['pt-br'] = "Defina o nome (ID) do discador.";
$text['description-cid-name-prefix']['pt-br'] = "Defina o nome do discador";
$text['description-cid-name-prefix']['pl'] = "Prefiks prezentacji nazwy dzwoniącego.";
$text['description-cid-name-prefix']['sv-se'] = "Ange namnpresentation prefix. ";
$text['description-cid-name-prefix']['uk'] = "";
@@ -357,27 +359,37 @@ $text['description-call-prompt']['en-us'] = "Prompt to accept the call for exter
$text['description-call-prompt']['es-cl'] = "Preguntar para aceptar un llamado para destinos externos";
$text['description-call-prompt']['pt-pt'] = "Aceitar chamada para destinos externos.";
$text['description-call-prompt']['fr-fr'] = "Annonce pour accepter l'appel venant de destinations externes.";
$text['description-call-prompt']['pt-br'] = "Perguntar para aceitar chamados de destinatários externos.";
$text['description-call-prompt']['pt-br'] = "Aceiter chamada para destinos externos";
$text['description-call-prompt']['pl'] = "Zapytaj czy akceptować rozmowę do zewnętrznych destynacji.";
$text['description-call-prompt']['sv-se'] = "Kräv verifiering för att ta emot samtal för externa destinationer. ";
$text['description-call-prompt']['uk'] = "";
$text['description-call-prompt']['de-at'] = "Nachfragen, ob der Anruf auch wirklich durchgestellt werden soll.";
$text['description-call_routing']['en-us'] = "Define alternate inbound call handling for the following extensions.";
$text['description-call_routing']['es-cl'] = "Definir alternativa para el manejo de las siguientes extensiones de llamadas entrantes.";
$text['description-call_routing']['pt-pt'] = "Definir alternativo chamada de entrada assistência para as seguintes extensões.";
$text['description-call_routing']['fr-fr'] = "Définir la manipulation pour les extensions suivantes alternent appel entrant.";
$text['description-call_routing']['pt-br'] = "Defina o tratamento de entradas alternativas para os seguintes ramais. ";
$text['description-call_routing']['pl'] = "Definiowanie alternatywnego połączenia przychodzącego obsługi dla następujących rozszerzeń.";
$text['description-call_routing']['sv-se'] = "Definiera alternativa inkommande samtalshantering för följande tillägg.";
$text['description-call_routing']['uk'] = "Визначити обробку для наступних розширень альтернативного вхідного дзвінка.";
$text['description-call_routing']['de-at'] = "Definieren Sie alternative eingehende Anruf für die folgenden Erweiterungen der Handhabung.";
$text['description-3']['en-us'] = "The following list the extensions that have been assigned to this user account.";
$text['description-3']['es-cl'] = "El siguiente listado muestra las extensiones que han sido asignadas a esta cuenta de usuario.";
$text['description-3']['pt-pt'] = "A tabela seguinte lista as extensões que foram atribuídas a esta conta de utilizador.";
$text['description-3']['fr-fr'] = "Ici la liste des extensions assignées à cet usager.";
$text['description-3']['pt-br'] = "Utilize os campos para filtrar a informação sobre os registos de chamadas desejados.";
$text['description-3']['pl'] = "Widoczne są numery wewnętrzne przypisane to danego konta użytkownika.";
$text['description-3']['sv-se'] = "Följande listar anknytningar som har knytets mot användarkontot. ";
$text['description-3']['uk'] = "";
$text['description-3']['de-at'] = "Nachfolgend werden alle Nebenstellen aufgelistet, die diesem Benutzerkonto zugeordnet sind.";
$text['description-2']['en-us'] = "Use the links to configure call forward follow me, or do not disturb.";
$text['description-2']['es-cl'] = "Utilice los links para configurar reenvio de llamada, sígueme o no Molestar.";
$text['description-2']['pt-pt'] = "Utilizar os links para definir as funcinalidades de encaminhamento de chamada, seguimento ou de não perturbar.";
$text['description-2']['fr-fr'] = "Utiliser les liens afin de configurer le renvoi 'follow me', ou ne pas déranger.";
$text['description-2']['pt-br'] = "A informação contem a origem, destino, duração e outros detalhes úteis da chamada.";
$text['description-2']['pl'] = "Za pomocą poniższych linków można skonfigurować przekierowania, usługę „Podążaj z mną” lub „Nie przeszkadzać” (DnD).";
$text['description-2']['sv-se'] = "Använd länkarna för att konfigurera Vidarekoppling, Följ Mig och Stör Ej. ";
$text['description-2']['uk'] = "";
$text['description-2']['de-at'] = "Benutzen Sie die Funktionen um Weiterleitung, Follow Me oder Bitte nicht stören zu konfigurieren.";
$text['description']['en-us'] = "Directs incoming calls for extension:";
$text['description']['es-cl'] = "Dirige las llamadas entrantes hacia una extensión:";
$text['description']['pt-pt'] = "Direciona as chamadas recebidas para a extensão:";
$text['description']['fr-fr'] = "Rediriger les appels entrant pour l'extension:";
$text['description']['pt-br'] = "Direciona as chamadas que estão entrando para um ramal.";
$text['description']['pt-br'] = "Editar informações da conta.";
$text['description']['pl'] = "Kieruj rozmowy przychodzące na numer wewnętrzny:";
$text['description']['sv-se'] = "Styr inkommande samtal för anknytning: ";
$text['description']['uk'] = "Керування вхідними дзвінками для розширення";
@@ -430,7 +442,7 @@ $text['ckeck-false']['uk'] = "";
$text['ckeck-false']['de-at'] = "";
$text['check-true']['en-us'] = "True";
$text['check-true']['pt-br'] = "Sim";
$text['check-true']['pt-br'] = "";
$text['check-true']['pl'] = "Tak";
$text['check-true']['sv-se'] = "Sann ";
$text['check-true']['uk'] = "Так";
@@ -439,7 +451,7 @@ $text['check-true']['de-at'] = "An";
$text['check-simultaneous']['en-us'] = "simultaneous";
$text['check-simultaneous']['fr-fr'] = "simultanément";
$text['check-simultaneous']['pt-br'] = "Simultâneo";
$text['check-simultaneous']['pt-br'] = "";
$text['check-simultaneous']['pl'] = "jednoczesne";
$text['check-simultaneous']['sv-se'] = "Samtidiga ";
$text['check-simultaneous']['uk'] = "одночасно";
@@ -447,30 +459,38 @@ $text['check-simultaneous']['de-at'] = "gleichzeitig";
$text['check-sequence']['en-us'] = "sequence";
$text['check-sequence']['fr-fr'] = "séquence";
$text['check-sequence']['pt-br'] = "Sequência";
$text['check-sequence']['pt-br'] = "";
$text['check-sequence']['pl'] = "kolejność";
$text['check-sequence']['sv-se'] = "sekvens ";
$text['check-sequence']['uk'] = "послідовно";
$text['check-sequence']['de-at'] = "sequenziell";
$text['check-false']['en-us'] = "False";
$text['check-false']['pt-br'] = "Não";
$text['check-false']['pt-br'] = "";
$text['check-false']['pl'] = "Nie";
$text['check-false']['sv-se'] = "Falsk ";
$text['check-false']['uk'] = "Ні";
$text['check-false']['fr-fr'] = "";
$text['check-false']['de-at'] = "Aus";
$text['button-view_all']['en-us'] = "View All";
$text['button-view_all']['es-cl'] = "Mostrar Todos";
$text['button-view_all']['pt-pt'] = "Mostrar Todos";
$text['button-view_all']['pt-br'] = "Mostrar Todos";
$text['button-view_all']['fr-fr'] = "Tout Montrer";
$text['button-view_all']['pl'] = "Pokaż wszystkie";
$text['button-view_all']['uk'] = "Показати всі";
$text['button-view_all']['sv-se'] = "Visa Allt";
$text['button-view_all']['ro'] = "";
$text['button-view_all']['de-at'] = "Alle anzeigen";
$text['button-view_all']['he'] = "הצג הכל";
$text['button-save']['en-us'] = "Save";
$text['button-save']['es-cl'] = "Guardar";
$text['button-save']['pt-pt'] = "Guardar";
$text['button-save']['fr-fr'] = "Sauvegarder";
$text['button-save']['pt-br'] = "Salvar";
$text['button-save']['pl'] = "Zachowaj";
$text['button-save']['sv-se'] = "Spara ";
$text['button-save']['uk'] = "Зберегти";
$text['button-save']['de-at'] = "Speichern";
$text['button-back']['en-us'] = "Back";
$text['button-back']['es-cl'] = "Volver";
$text['button-back']['pt-pt'] = "Voltar";
$text['button-back']['fr-fr'] = "Retour";
$text['button-back']['pt-br'] = "Voltar";
$text['button-back']['pl'] = "Wróć";
$text['button-back']['sv-se'] = "Tillbaka ";
$text['button-back']['uk'] = "Назад";
$text['button-back']['de-at'] = "Zurück";
?>
-18
View File
@@ -1,21 +1,3 @@
<?php
$apps[$x]['menu'][0]['title']['en-us'] = "Call Routing";
$apps[$x]['menu'][0]['title']['es-mx'] = "enrutamiento de llamadas";
$apps[$x]['menu'][0]['title']['de-de'] = "Call Routing";
$apps[$x]['menu'][0]['title']['de-ch'] = "Call Routing";
$apps[$x]['menu'][0]['title']['de-at'] = "Call Routing";
$apps[$x]['menu'][0]['title']['fr-fr'] = "routage des appels";
$apps[$x]['menu'][0]['title']['fr-ca'] = "routage des appels";
$apps[$x]['menu'][0]['title']['fr-ch'] = "routage des appels";
$apps[$x]['menu'][0]['title']['pt-pt'] = "Roteamento de chamadas";
$apps[$x]['menu'][0]['title']['pt-br'] = "roteamento de chamadas";
$apps[$x]['menu'][0]['uuid'] = "4e4df00b-aafb-45a8-82c1-cdabc921889c";
$apps[$x]['menu'][0]['parent_uuid'] = "fd29e39c-c936-f5fc-8e2b-611681b266b5";
$apps[$x]['menu'][0]['category'] = "internal";
$apps[$x]['menu'][0]['path'] = "/app/calls/calls.php";
$apps[$x]['menu'][0]['groups'][] = "user";
$apps[$x]['menu'][0]['groups'][] = "admin";
$apps[$x]['menu'][0]['groups'][] = "superadmin";
?>
+35 -89
View File
@@ -63,7 +63,7 @@ else {
$sql = "select * from v_extensions ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and extension_uuid = '$extension_uuid' ";
if (!(permission_exists('follow_me') || permission_exists('call_forward') || permission_exists('do_not_disturb'))) {
if (!(if_group("admin") || if_group("superadmin"))) {
if (count($_SESSION['user']['extension']) > 0) {
$sql .= "and (";
$x = 0;
@@ -79,6 +79,7 @@ else {
$sql .= "and extension = 'disabled' ";
}
}
$sql .= "and enabled = 'true' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
@@ -101,8 +102,6 @@ else {
$forward_busy_enabled = $row["forward_busy_enabled"];
$forward_no_answer_destination = $row["forward_no_answer_destination"];
$forward_no_answer_enabled = $row["forward_no_answer_enabled"];
$forward_user_not_registered_destination = $row["forward_user_not_registered_destination"];
$forward_user_not_registered_enabled = $row["forward_user_not_registered_enabled"];
$follow_me_uuid = $row["follow_me_uuid"];
$forward_caller_id_uuid = $row["forward_caller_id_uuid"];
break; //limit to 1 row
@@ -123,8 +122,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$forward_busy_destination = check_str($_POST["forward_busy_destination"]);
$forward_no_answer_enabled = check_str($_POST["forward_no_answer_enabled"]);
$forward_no_answer_destination = check_str($_POST["forward_no_answer_destination"]);
$forward_user_not_registered_destination = check_str($_POST["forward_user_not_registered_destination"]);
$forward_user_not_registered_enabled = check_str($_POST["forward_user_not_registered_enabled"]);
$forward_caller_id_uuid = check_str($_POST["forward_caller_id_uuid"]);
$cid_name_prefix = check_str($_POST["cid_name_prefix"]);
$cid_number_prefix = check_str($_POST["cid_number_prefix"]);
@@ -374,8 +371,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$sql .= "forward_busy_enabled = '".$forward_busy_enabled."', ";
$sql .= "forward_no_answer_destination = '".$forward_no_answer_destination."', ";
$sql .= "forward_no_answer_enabled = '".$forward_no_answer_enabled."', ";
$sql .= "forward_user_not_registered_destination = '".$forward_user_not_registered_destination."', ";
$sql .= "forward_user_not_registered_enabled = '".$forward_user_not_registered_enabled."', ";
$sql .= "forward_caller_id_uuid = ".(($forward_caller_id_uuid != '') ? "'".$forward_caller_id_uuid."' " : "null ");
$sql .= "where domain_uuid = '".$domain_uuid."' ";
$sql .= "and extension_uuid = '".$extension_uuid."'";
@@ -384,10 +379,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//clear the cache
$cache = new cache;
$cache->delete("directory:".$extension."@".$_SESSION['domain_name']);
if(strlen($number_alias) > 0){
$cache->delete("directory:".$number_alias."@".$_SESSION['domain_name']);
}
$cache->delete("memcache delete directory:".$extension."@".$_SESSION['domain_name']);
//redirect the user
$_SESSION["message"] = $text['confirm-update'];
@@ -530,19 +522,18 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " <strong>".$text['label-call-forward']."</strong>\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
$on_click = "document.getElementById('follow_me_disabled').checked=true; ";
$on_click .= "$('#tr_follow_me_settings').slideUp('fast'); ";
$on_click .= "document.getElementById('dnd_disabled').checked=true; ";
$on_click .= "document.getElementById('forward_all_destination').focus(); ";
$on_click = "document.getElementById('follow_me_disabled').checked=true;";
$on_click .= "document.getElementById('dnd_disabled').checked=true;";
$on_click .= "document.getElementById('forward_all_destination').focus();";
echo " <label for='forward_all_disabled'><input type='radio' name='forward_all_enabled' id='forward_all_disabled' onclick=\"\" value='false' ".(($forward_all_enabled == "false" || $forward_all_enabled == "") ? "checked='checked'" : null)." /> ".$text['label-disabled']."</label> \n";
echo " <label for='forward_all_enabled'><input type='radio' name='forward_all_enabled' id='forward_all_enabled' onclick=\"".$on_click."\" value='true' ".(($forward_all_enabled == "true") ? "checked='checked'" : null)." /> ".$text['label-enabled']."</label> \n";
echo " <label for='forward_all_enabled'><input type='radio' name='forward_all_enabled' id='forward_all_enabled' onclick=\"$on_click\" value='true' ".(($forward_all_enabled == "true") ? "checked='checked'" : null)." /> ".$text['label-enabled']."</label> \n";
unset($on_click);
echo "&nbsp;&nbsp;&nbsp;";
echo " <input class='formfld' type='text' name='forward_all_destination' id='forward_all_destination' maxlength='255' placeholder=\"".$text['label-destination']."\" value=\"".$forward_all_destination."\">\n";
if (permission_exists('follow_me_cid_set')) {
echo "&nbsp;&nbsp;&nbsp;";
$sql_forward = "select destination_uuid, destination_number, destination_description, destination_caller_id_number, destination_caller_id_name from v_destinations where domain_uuid = '$domain_uuid' and destination_type = 'inbound' order by destination_number asc ";
$sql_forward = "select destination_uuid, destination_number, destination_description from v_destinations where domain_uuid = '$domain_uuid' and destination_type = 'inbound' order by destination_number asc ";
$prep_statement_forward = $db->prepare(check_sql($sql_forward));
$prep_statement_forward->execute();
$result_forward = $prep_statement_forward->fetchAll(PDO::FETCH_ASSOC);
@@ -552,15 +543,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " <option value='' disabled='disabled'></option>\n";
foreach ($result_forward as &$row_forward) {
$selected = $row_forward["destination_uuid"] == $forward_caller_id_uuid ? "selected='selected' " : '';
$caller_id_number = $row_forward['destination_caller_id_number'];
if(strlen($caller_id_number) == 0){
$caller_id_number = $row_forward['destination_number'];
}
$caller_id_name = $row_forward['destination_caller_id_name'];
if(strlen($caller_id_name) == 0){
$caller_id_name = $row_forward['destination_description'];
}
echo "<option value='".$row_forward["destination_uuid"]."' ".$selected.">".format_phone($caller_id_number)." : ".$caller_id_name."</option>\n";
echo "<option value='".$row_forward["destination_uuid"]."' ".$selected.">".format_phone($row_forward["destination_number"])." : ".$row_forward["destination_description"]."</option>\n";
}
echo "</select>\n";
}
@@ -602,21 +585,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-not_registered']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
$on_click = "document.getElementById('forward_user_not_registered_destination').focus();";
echo " <label for='forward_user_not_registered_disabled'><input type='radio' name='forward_user_not_registered_enabled' id='forward_user_not_registered_disabled' onclick=\"\" value='false' ".(($forward_user_not_registered_enabled == "false" || $forward_user_not_registered_enabled == "") ? "checked='checked'" : null)." /> ".$text['label-disabled']."</label> \n";
echo " <label for='forward_user_not_registered_enabled'><input type='radio' name='forward_user_not_registered_enabled' id='forward_user_not_registered_enabled' onclick=\"$on_click\" value='true' ".(($forward_user_not_registered_enabled == "true") ? "checked='checked'" : null)."/> ".$text['label-enabled']."</label> \n";
unset($on_click);
echo "&nbsp;&nbsp;&nbsp;";
echo " <input class='formfld' type='text' name='forward_user_not_registered_destination' id='forward_user_not_registered_destination' maxlength='255' placeholder=\"".$text['label-destination']."\" value=\"".$forward_user_not_registered_destination."\">\n";
echo " <br />".$text['description-not_registered'].".\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr><td colspan='2'><br /></td></tr>\n";
echo "<tr>\n";
@@ -624,18 +592,15 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " <strong>".$text['label-follow-me']."</strong>\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
$on_click = "document.getElementById('forward_all_disabled').checked=true; ";
$on_click .= "document.getElementById('dnd_disabled').checked=true; ";
if (permission_exists('follow_me_cid_set')) {
$on_click .= "document.getElementById('follow_me_caller_id_uuid').focus(); ";
}
echo " <label for='follow_me_disabled'><input type='radio' name='follow_me_enabled' id='follow_me_disabled' onclick=\"$('#tr_follow_me_settings').slideUp('fast');\" value='false' ".(($follow_me_enabled == "false" || $follow_me_enabled == "") ? "checked='checked'" : null)." /> ".$text['label-disabled']."</label> \n";
echo " <label for='follow_me_enabled'><input type='radio' name='follow_me_enabled' id='follow_me_enabled' onclick=\"$('#tr_follow_me_settings').slideDown('fast'); ".$on_click."\" value='true' ".(($follow_me_enabled == "true") ? "checked='checked'" : null)."/> ".$text['label-enabled']."</label> \n";
$on_click = "document.getElementById('forward_all_disabled').checked=true;";
$on_click .= "document.getElementById('dnd_disabled').checked=true; document.getElementById('follow_me_caller_id_uuid').focus();";
echo " <label for='follow_me_disabled'><input type='radio' name='follow_me_enabled' id='follow_me_disabled' onclick=\"\" value='false' ".(($follow_me_enabled == "false" || $follow_me_enabled == "") ? "checked='checked'" : null)." /> ".$text['label-disabled']."</label> \n";
echo " <label for='follow_me_enabled'><input type='radio' name='follow_me_enabled' id='follow_me_enabled' onclick=\"$on_click\" value='true' ".(($follow_me_enabled == "true") ? "checked='checked'" : null)."/> ".$text['label-enabled']."</label> \n";
unset($on_click);
if (permission_exists('follow_me_cid_set')) {
echo "&nbsp;&nbsp;&nbsp;";
$sql_follow_me = "select destination_uuid, destination_number, destination_description, destination_caller_id_number, destination_caller_id_name from v_destinations where domain_uuid = '$domain_uuid' and destination_type = 'inbound' order by destination_number asc ";
$sql_follow_me = "select destination_uuid, destination_number, destination_description from v_destinations where domain_uuid = '$domain_uuid' and destination_type = 'inbound' order by destination_number asc ";
$prep_statement_follow_me = $db->prepare(check_sql($sql_follow_me));
$prep_statement_follow_me->execute();
$result_follow_me = $prep_statement_follow_me->fetchAll(PDO::FETCH_ASSOC);
@@ -645,17 +610,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " <option value='' disabled='disabled'></option>\n";
foreach ($result_follow_me as &$row_follow_me) {
$selected = $row_follow_me["destination_uuid"] == $follow_me_caller_id_uuid ? "selected='selected'" : '';
$caller_id_number = $row_follow_me['destination_caller_id_number'];
if(strlen($caller_id_number) == 0){
$caller_id_number = $row_follow_me['destination_number'];
}
$caller_id_name = $row_follow_me['destination_caller_id_name'];
if(strlen($caller_id_name) == 0){
$caller_id_name = $row_follow_me['destination_description'];
}
echo "<option value='".$row_follow_me["destination_uuid"]."' ".$selected.">".format_phone($caller_id_number)." : ".$caller_id_name."</option>\n";
echo "<option value='".$row_follow_me["destination_uuid"]."' ".$selected.">".format_phone($row_follow_me["destination_number"])." : ".$row_follow_me["destination_description"]."</option>\n";
}
echo "</select>\n";
}
@@ -665,17 +620,12 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " <br /><br />\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
if ($follow_me_enabled == "true") { $style = ''; } else { $style = 'display: none;'; }
echo "<div id='tr_follow_me_settings' style='$style'>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-destinations']."\n";
echo "</td>\n";
echo "<td width='70%' class='vtable' align='left'>\n";
echo "<td class='vtable' align='left'>\n";
echo " <table border='0' cellpadding='2' cellspacing='0'>\n";
echo " <tr>\n";
@@ -791,20 +741,18 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "</td>\n";
echo "</tr>\n";
if (permission_exists('follow_me_ignore_busy')) {
echo " <tr>\n";
echo " <td class='vncell' valign='top' align='left' nowrap='nowrap'>";
echo $text['label-ignore-busy'];
echo " </td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <label for='follow_me_ignore_busy_false'><input type='radio' name='follow_me_ignore_busy' id='follow_me_ignore_busy_false' value='false' onclick=\"\" ".(($follow_me_ignore_busy == "false" || $follow_me_ignore_busy == "") ? "checked='checked'" : null)." /> ".$text['label-disabled']."</label> \n";
echo " <label for='follow_me_ignore_busy_true'><input type='radio' name='follow_me_ignore_busy' id='follow_me_ignore_busy_true' value='true' onclick=\"$on_click\" ".(($follow_me_ignore_busy == "true") ? "checked='checked'" : null)." /> ".$text['label-enabled']."</label> \n";
echo " <br />\n";
echo $text['description-ignore-busy']." \n";
//echo " <br> Interrupt call if one of destination are busy\n";
echo " </td>\n";
echo " </tr>\n";
}
echo " <tr>\n";
echo " <td class='vncell' valign='top' align='left' nowrap='nowrap'>";
echo $text['label-ignore-busy'];
echo " </td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <select class='formfld' name='follow_me_ignore_busy'>\n";
echo " <option value='true' " . ($follow_me_ignore_busy == 'true' ? "selected='selected'" : '') . ">True</option>\n";
echo " <option value='false'" . ($follow_me_ignore_busy == 'true' ? '' : "selected='selected'") . ">False</option>\n";
echo " </select>\n";
echo " <br> Interrupt call if one of destination are busy\n";
echo " </td>\n";
echo " </tr>\n";
if (permission_exists('follow_me_cid_name_prefix')) {
echo "<tr>\n";
@@ -832,19 +780,17 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "</tr>\n";
}
echo "</table>\n";
echo "</div>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr><td colspan='2'><br /></td></tr>\n";
echo "<tr>\n";
echo "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " <strong>".$text['label-dnd']."</strong>\n";
echo "</td>\n";
echo "<td width='70%' class='vtable' align='left'>\n";
echo "<td class='vtable' align='left'>\n";
$on_click = "document.getElementById('forward_all_disabled').checked=true;";
$on_click .= "document.getElementById('forward_busy_disabled').checked=true;";
$on_click .= "document.getElementById('forward_no_answer_disabled').checked=true;";
$on_click .= "document.getElementById('follow_me_disabled').checked=true;";
$on_click .= "$('#tr_follow_me_settings').slideUp('fast'); ";
echo " <label for='dnd_disabled'><input type='radio' name='dnd_enabled' id='dnd_disabled' value='false' onclick=\"\" ".(($dnd_enabled == "false" || $dnd_enabled == "") ? "checked='checked'" : null)." /> ".$text['label-disabled']."</label> \n";
echo " <label for='dnd_enabled'><input type='radio' name='dnd_enabled' id='dnd_enabled' value='true' onclick=\"$on_click\" ".(($dnd_enabled == "true") ? "checked='checked'" : null)." /> ".$text['label-enabled']."</label> \n";
echo " <br />\n";
@@ -866,4 +812,4 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//include the footer
require_once "resources/footer.php";
?>
?>
+94 -135
View File
@@ -17,40 +17,27 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2016
Portions created by the Initial Developer are Copyright (C) 2008-2012
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
//includes
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
//check permissions
if (permission_exists('follow_me') || permission_exists('call_forward') || permission_exists('do_not_disturb')) {
//access granted
}
else {
echo "access denied";
exit;
}
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('follow_me') || permission_exists('call_forward') || permission_exists('do_not_disturb')) {
//access granted
}
else {
echo "access denied";
exit;
}
//get the https values and set as variables
$order_by = check_str($_GET["order_by"]);
$order = check_str($_GET["order"]);
//handle search term
$search = check_str($_GET["search"]);
if (strlen($search) > 0) {
$sql_mod = "and ( ";
$sql_mod .= "extension like '%".$search."%' ";
$sql_mod .= "or description like '%".$search."%' ";
$sql_mod .= ") ";
}
//add multi-lingual support
$language = new text;
$text = $language->get($_SESSION['domain']['language']['code'], 'app/calls');
@@ -59,9 +46,20 @@
require_once "resources/header.php";
require_once "resources/paging.php";
//define select count query
$sql = "select count(extension_uuid) as count from v_extensions ";
$sql .= "where domain_uuid = '".$domain_uuid."' ";
if ($is_included != "true") {
echo " <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo " <tr>\n";
echo " <td align='left'><b>".$text['title']."</b><br>\n";
echo " ".$text['description-2']."\n";
echo " ".$text['description-3']." \n";
echo " </td>\n";
echo " </tr>\n";
echo " </table>\n";
echo " <br />";
}
$sql = "select * from v_extensions ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and enabled = 'true' ";
if (!(if_group("admin") || if_group("superadmin"))) {
if (count($_SESSION['user']['extension']) > 0) {
@@ -79,142 +77,103 @@
$sql .= "and extension = 'disabled' ";
}
}
$sql .= $sql_mod; //add search mod from above
//execute select count query
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_NAMED);
$result_count = $row['count'];
unset ($prep_statement, $row);
if ($is_included) {
$rows_per_page = 10;
if (strlen($order_by)> 0) {
$sql .= "order by $order_by $order ";
}
else {
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$sql .= "order by extension asc ";
}
$param = "&search=".$search;
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
list($paging_controls_mini, $rows_per_page, $var_3) = paging($result_count, $param, $rows_per_page, true);
list($paging_controls, $rows_per_page, $var_3) = paging($result_count, $param, $rows_per_page);
$offset = $rows_per_page * $page;
//rework select data query
$sql = str_replace('count(extension_uuid) as count', '*', $sql);
$sql .= ' order by extension asc';
$sql .= " limit ".$rows_per_page." offset ".$offset." ";
//execute select data query
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$num_rows = count($result);
unset ($prep_statement, $result, $sql);
$rows_per_page = 150;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
list($paging_controls, $rows_per_page, $var_3) = paging($num_rows, $param, $rows_per_page);
$offset = $rows_per_page * $page;
$sql = "select * from v_extensions ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and enabled = 'true' ";
if (!(if_group("admin") || if_group("superadmin"))) {
if (count($_SESSION['user']['extension']) > 0) {
$sql .= "and (";
$x = 0;
foreach($_SESSION['user']['extension'] as $row) {
if ($x > 0) { $sql .= "or "; }
$sql .= "extension = '".$row['user']."' ";
$x++;
}
$sql .= ")";
}
else {
//hide any results when a user has not been assigned an extension
$sql .= "and extension = 'disabled' ";
}
}
if (strlen($order_by)> 0) {
$sql .= "order by $order_by $order ";
}
else {
$sql .= "order by extension asc ";
}
$sql .= " limit $rows_per_page offset $offset ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$result_count = count($result);
unset ($prep_statement, $sql);
$c = 0;
$row_style["0"] = "row_style0";
$row_style["1"] = "row_style1";
//start the content
echo "<table cellpadding='0' cellspacing='0' border='0' width='100%'>\n";
echo " <tr>\n";
echo " <td valign='top'>";
echo " <b>".$text['header-call_routing']."</b><br />";
echo " </td>\n";
echo " <td valign='top' style='text-align: right; white-space: nowrap;'>\n";
if ($result_count > 10 && $is_included) {
echo " <input id='btn_viewall_callrouting' type='button' class='btn' value='".$text['button-view_all']."' onclick=\"document.location.href='".PROJECT_PATH."/app/calls/calls.php';\">";
}
if (!$is_included) {
echo " <form method='get' action='' style='display: inline-block;'>\n";
echo " <input type='text' class='txt' style='width: 150px' name='search' value='".$search."'>";
echo " <input type='submit' class='btn' name='submit' value='".$text['button-search']."'>";
echo " </form>\n";
if ($paging_controls_mini != '') {
echo "<span style='margin-left: 15px;'>".$paging_controls_mini."</span>\n";
}
} echo " </td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td colspan='2' valign='top'>";
if (!$is_included) {
echo $text['description-call_routing']."<br />";
}
echo " </td>\n";
echo " </tr>\n";
echo "</table>\n";
echo "<br />";
echo "<table class='tr_hover' width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo "<th>".$text['table-extension']."</th>\n";
if (permission_exists('call_forward')) { echo "<th>".$text['label-call-forward']."</th>\n"; }
if (permission_exists('follow_me')) { echo "<th>".$text['label-follow-me']."</th>\n"; }
if (permission_exists('do_not_disturb')) { echo "<th>".$text['label-dnd']."</th>\n"; }
if (!$is_included) {
echo "<th class='hidden-xs'>".$text['table-description']."</th>\n";
}
echo "<td class='list_control_icon'>&nbsp;</td>\n";
echo "<th>".$text['table-tools']."</th>\n";
echo "<th>".$text['table-description']."</th>\n";
echo "</tr>\n";
if ($result_count > 0) {
foreach($result as $row) {
$tr_url = PROJECT_PATH."/app/calls/call_edit.php?id=".$row['extension_uuid']."&return_url=".urlencode($_SERVER['REQUEST_URI']);
$tr_url = PROJECT_PATH."/app/calls/call_edit.php?id=".$row['extension_uuid'];
$tr_link = (permission_exists('call_forward') || permission_exists('follow_me') || permission_exists('do_not_disturb')) ? "href='".$tr_url."'" : null;
echo "<tr ".$tr_link.">\n";
echo " <td valign='top' class='".$row_style[$c]."'><a ".$tr_link.">".$row['extension']."</a></td>\n";
if (permission_exists('call_forward')) {
echo "<td valign='top' class='".$row_style[$c]."'>".(($row['forward_all_enabled'] == 'true') ? format_phone($row['forward_all_destination']) : '&nbsp;')."</td>";
}
if (permission_exists('follow_me')) {
if ($row['follow_me_uuid'] != '') {
//check if follow me is enabled
$sql = "select follow_me_enabled from v_follow_me where follow_me_uuid = '".$row['follow_me_uuid']."' and domain_uuid = '".$domain_uuid."'";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$row_x = $prep_statement->fetch(PDO::FETCH_NAMED);
$follow_me_enabled = ($row_x['follow_me_enabled'] == 'true') ? true : false;
unset($sql, $prep_statement, $row_x);
//get destination count if enabled
if ($follow_me_enabled) {
$sql = "select count(follow_me_destination_uuid) as destination_count from v_follow_me_destinations where follow_me_uuid = '".$row['follow_me_uuid']."' and domain_uuid = '".$domain_uuid."'";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$row_x = $prep_statement->fetch(PDO::FETCH_NAMED);
$follow_me_destination_count = $row_x['destination_count'];
unset($sql, $prep_statement, $row_x);
}
}
else {
$follow_me_enabled = false;
}
echo "<td valign='top' class='".$row_style[$c]."'>".(($follow_me_enabled) ? $text['label-enabled']." (".$follow_me_destination_count.")" : '&nbsp;')."</td>";
}
if (permission_exists('do_not_disturb')) {
echo "<td valign='top' class='".$row_style[$c]."'>".(($row['do_not_disturb'] == 'true') ? $text['label-enabled'] : '&nbsp;')."</td>";
}
if (!$is_included) {
echo "<td valign='top' class='row_stylebg hidden-xs'>".$row['description']."&nbsp;</td>\n";
}
echo " <td class='list_control_icon'><a href='".$tr_url."' alt='".$text['button-edit']."'>".$v_link_label_edit."</a></td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$row['extension']."</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>\n";
if (permission_exists('call_forward')) { echo "<a href='".$tr_url."'>".$text['label-call-forward']."</a>&nbsp;&nbsp;&nbsp;"; }
if (permission_exists('follow_me')) { echo "<a href='".$tr_url."'>".$text['label-follow-me']."</a>&nbsp;&nbsp;&nbsp;"; }
if (permission_exists('do_not_disturb')) { echo "<a href='".$tr_url."'>".$text['label-dnd']."</a>"; }
echo " </td>\n";
echo " <td valign='top' class='row_stylebg' width='40%'>".$row['description']."&nbsp;</td>\n";
echo "</tr>\n";
$c = ($c) ? 0 : 1;
if ($c==0) { $c=1; } else { $c=0; }
} //end foreach
unset($sql, $result, $row_count);
} //end if results
echo "</table>";
echo "<br />";
if (strlen($paging_controls) > 0 && (!$is_included)) {
echo "<center>".$paging_controls."</center>\n";
echo "<br /><br />\n";
if (strlen($paging_controls) > 0) {
echo "<tr>\n";
echo "<td colspan='5' align='left'>\n";
echo " <table border='0' width='100%' cellpadding='0' cellspacing='0'>\n";
echo " <tr>\n";
echo " <td width='33.3%' nowrap>&nbsp;</td>\n";
echo " <td width='33.3%' align='center' nowrap>$paging_controls</td>\n";
echo " </tr>\n";
echo " </table>\n";
echo "</td>\n";
echo "</tr>\n";
}
echo "</table>";
echo "<br><br>";
if (!$is_included) {
echo "<br />";
if ($is_included != "true") {
require_once "resources/footer.php";
}
?>
?>
+23 -36
View File
@@ -17,14 +17,14 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Copyright (C) 2010 - 2016
Copyright (C) 2010 - 2014
All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
Luis Daniel Lucio Quiroz <dlucio@okay.com.mx>
Errol Samuels <voiptology@gmail.com>
*/
include "root.php";
@@ -35,7 +35,6 @@ include "root.php";
public $domain_name;
public $extension_uuid;
private $extension;
private $number_alias;
public $forward_all_destination;
public $forward_all_enabled;
private $dial_string;
@@ -56,13 +55,14 @@ include "root.php";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
if (is_array($result)) foreach ($result as &$row) {
$this->extension = $row["extension"];
$this->number_alias = $row["number_alias"];
$this->accountcode = $row["accountcode"];
$this->toll_allow = $row["toll_allow"];
$this->outbound_caller_id_name = $row["outbound_caller_id_name"];
$this->outbound_caller_id_number = $row["outbound_caller_id_number"];
if (count($result) > 0) {
foreach ($result as &$row) {
$this->extension = $row["extension"];
$this->accountcode = $row["accountcode"];
$this->toll_allow = $row["toll_allow"];
$this->outbound_caller_id_name = $row["outbound_caller_id_name"];
$this->outbound_caller_id_number = $row["outbound_caller_id_number"];
}
}
unset ($prep_statement);
@@ -76,34 +76,23 @@ include "root.php";
$dial_string .= ",domain=".$_SESSION['domain_name'];
$dial_string .= ",extension_uuid=".$this->extension_uuid;
$dial_string .= ",toll_allow='".$this->toll_allow."'";
$dial_string .=",sip_h_Diversion=<sip:".$this->extension."@".$_SESSION['domain_name'].">;reason=unconditional";
if (strlen($this->accountcode) > 0) {
$dial_string .= ",sip_h_X-accountcode=".$this->accountcode;
$dial_string .= ",accountcode=".$this->accountcode;
}
if (strlen($this->forward_caller_id_uuid) > 0){
$sql_caller = "select destination_number, destination_description, destination_caller_id_number, destination_caller_id_name from v_destinations where domain_uuid = '$this->domain_uuid' and destination_type = 'inbound' and destination_uuid = '$this->forward_caller_id_uuid'";
$sql_caller = "select destination_number, destination_description from v_destinations where domain_uuid = '$this->domain_uuid' and destination_type = 'inbound' and destination_uuid = '$this->forward_caller_id_uuid'";
$prep_statement_caller = $db->prepare($sql_caller);
if ($prep_statement_caller) {
$prep_statement_caller->execute();
$row_caller = $prep_statement_caller->fetch(PDO::FETCH_ASSOC);
$caller_id_number = $row_caller['destination_caller_id_number'];
if(strlen($caller_id_number) == 0){
$caller_id_number = $row_caller['destination_number'];
}
$caller_id_name = $row_caller['destination_caller_id_name'];
if(strlen($caller_id_name) == 0){
$caller_id_name = $row_caller['destination_description'];
}
if (strlen($caller_id_name) > 0) {
$dial_string_caller_id_name = $caller_id_name;
if (strlen($row_caller['destination_description']) > 0) {
$dial_string_caller_id_name = $row_caller['destination_description'];
$dial_string .= ",origination_caller_id_name=$dial_string_caller_id_name";
}
if (strlen($caller_id_number) > 0) {
$dial_string_caller_id_number = $caller_id_number;
if (strlen($row_caller['destination_number']) > 0) {
$dial_string_caller_id_number = $row_caller['destination_number'];
$dial_string .= ",origination_caller_id_number=$dial_string_caller_id_number";
$dial_string .= ",outbound_caller_id_number=$dial_string_caller_id_number";
}
@@ -145,17 +134,15 @@ include "root.php";
//update the extension
$sql = "update v_extensions set ";
if (strlen($this->forward_all_destination) == 0) {
$sql .= "forward_all_destination = null, ";
}
else {
$sql .= "forward_all_destination = '$this->forward_all_destination', ";
}
if (strlen($this->forward_all_destination) == 0 || $this->forward_all_enabled == "false") {
if (strlen($this->forward_all_destination) == 0) {
$sql .= "forward_all_destination = null, ";
}
$sql .= "dial_string = null, ";
$sql .= "forward_all_enabled = 'false' ";
}
else {
$sql .= "forward_all_destination = '$this->forward_all_destination', ";
$sql .= "dial_string = '".check_str($this->dial_string)."', ";
$sql .= "forward_all_enabled = 'true' ";
}
@@ -168,10 +155,10 @@ include "root.php";
unset($sql);
//delete extension from memcache
$cache = new cache;
$cache->delete("directory:".$this->extension."@".$this->domain_name);
if(strlen($this->number_alias) > 0){
$cache->delete("directory:".$this->number_alias."@".$this->domain_name);
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if ($fp) {
$switch_cmd = "memcache delete directory:".$this->extension."@".$this->domain_name;
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
}
} //function
+13 -11
View File
@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Copyright (C) 2010 - 2016
Copyright (C) 2010
All Rights Reserved.
Contributor(s):
@@ -77,16 +77,18 @@ include "root.php";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
if (is_array($result)) foreach ($result as &$row) {
if (strlen($this->extension_uuid) == 0) {
$this->extension_uuid = $row["extension_uuid"];
}
if (strlen($this->extension) == 0) {
if(strlen($row["number_alias"]) == 0) {
$this->extension = $row["extension"];
if (count($result) > 0) {
foreach ($result as &$row) {
if (strlen($this->extension_uuid) == 0) {
$this->extension_uuid = $row["extension_uuid"];
}
else {
$this->extension = $row["number_alias"];
if (strlen($this->extension) == 0) {
if(strlen($row["number_alias"]) == 0) {
$this->extension = $row["extension"];
}
else {
$this->extension = $row["number_alias"];
}
}
}
}
@@ -94,7 +96,7 @@ include "root.php";
//set the dial string
if ($this->enabled == "true") {
$this->dial_string = "error/user_busy";
$this->dial_string = "loopback/*99".$this->extension;
}
else {
$this->dial_string = '';
+438 -444
View File
@@ -1,444 +1,438 @@
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Copyright (C) 2010 - 2016
All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
Luis Daniel Lucio Quiroz <dlucio@okay.com.mx>
Salvatore Caruso <salvatore.caruso@nems.it>
Riccardo Granchi <riccardo.granchi@nems.it>
Errol Samuels <voiptology@gmail.com>
*/
include "root.php";
//define the follow me class
class follow_me {
public $domain_uuid;
public $db_type;
public $follow_me_uuid;
public $cid_name_prefix;
public $cid_number_prefix;
public $accountcode;
public $follow_me_enabled;
public $follow_me_caller_id_uuid;
public $follow_me_ignore_busy;
public $outbound_caller_id_name;
public $outbound_caller_id_number;
private $extension;
private $toll_allow;
public $destination_data_1;
public $destination_type_1;
public $destination_delay_1;
public $destination_prompt_1;
public $destination_timeout_1;
public $destination_data_2;
public $destination_type_2;
public $destination_delay_2;
public $destination_prompt_2;
public $destination_timeout_2;
public $destination_data_3;
public $destination_type_3;
public $destination_delay_3;
public $destination_prompt_3;
public $destination_timeout_3;
public $destination_data_4;
public $destination_type_4;
public $destination_delay_4;
public $destination_prompt_4;
public $destination_timeout_4;
public $destination_data_5;
public $destination_type_5;
public $destination_delay_5;
public $destination_prompt_5;
public $destination_timeout_5;
public $destination_timeout = 0;
public $destination_order = 1;
public function add() {
//set the global variable
global $db;
//add a new follow me
$sql = "insert into v_follow_me ";
$sql .= "(";
$sql .= "domain_uuid, ";
$sql .= "follow_me_uuid, ";
$sql .= "cid_name_prefix, ";
if (strlen($this->cid_number_prefix) > 0) {
$sql .= "cid_number_prefix, ";
}
$sql .= "follow_me_caller_id_uuid, ";
$sql .= "follow_me_enabled, ";
$sql .= "follow_me_ignore_busy ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'$this->domain_uuid', ";
$sql .= "'$this->follow_me_uuid', ";
$sql .= "'$this->cid_name_prefix', ";
if (strlen($this->cid_number_prefix) > 0) {
$sql .= "'$this->cid_number_prefix', ";
}
if (strlen($this->follow_me_caller_id_uuid) > 0) {
$sql .= "'$this->follow_me_caller_id_uuid', ";
}
else {
$sql .= 'null, ';
}
$sql .= "'$this->follow_me_enabled', ";
$sql .= "'$this->follow_me_ignore_busy' ";
$sql .= ")";
if ($v_debug) {
echo $sql."<br />";
}
$db->exec(check_sql($sql));
unset($sql);
$this->follow_me_destinations();
} //end function
public function update() {
//set the global variable
global $db;
//update follow me table
$sql = "update v_follow_me set ";
$sql .= "follow_me_enabled = '$this->follow_me_enabled', ";
$sql .= "follow_me_ignore_busy = '$this->follow_me_ignore_busy', ";
$sql .= "cid_name_prefix = '$this->cid_name_prefix', ";
if (strlen($this->follow_me_caller_id_uuid) > 0) {
$sql .= "follow_me_caller_id_uuid = '$this->follow_me_caller_id_uuid', ";
}
else {
$sql .= "follow_me_caller_id_uuid = null, ";
}
$sql .= "cid_number_prefix = '$this->cid_number_prefix' ";
$sql .= "where domain_uuid = '$this->domain_uuid' ";
$sql .= "and follow_me_uuid = '$this->follow_me_uuid' ";
$db->exec(check_sql($sql));
unset($sql);
$this->follow_me_destinations();
} //end function
public function follow_me_destinations() {
//set the global variable
global $db;
//prepare insert statement
$stmt = $db->prepare(
"insert into v_follow_me_destinations("
. "follow_me_destination_uuid,"
. "domain_uuid,"
. "follow_me_uuid,"
. "follow_me_destination,"
. "follow_me_timeout,"
. "follow_me_delay,"
. "follow_me_prompt,"
. "follow_me_order"
. ")values(?,?,?,?,?,?,?,?)"
);
//delete related follow me destinations
$sql = "delete from v_follow_me_destinations where follow_me_uuid = '$this->follow_me_uuid' ";
$db->exec(check_sql($sql));
//insert the follow me destinations
if (strlen($this->destination_data_1) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_1,
$this->destination_timeout_1,
$this->destination_delay_1,
$this->destination_prompt_1,
'1'
));
$this->destination_order++;
}
if (strlen($this->destination_data_2) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_2,
$this->destination_timeout_2,
$this->destination_delay_2,
$this->destination_prompt_2,
'2'
));
$this->destination_order++;
}
if (strlen($this->destination_data_3) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_3,
$this->destination_timeout_3,
$this->destination_delay_3,
$this->destination_prompt_3,
'3'
));
$this->destination_order++;
}
if (strlen($this->destination_data_4) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_4,
$this->destination_timeout_4,
$this->destination_delay_4,
$this->destination_prompt_4,
'4'
));
$this->destination_order++;
}
if (strlen($this->destination_data_5) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_5,
$this->destination_timeout_5,
$this->destination_delay_5,
$this->destination_prompt_5,
'5'
));
$this->destination_order++;
}
unset($stmt);
} //function
public function set() {
//set the global variable
global $db;
//determine whether to update the dial string
$sql = "select * from v_extensions ";
$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and extension_uuid = '".$this->extension_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
if (is_array($result)) foreach ($result as &$row) {
$this->extension = $row["extension"];
$this->accountcode = $row["accountcode"];
$this->toll_allow = $row["toll_allow"];
$this->outbound_caller_id_name = $row["outbound_caller_id_name"];
$this->outbound_caller_id_number = $row["outbound_caller_id_number"];
}
//determine whether to update the dial string
$sql = "select * from v_follow_me ";
$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and follow_me_uuid = '".$this->follow_me_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
if (is_array($result)) foreach ($result as &$row) {
$follow_me_uuid = $row["follow_me_uuid"];
$this->cid_name_prefix = $row["cid_name_prefix"];
$this->cid_number_prefix = $row["cid_number_prefix"];
}
unset ($prep_statement);
//add follow me
if (strlen($follow_me_uuid) == 0) {
$this->add();
}
//set the extension dial string
$sql = "select * from v_follow_me_destinations ";
$sql .= "where follow_me_uuid = '".$this->follow_me_uuid."' ";
$sql .= "order by follow_me_order asc ";
$prep_statement_2 = $db->prepare(check_sql($sql));
$prep_statement_2->execute();
$result = $prep_statement_2->fetchAll(PDO::FETCH_NAMED);
$dial_string = "{";
if ($this->follow_me_ignore_busy != 'true') {
$dial_string .= "fail_on_single_reject=USER_BUSY,";
}
$dial_string .= "instant_ringback=true,";
$dial_string .= "ignore_early_media=true";
$dial_string .= ",domain_uuid=".$_SESSION['domain_uuid'];
$dial_string .= ",sip_invite_domain=".$_SESSION['domain_name'];
$dial_string .= ",domain_name=".$_SESSION['domain_name'];
$dial_string .= ",domain=".$_SESSION['domain_name'];
$dial_string .= ",extension_uuid=".$this->extension_uuid;
$dial_string .= ",group_confirm_key=exec,group_confirm_file=lua confirm.lua";
$dial_string_caller_id_name = "\${effective_caller_id_name}";
$dial_string_caller_id_number = "\${effective_caller_id_number}";
if (strlen($this->follow_me_caller_id_uuid) > 0){
$sql_caller = "select destination_number, destination_description, destination_caller_id_number, destination_caller_id_name from v_destinations where domain_uuid = '$this->domain_uuid' and destination_type = 'inbound' and destination_uuid = '$this->follow_me_caller_id_uuid'";
$prep_statement_caller = $db->prepare($sql_caller);
if ($prep_statement_caller) {
$prep_statement_caller->execute();
$row_caller = $prep_statement_caller->fetch(PDO::FETCH_ASSOC);
$caller_id_number = $row_caller['destination_caller_id_number'];
if(strlen($caller_id_number) == 0){
$caller_id_number = $row_caller['destination_number'];
}
$caller_id_name = $row_caller['destination_caller_id_name'];
if(strlen($caller_id_name) == 0){
$caller_id_name = $row_caller['destination_description'];
}
if (strlen($caller_id_name) > 0) {
$dial_string_caller_id_name = $caller_id_name;
}
if (strlen($caller_id_number) > 0) {
$dial_string_caller_id_number = $caller_id_number;
}
}
}
if (strlen($this->cid_name_prefix) > 0) {
$dial_string .= ",origination_caller_id_name=".$this->cid_name_prefix."$dial_string_caller_id_name";
}
else {
$dial_string .= ",origination_caller_id_name=$dial_string_caller_id_name";
}
if (strlen($this->cid_number_prefix) > 0) {
//$dial_string .= ",origination_caller_id_number=".$this->cid_number_prefix."";
$dial_string .= ",origination_caller_id_number=".$this->cid_number_prefix."$dial_string_caller_id_number";
}
else {
$dial_string .= ",origination_caller_id_number=$dial_string_caller_id_number";
}
if (strlen($this->accountcode) > 0) {
$dial_string .= ",sip_h_X-accountcode=".$this->accountcode;
$dial_string .= ",accountcode=".$this->accountcode;
}
$dial_string .= ",toll_allow='".$this->toll_allow."'";
$dial_string .= "}";
$x = 0;
if (is_array($result)) foreach ($result as &$row) {
if ($x > 0) {
$dial_string .= ",";
}
if (extension_exists($row["follow_me_destination"])) {
//set the dial string
if (strlen($_SESSION['domain']['dial_string']['text']) == 0) {
$dial_string .= "[";
$dial_string .= "outbound_caller_id_number=$dial_string_caller_id_number,";
$dial_string .= "presence_id=".$row["follow_me_destination"]."@".$_SESSION['domain_name'].",";
if ($row["follow_me_prompt"] == "1") {
$dial_string .= "group_confirm_key=exec,group_confirm_file=lua confirm.lua,confirm=true,";
}
$dial_string .= "leg_delay_start=".$row["follow_me_delay"].",";
$dial_string .= "leg_timeout=".$row["follow_me_timeout"]."]";
$dial_string .= "\${sofia_contact(".$row["follow_me_destination"]."@".$_SESSION['domain_name'].")}";
}
else {
$replace_value = $row["follow_me_destination"];
if ($row["follow_me_prompt"] == "1") {
$replace_value .= "[group_confirm_key=exec,group_confirm_file=lua confirm.lua,confirm=true]";
}
$local_dial_string = $_SESSION['domain']['dial_string']['text'];
$local_dial_string = str_replace("\${dialed_user}", $replace_value, $local_dial_string);
$local_dial_string = str_replace("\${dialed_domain}", $_SESSION['domain_name'], $local_dial_string);
$local_dial_string = str_replace("\${call_timeout}", $row["follow_me_timeout"], $local_dial_string);
$local_dial_string = str_replace("\${leg_timeout}", $row["follow_me_timeout"], $local_dial_string);
$dial_string .= $local_dial_string;
}
}
else {
$dial_string .= "[";
if ($_SESSION['cdr']['follow_me_fix']['boolean'] == "true"){
$dial_string .= "outbound_caller_id_name=".$this->outbound_caller_id_name;
$dial_string .= ",outbound_caller_id_number=".$this->outbound_caller_id_number;
$dial_string .= ",origination_caller_id_name=".$this->outbound_caller_id_name;
$dial_string .= ",origination_caller_id_number=".$this->outbound_caller_id_number;
}
else{
$dial_string .= "outbound_caller_id_number=$dial_string_caller_id_number";
}
$dial_string .= ",presence_id=".$this->extension."@".$_SESSION['domain_name'];
if ($row["follow_me_prompt"] == "1") {
$dial_string .= ",group_confirm_key=exec,group_confirm_file=lua confirm.lua,confirm=true,";
}
$dial_string .= ",leg_delay_start=".$row["follow_me_delay"];
$dial_string .= ",leg_timeout=".$row["follow_me_timeout"]."]";
if (is_numeric($row["follow_me_destination"])) {
if ($_SESSION['domain']['bridge']['text'] == "outbound" || $_SESSION['domain']['bridge']['text'] == "bridge") {
$bridge = outbound_route_to_bridge ($_SESSION['domain_uuid'], $row["follow_me_destination"]);
$dial_string .= $bridge[0];
}
elseif ($_SESSION['domain']['bridge']['text'] == "loopback") {
$dial_string .= "loopback/".$row["follow_me_destination"]."/".$_SESSION['domain_name'];
}
elseif ($_SESSION['domain']['bridge']['text'] == "lcr") {
$dial_string .= "lcr/".$_SESSION['lcr']['profile']['text']."/".$_SESSION['domain_name']."/".$row["follow_me_destination"];
}
else {
$dial_string .= "loopback/".$row["follow_me_destination"]."/".$_SESSION['domain_name'];
}
}
else {
$dial_string .= $row["follow_me_destination"];
}
}
$x++;
}
$this->dial_string = $dial_string;
$sql = "update v_follow_me set ";
$sql .= "dial_string = '".$this->dial_string."' ";
$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and follow_me_uuid = '".$this->follow_me_uuid."' ";
if ($this->debug) {
echo $sql."<br />";
}
$db->exec($sql);
unset($sql);
//is follow me enabled
$dial_string = '';
if ($this->follow_me_enabled == "true") {
$dial_string = $this->dial_string;
}
$sql = "update v_extensions set ";
$sql .= "dial_string = '".check_str($dial_string)."', ";
$sql .= "dial_domain = '".$_SESSION['domain_name']."' ";
$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and follow_me_uuid = '".$this->follow_me_uuid."' ";
if ($this->debug) {
echo $sql."<br />";
}
$db->exec($sql);
unset($sql);
} //function
} //class
?>
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Copyright (C) 2010 - 2014
All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
Luis Daniel Lucio Quiroz <dlucio@okay.com.mx>
Salvatore Caruso <salvatore.caruso@nems.it>
Riccardo Granchi <riccardo.granchi@nems.it>
Errol Samuels <voiptology@gmail.com>
*/
include "root.php";
//define the follow me class
class follow_me {
public $domain_uuid;
public $db_type;
public $follow_me_uuid;
public $cid_name_prefix;
public $cid_number_prefix;
public $accountcode;
public $follow_me_enabled;
public $follow_me_caller_id_uuid;
public $follow_me_ignore_busy;
public $outbound_caller_id_name;
public $outbound_caller_id_number;
private $extension;
private $toll_allow;
public $destination_data_1;
public $destination_type_1;
public $destination_delay_1;
public $destination_prompt_1;
public $destination_timeout_1;
public $destination_data_2;
public $destination_type_2;
public $destination_delay_2;
public $destination_prompt_2;
public $destination_timeout_2;
public $destination_data_3;
public $destination_type_3;
public $destination_delay_3;
public $destination_prompt_3;
public $destination_timeout_3;
public $destination_data_4;
public $destination_type_4;
public $destination_delay_4;
public $destination_prompt_4;
public $destination_timeout_4;
public $destination_data_5;
public $destination_type_5;
public $destination_delay_5;
public $destination_prompt_5;
public $destination_timeout_5;
public $destination_timeout = 0;
public $destination_order = 1;
public function add() {
//set the global variable
global $db;
//add a new follow me
$sql = "insert into v_follow_me ";
$sql .= "(";
$sql .= "domain_uuid, ";
$sql .= "follow_me_uuid, ";
$sql .= "cid_name_prefix, ";
if (strlen($this->cid_number_prefix) > 0) {
$sql .= "cid_number_prefix, ";
}
$sql .= "follow_me_caller_id_uuid, ";
$sql .= "follow_me_enabled, ";
$sql .= "follow_me_ignore_busy ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'$this->domain_uuid', ";
$sql .= "'$this->follow_me_uuid', ";
$sql .= "'$this->cid_name_prefix', ";
if (strlen($this->cid_number_prefix) > 0) {
$sql .= "'$this->cid_number_prefix', ";
}
if (strlen($this->follow_me_caller_id_uuid) > 0) {
$sql .= "'$this->follow_me_caller_id_uuid', ";
}
else {
$sql .= 'null, ';
}
$sql .= "'$this->follow_me_enabled', ";
$sql .= "'$this->follow_me_ignore_busy' ";
$sql .= ")";
if ($v_debug) {
echo $sql."<br />";
}
$db->exec(check_sql($sql));
unset($sql);
$this->follow_me_destinations();
} //end function
public function update() {
//set the global variable
global $db;
//update follow me table
$sql = "update v_follow_me set ";
$sql .= "follow_me_enabled = '$this->follow_me_enabled', ";
$sql .= "follow_me_ignore_busy = '$this->follow_me_ignore_busy', ";
$sql .= "cid_name_prefix = '$this->cid_name_prefix', ";
if (strlen($this->follow_me_caller_id_uuid) > 0) {
$sql .= "follow_me_caller_id_uuid = '$this->follow_me_caller_id_uuid', ";
}
else {
$sql .= "follow_me_caller_id_uuid = null, ";
}
$sql .= "cid_number_prefix = '$this->cid_number_prefix' ";
$sql .= "where domain_uuid = '$this->domain_uuid' ";
$sql .= "and follow_me_uuid = '$this->follow_me_uuid' ";
$db->exec(check_sql($sql));
unset($sql);
$this->follow_me_destinations();
} //end function
public function follow_me_destinations() {
//set the global variable
global $db;
//prepare insert statement
$stmt = $db->prepare(
"insert into v_follow_me_destinations("
. "follow_me_destination_uuid,"
. "domain_uuid,"
. "follow_me_uuid,"
. "follow_me_destination,"
. "follow_me_timeout,"
. "follow_me_delay,"
. "follow_me_prompt,"
. "follow_me_order"
. ")values(?,?,?,?,?,?,?,?)"
);
//delete related follow me destinations
$sql = "delete from v_follow_me_destinations where follow_me_uuid = '$this->follow_me_uuid' ";
$db->exec(check_sql($sql));
//insert the follow me destinations
if (strlen($this->destination_data_1) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_1,
$this->destination_timeout_1,
$this->destination_delay_1,
$this->destination_prompt_1,
'1'
));
$this->destination_order++;
}
if (strlen($this->destination_data_2) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_2,
$this->destination_timeout_2,
$this->destination_delay_2,
$this->destination_prompt_2,
'2'
));
$this->destination_order++;
}
if (strlen($this->destination_data_3) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_3,
$this->destination_timeout_3,
$this->destination_delay_3,
$this->destination_prompt_3,
'3'
));
$this->destination_order++;
}
if (strlen($this->destination_data_4) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_4,
$this->destination_timeout_4,
$this->destination_delay_4,
$this->destination_prompt_4,
'4'
));
$this->destination_order++;
}
if (strlen($this->destination_data_5) > 0) {
$stmt->execute(array(
uuid(),
$this->domain_uuid,
$this->follow_me_uuid,
$this->destination_data_5,
$this->destination_timeout_5,
$this->destination_delay_5,
$this->destination_prompt_5,
'5'
));
$this->destination_order++;
}
unset($stmt);
} //function
public function set() {
//set the global variable
global $db;
//determine whether to update the dial string
$sql = "select * from v_extensions ";
$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and extension_uuid = '".$this->extension_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
if (count($result) > 0) {
foreach ($result as &$row) {
$this->extension = $row["extension"];
$this->accountcode = $row["accountcode"];
$this->toll_allow = $row["toll_allow"];
$this->outbound_caller_id_name = $row["outbound_caller_id_name"];
$this->outbound_caller_id_number = $row["outbound_caller_id_number"];
}
}
//determine whether to update the dial string
$sql = "select * from v_follow_me ";
$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and follow_me_uuid = '".$this->follow_me_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
if (count($result) > 0) {
foreach ($result as &$row) {
$follow_me_uuid = $row["follow_me_uuid"];
$this->cid_name_prefix = $row["cid_name_prefix"];
$this->cid_number_prefix = $row["cid_number_prefix"];
}
}
unset ($prep_statement);
//add follow me
if (strlen($follow_me_uuid) == 0) {
$this->add();
}
//set the extension dial string
$sql = "select * from v_follow_me_destinations ";
$sql .= "where follow_me_uuid = '".$this->follow_me_uuid."' ";
$sql .= "order by follow_me_order asc ";
$prep_statement_2 = $db->prepare(check_sql($sql));
$prep_statement_2->execute();
$result = $prep_statement_2->fetchAll(PDO::FETCH_NAMED);
$dial_string = "{";
if ($this->follow_me_ignore_busy != 'true') {
$dial_string .= "fail_on_single_reject=USER_BUSY,";
}
$dial_string .= "instant_ringback=true,";
$dial_string .= "ignore_early_media=true";
$dial_string .= ",domain_uuid=".$_SESSION['domain_uuid'];
$dial_string .= ",sip_invite_domain=".$_SESSION['domain_name'];
$dial_string .= ",domain_name=".$_SESSION['domain_name'];
$dial_string .= ",domain=".$_SESSION['domain_name'];
$dial_string .= ",extension_uuid=".$this->extension_uuid;
$dial_string .= ",group_confirm_key=exec,group_confirm_file=lua confirm.lua";
$dial_string_caller_id_name = "\${caller_id_name}";
$dial_string_caller_id_number = "\${caller_id_number}";
if (strlen($this->follow_me_caller_id_uuid) > 0){
$sql_caller = "select destination_number, destination_description from v_destinations where domain_uuid = '$this->domain_uuid' and destination_type = 'inbound' and destination_uuid = '$this->follow_me_caller_id_uuid'";
$prep_statement_caller = $db->prepare($sql_caller);
if ($prep_statement_caller) {
$prep_statement_caller->execute();
$row_caller = $prep_statement_caller->fetch(PDO::FETCH_ASSOC);
if (strlen($row_caller['destination_description']) > 0) {
$dial_string_caller_id_name = $row_caller['destination_description'];
}
if (strlen($row_caller['destination_number']) > 0) {
$dial_string_caller_id_number = $row_caller['destination_number'];
}
}
}
if (strlen($this->cid_name_prefix) > 0) {
$dial_string .= ",origination_caller_id_name=".$this->cid_name_prefix."#$dial_string_caller_id_name";
}
else {
$dial_string .= ",origination_caller_id_name=$dial_string_caller_id_name";
}
if (strlen($this->cid_number_prefix) > 0) {
//$dial_string .= ",origination_caller_id_number=".$this->cid_number_prefix."";
$dial_string .= ",origination_caller_id_number=".$this->cid_number_prefix."#dial_string_caller_id_number";
}
else {
$dial_string .= ",origination_caller_id_number=$dial_string_caller_id_number";
}
if (strlen($this->accountcode) > 0) {
$dial_string .= ",sip_h_X-accountcode=".$this->accountcode;
$dial_string .= ",accountcode=".$this->accountcode;
}
$dial_string .= ",toll_allow='".$this->toll_allow."'";
$dial_string .= "}";
$x = 0;
foreach ($result as &$row) {
if ($x > 0) {
$dial_string .= ",";
}
if (extension_exists($row["follow_me_destination"])) {
//set the dial string
if (strlen($_SESSION['domain']['dial_string']['text']) == 0) {
$dial_string .= "[";
$dial_string .= "outbound_caller_id_number=$dial_string_caller_id_number,";
$dial_string .= "presence_id=".$row["follow_me_destination"]."@".$_SESSION['domain_name'].",";
if ($row["follow_me_prompt"] == "1") {
$dial_string .= "group_confirm_key=exec,group_confirm_file=lua confirm.lua,confirm=true,";
}
$dial_string .= "leg_delay_start=".$row["follow_me_delay"].",";
$dial_string .= "leg_timeout=".$row["follow_me_timeout"]."]";
$dial_string .= "\${sofia_contact(".$row["follow_me_destination"]."@".$_SESSION['domain_name'].")}";
}
else {
$replace_value = $row["follow_me_destination"];
if ($row["follow_me_prompt"] == "1") {
$replace_value .= "[group_confirm_key=exec,group_confirm_file=lua confirm.lua,confirm=true]";
}
$local_dial_string = $_SESSION['domain']['dial_string']['text'];
$local_dial_string = str_replace("\${dialed_user}", $replace_value, $local_dial_string);
$local_dial_string = str_replace("\${dialed_domain}", $_SESSION['domain_name'], $local_dial_string);
$local_dial_string = str_replace("\${call_timeout}", $row["follow_me_timeout"], $local_dial_string);
$local_dial_string = str_replace("\${leg_timeout}", $row["follow_me_timeout"], $local_dial_string);
$dial_string .= $local_dial_string;
}
}
else {
$dial_string .= "[";
if ($_SESSION['cdr']['follow_me_fix']['boolean'] == "true"){
$dial_string .= "outbound_caller_id_name=".$this->outbound_caller_id_name;
$dial_string .= ",outbound_caller_id_number=".$this->outbound_caller_id_number;
$dial_string .= ",origination_caller_id_name=".$this->outbound_caller_id_name;
$dial_string .= ",origination_caller_id_number=".$this->outbound_caller_id_number;
}
else{
$dial_string .= "outbound_caller_id_number=$dial_string_caller_id_number";
}
$dial_string .= ",presence_id=".$this->extension."@".$_SESSION['domain_name'];
if ($row["follow_me_prompt"] == "1") {
$dial_string .= ",group_confirm_key=exec,group_confirm_file=lua confirm.lua,confirm=true,";
}
$dial_string .= ",leg_delay_start=".$row["follow_me_delay"];
$dial_string .= ",leg_timeout=".$row["follow_me_timeout"]."]";
if (is_numeric($row["follow_me_destination"])) {
if ($_SESSION['domain']['bridge']['text'] == "outbound" || $_SESSION['domain']['bridge']['text'] == "bridge") {
$bridge = outbound_route_to_bridge ($_SESSION['domain_uuid'], $row["follow_me_destination"]);
$dial_string .= $bridge[0];
}
elseif ($_SESSION['domain']['bridge']['text'] == "loopback") {
$dial_string .= "loopback/".$row["follow_me_destination"]."/".$_SESSION['domain_name'];
}
elseif ($_SESSION['domain']['bridge']['text'] == "lcr") {
$dial_string .= "lcr/".$_SESSION['lcr']['profile']['text']."/".$_SESSION['domain_name']."/".$row["follow_me_destination"];
}
else {
$dial_string .= "loopback/".$row["follow_me_destination"]."/".$_SESSION['domain_name'];
}
}
else {
$dial_string .= $row["follow_me_destination"];
}
}
$x++;
}
$this->dial_string = $dial_string;
$sql = "update v_follow_me set ";
$sql .= "dial_string = '".$this->dial_string."' ";
$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and follow_me_uuid = '".$this->follow_me_uuid."' ";
if ($this->debug) {
echo $sql."<br />";
}
$db->exec($sql);
unset($sql);
//is follow me enabled
$dial_string = '';
if ($this->follow_me_enabled == "true") {
$dial_string = $this->dial_string;
}
$sql = "update v_extensions set ";
$sql .= "dial_string = '".check_str($dial_string)."', ";
$sql .= "dial_domain = '".$_SESSION['domain_name']."' ";
$sql .= "where domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and follow_me_uuid = '".$this->follow_me_uuid."' ";
if ($this->debug) {
echo $sql."<br />";
}
$db->exec($sql);
unset($sql);
} //function
} //class
?>
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+1 -1
View File
@@ -17,7 +17,7 @@
$apps[$x]['description']['fr-ca'] = "";
$apps[$x]['description']['fr-ch'] = "";
$apps[$x]['description']['pt-pt'] = "Canais ativos no sistema.";
$apps[$x]['description']['pt-br'] = "Canais ativos no sistema.";
$apps[$x]['description']['pt-br'] = "";
//permission details
$apps[$x]['permissions'][0]['name'] = "call_active_view";
+22 -1
View File
@@ -4,7 +4,7 @@ $text['title-2']['en-us'] = "Active Extensions";
$text['title-2']['es-cl'] = "Extensiones Activas";
$text['title-2']['fr-fr'] = "Extensions Actives";
$text['title-2']['pt-pt'] = "Extensões Ativas";
$text['title-2']['pt-br'] = "Ramais ativos";
$text['title-2']['pt-br'] = "Extensões ativas";
$text['title-2']['pl'] = "Aktywne numery wewnętrzne";
$text['title-2']['sv-se'] = "Aktiva anknytningar";
$text['title-2']['uk'] = "Активні розширення";
@@ -152,6 +152,17 @@ $text['label-number']['uk'] = "Номер";
$text['label-number']['de-at'] = "Nummer";
$text['label-number']['he'] = "מספר";
$text['label-name']['en-us'] = "Name";
$text['label-name']['es-cl'] = "Nombre";
$text['label-name']['fr-fr'] = "Nom";
$text['label-name']['pt-pt'] = "Nome";
$text['label-name']['pt-br'] = "Nome";
$text['label-name']['pl'] = "Nazwa";
$text['label-name']['sv-se'] = "Namn";
$text['label-name']['uk'] = "Назва";
$text['label-name']['de-at'] = "Name";
$text['label-name']['he'] = "שם";
$text['label-message']['en-us'] = "Message";
$text['label-message']['es-cl'] = "Mensaje";
$text['label-message']['fr-fr'] = "Message";
@@ -370,4 +381,14 @@ $text['button-show_all']['uk'] = "Показати всі";
$text['button-show_all']['de-at'] = "Alle anzeigen";
$text['button-show_all']['he'] = "";
$text['button-back']['en-us'] = "Back";
$text['button-back']['es-cl'] = "Volver";
$text['button-back']['pt-pt'] = "Voltar";
$text['button-back']['fr-fr'] = "Retour";
$text['button-back']['pt-br'] = "Voltar";
$text['button-back']['pl'] = "Wróć";
$text['button-back']['uk'] = "Назад";
$text['button-back']['de-at'] = "Zurück";
$text['button-back']['he'] = "חזרה";
?>
+1 -1
View File
@@ -131,7 +131,7 @@ require_once "resources/footer.php";
}
function get_record_cmd(uuid, prefix, name) {
cmd = \"uuid_record \"+uuid+\" start ".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".date("Y")."/".date("M")."/".date("d")."/\"+uuid+\".wav\";
cmd = \"uuid_record \"+uuid+\" start ".$_SESSION['switch']['recordings']['dir']."/archive/".date("Y")."/".date("M")."/".date("d")."/\"+uuid+\".wav\";
return escape(cmd);
}
*/
+13 -24
View File
@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2016
Portions created by the Initial Developer are Copyright (C) 2008-2012
the Initial Developer. All Rights Reserved.
Contributor(s):
@@ -93,21 +93,7 @@ else {
echo " </tr>";
echo "</table>";
$rows = array();
if (isset($results["rows"])) foreach ($results["rows"] as &$row) {
//determine show all
if (!($show == 'all' && permission_exists('call_active_all'))) {
$foreign_call = true;
foreach ($row as $key => $value) {
if (substr_count($value, $_SESSION['domain_name']) > 0) { $foreign_call = false; }
}
if ($foreign_call) { continue; }
}
// append call
$rows[] = $row;
}
echo "<b>".$text['title']." (" . count($rows) . ")"."</b>";
echo "<b>".$text['title']."</b>";
echo "<br><br>\n";
echo $text['description']."\n";
echo "<br><br>\n";
@@ -137,7 +123,15 @@ else {
echo "<td class='list_control_icon'></td>\n";
echo "</tr>\n";
foreach ($rows as &$row) {
foreach ($results["rows"] as $row) {
//determine show all
if (!($show == 'all' && permission_exists('call_active_all'))) {
$foreign_call = true;
foreach ($row as $key => $value) {
if (substr_count($value, $_SESSION['domain_name']) > 0) { $foreign_call = false; }
}
if ($foreign_call) { continue; }
}
//set the php variables
foreach ($row as $key => $value) {
$$key = $value;
@@ -183,11 +177,6 @@ else {
}
}
// reduce too long app data
if(strlen($application_data) > 512) {
$application_data = substr($application_data, 0, 512) . ' <b>...</b>';
}
echo "<tr>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$sip_profile."&nbsp;</td>\n";
echo "<td valign='top' class='".$row_style[$c]."'>".$created."&nbsp;</td>\n";
@@ -216,8 +205,8 @@ else {
//park
echo " <a href='javascript:void(0);' onclick=\"send_cmd('calls_exec.php?cmd='+get_park_cmd(escape('$uuid'), '".$tmp_domain."'));\">".$text['label-park']."</a>&nbsp;\n";
//record start/stop
$tmp_dir = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".date("Y")."/".date("M")."/".date("d");
event_socket_mkdir($tmp_dir);
$tmp_dir = $_SESSION['switch']['recordings']['dir']."/archive/".date("Y")."/".date("M")."/".date("d");
mkdir($tmp_dir, 0777, true);
$tmp_file = $tmp_dir."/".$uuid.".wav";
if (file_exists($tmp_file)) {
//stop
+3 -3
View File
@@ -229,13 +229,13 @@ if (count($_GET)>0) {
$x=0;
while (true) {
if ($x > 0) {
$dest_file = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".date("Y")."/".date("M")."/".date("d")."/".$_GET["uuid"]."_".$x.".wav";
$dest_file = $_SESSION['switch']['recordings']['dir']."/archive/".date("Y")."/".date("M")."/".date("d")."/".$_GET["uuid"]."_".$x.".wav";
}
else {
$dest_file = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".date("Y")."/".date("M")."/".date("d")."/".$_GET["uuid"].".wav";
$dest_file = $_SESSION['switch']['recordings']['dir']."/archive/".date("Y")."/".date("M")."/".date("d")."/".$_GET["uuid"].".wav";
}
if (!file_exists($dest_file)) {
rename($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".date("Y")."/".date("M")."/".date("d")."/".$_GET["uuid"].".wav", $dest_file);
rename($_SESSION['switch']['recordings']['dir']."/archive/".date("Y")."/".date("M")."/".date("d")."/".$_GET["uuid"].".wav", $dest_file);
break;
}
$x++;
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+1 -1
View File
@@ -17,7 +17,7 @@
$apps[$x]['description']['fr-ca'] = "Appeller avec d'URL";
$apps[$x]['description']['fr-ch'] = "";
$apps[$x]['description']['pt-pt'] = "Originar chamadas com um URL.";
$apps[$x]['description']['pt-br'] = "Gera chamadas a partir de um URL";
$apps[$x]['description']['pt-br'] = "";
//permission details
$apps[$x]['permissions'][0]['name'] = "click_to_call_view";
+1 -31
View File
@@ -29,181 +29,151 @@
$text['label-click2call']['en-us'] = "Click to Call";
$text['label-click2call']['es-cl'] = "Pulse para Llamar";
$text['label-click2call']['pt-pt'] = "Clique para chamar";
$text['label-click2call']['pt-br'] = "Clique para chamar";
$text['label-click2call']['fr-fr'] = "Click to Call";
$text['desc-click2call']['en-us'] = "Provide the following information to make a call from the source number to the destination number.";
$text['desc-click2call']['es-cl'] = "Ingrese la siguiente información para realizar una llamada desde un número de origen a un número de destino.";
$text['desc-click2call']['pt-pt'] = "Forneça a informação seguinte para realizar uma chamada com uma determinada origem para um determinado destino.";
$text['desc-click2call']['pt-br'] = "Forneça as seguintes informações para realizar uma chamada do telefone originário para o telefone de destino.";
$text['desc-click2call']['fr-fr'] = "Fournissez les informations suivantes afin de lancer un appel d'un numéro vers un autre.";
$text['label-src-caller-id-nam']['en-us'] = "Source Caller ID Name";
$text['label-src-caller-id-nam']['es-cl'] = "Nombre de Caller ID de origen";
$text['label-src-caller-id-nam']['pt-pt'] = "Nome do Chamador";
$text['label-src-caller-id-nam']['pt-br'] = "Nome de origem";
$text['label-src-caller-id-nam']['fr-fr'] = "Nom de l'appelant";
$text['desc-src-caller-id-nam']['en-us'] = "Enter the Caller ID name to send to your phone.";
$text['desc-src-caller-id-nam']['es-cl'] = "Ingrese el nombre del Caller ID para enviar a su teléfono.";
$text['desc-src-caller-id-nam']['pt-pt'] = "Introduza o nome do chamador para ser enviado para o seu telefone.";
$text['desc-src-caller-id-nam']['pt-br'] = "Entre com o ID do número de origem para ser enviado para seu telefone.";
$text['desc-src-caller-id-nam']['fr-fr'] = "Choisir le nom d'appelant à émettre à votre téléphone.";
$text['label-src-caller-id-num']['en-us'] = "Source Caller ID Number";
$text['label-src-caller-id-num']['es-cl'] = "Número de Caller ID de origen";
$text['label-src-caller-id-num']['pt-pt'] = "Número do Chamador";
$text['label-src-caller-id-num']['pt-br'] = "Número de origem";
$text['label-src-caller-id-num']['fr-fr'] = "Numéro de l'appelant";
$text['desc-src-caller-id-num']['en-us'] = "Enter the Caller ID number to send to your phone (you probably want this to be the same as the destination number).";
$text['desc-src-caller-id-num']['es-cl'] = "Ingrese el número del Caller ID para enviar a su teléfono (probablemente desee que sea el mismo que el número de destino).";
$text['desc-src-caller-id-num']['pt-pt'] = "Introduza o identificador de chamada para enviar para o seu telefone (geralmente é o mesmo que o número de destino).";
$text['desc-src-caller-id-num']['pt-br'] = "Entre com o ID do número de origem para ser enviado para seu telefone (Orientamos colocar este número sendo o mesmo número que 'número de destino'";
$text['desc-src-caller-id-num']['fr-fr'] = "Choisir le numéro d'appelant à émettre à votre téléphone (Il est en général le même que le numéro de destination).";
$text['label-dest-caller-id-nam']['en-us'] = "Destination Caller ID Name";
$text['label-dest-caller-id-nam']['es-cl'] = "Nombre de Caller ID de destino";
$text['label-dest-caller-id-nam']['pt-pt'] = "Nome do Chamador";
$text['label-dest-caller-id-nam']['pt-br'] = "Identificação do destino";
$text['label-dest-caller-id-nam']['fr-fr'] = "Nom de l'appelant";
$text['desc-dest-caller-id-nam']['en-us'] = "Enter the Caller ID name to send to the destination number.";
$text['desc-dest-caller-id-nam']['es-cl'] = "Ingrese el nombre de Caller ID para enviar al número de destino.";
$text['desc-dest-caller-id-nam']['pt-pt'] = "Introduza o identificador do chamador a ser enviado para o destinatário.";
$text['desc-dest-caller-id-nam']['pt-br'] = "Entre com a identificação a ser enviada para o número de destino.";
$text['desc-dest-caller-id-nam']['fr-fr'] = "Choisir le nom d'appelant à émettre à la destination";
$text['label-dest-caller-id-num']['en-us'] = "Destination Caller ID Number";
$text['label-dest-caller-id-num']['es-cl'] = "Número de Caller ID de destino";
$text['label-dest-caller-id-num']['pt-pt'] = "Número a apresentar no destino";
$text['label-dest-caller-id-num']['pt-br'] = "Número de destino";
$text['label-dest-caller-id-num']['fr-fr'] = "Numéro de l'appelant";
$text['desc-dest-caller-id-num']['en-us'] = "Enter the Caller ID number to send to the destination number (you probably want this to be your phone number).";
$text['desc-dest-caller-id-num']['es-cl'] = "Ingrese número de Caller ID para enviar al número de destino (probablemente desee que sea su número de teléfono).";
$text['desc-dest-caller-id-num']['pt-pt'] = "Introduza o número identificador de chamada a ser enviado ao telefone de destino (geralmente é o mesmo que o seu número de telefone).";
$text['desc-dest-caller-id-num']['pt-br'] = "Entre com o número de identificação a ser mandado para o número de destino (geralmente é o mesmo que o número de telefone).";
$text['desc-dest-caller-id-num']['fr-fr'] = "Choisir le numéro d'appelant à émettre au téléphone destination (Il est en général le même que votre numéro.)";
$text['label-src-num']['en-us'] = "Source Number";
$text['label-src-num']['es-cl'] = "Número de origen";
$text['label-src-num']['pt-pt'] = "Número de origem";
$text['label-src-num']['pt-br'] = "Número de origem";
$text['label-src-num']['fr-fr'] = "Numéro Source";
$text['desc-src-num']['en-us'] = "Enter your phone number. This can be an extension on the system, or another number (eg: mobile phone).";
$text['desc-src-num']['es-cl'] = "Ingrese su número de teléfono. Este puede ser una extesión en el sistema, u otro número (ej. teléfono movil).";
$text['desc-src-num']['pt-pt'] = "Introduza o seu número de telefone. Poderá ser uma extensão do sistema ou outro número (ex: número de telemóvel).";
$text['desc-src-num']['pt-br'] = "Entre com seu númerop de telefone. Pode ser um ramal ou outro número (ex: número de celular).";
$text['desc-src-num']['fr-fr'] = "Choisir votre numéro de téléphone. Il peut être une extension du système, ou tout autre numéro (eg: un mobile).";
$text['label-dest-num']['en-us'] = "Destination Number";
$text['label-dest-num']['es-cl'] = "Número de destino";
$text['label-dest-num']['pt-pt'] = "Número do Destino";
$text['label-dest-num']['pt-br'] = "Número do Destino";
$text['label-dest-num']['fr-fr'] = "Numéro Destination";
$text['desc-dest-num']['en-us'] = "Enter the number to call. This can be an extension on the system, another number, or a sip uri. Sip URI's are of the form 5551234567@voip.example.com:5080 (5080 for freeswitch, or 5060 for other systems).";
$text['desc-dest-num']['es-cl'] = "Ingrese el número a llamar. Este puede ser una extensión en el sistema, otro número o un uri sip. Uri's sip son de la forma 5551234567@voip.example.com:5080 (5080 para freeswitch, o 5060 para otros sistemas).";
$text['desc-dest-num']['pt-pt'] = "Introduza o número para chamar. Poderá ser uma extensão do sistema, outro número, ou um SIP URI. Os SIP URI's respeitam a seguinte nomenclatura: +351210000000@voip.example.com";
$text['desc-dest-num']['pt-pt'] = "Entre com o número a ser ligado. Pode ser um ramal, outro número, ou SIP URI. Exemplo de SIP URI: 12345678@voip.example.com:5080, sendo 5080 para o freeswitch ou 5060 para outros sistemas.";
$text['desc-dest-num']['fr-fr'] = "Choisir un numéro à appeler. Il peut être une extension du système, un autre numéro, une URI SIP. les URI SIP sont de la forme : 5551234567@voip.example.com:5080 (5080 pour freeswitch, ou 5060 pour d'autre système).";
$text['label-auto-answer']['en-us'] = "Auto Answer";
$text['label-auto-answer']['es-cl'] = "respuesta automática";
$text['label-auto-answer']['pt-pt'] = "Resposta Automática";
$text['label-auto-answer']['pt-br'] = "Resposta Automática";
$text['label-auto-answer']['fr-fr'] = "Réponse Auto";
$text['desc-auto-answer']['en-us'] = "Select whether to enable auto answer.";
$text['desc-auto-answer']['es-cl'] = "Indique si desea activar la respuesta automática.";
$text['desc-auto-answer']['pt-pt'] = "Activar ou Desactivar a resposta automática.";
$text['desc-auto-answer']['pt-br'] = "Ativar ou desativar a resposta automática.";
$text['desc-auto-answer']['fr-fr'] = "Activer ou non la réponse automatique.";
$text['label-record']['en-us'] = "Record";
$text['label-record']['es-cl'] = "Grabar";
$text['label-record']['pt-pt'] = "Gravar";
$text['label-record']['pt-br'] = "Gravar";
$text['label-record']['fr-fr'] = "Enregistrer";
$text['label-true']['en-us'] = "true";
$text['label-true']['es-cl'] = "verdadero";
$text['label-true']['pt-pt'] = "sim";
$text['label-true']['pt-br'] = "sim";
$text['label-true']['fr-fr'] = "oui";
$text['label-false']['en-us'] = "false";
$text['label-false']['es-cl'] = "falso";
$text['label-false']['pt-pt'] = "não";
$text['label-false']['pt-pt'] = "não";
$text['label-false']['fr-fr'] = "non";
$text['desc-record']['en-us'] = "Select whether to record the call.";
$text['desc-record']['es-cl'] = "Indique si desea grabar la llamada.";
$text['desc-record']['pt-pt'] = "Escolha se quer gravar chamada.";
$text['desc-record']['pt-br'] = "Escolha se quer gravar chamada.";
$text['desc-record']['fr-fr'] = "Choisir si vous voulez enregistrer l'appel.";
$text['label-ringback']['en-us'] = "Ring Back";
$text['label-ringback']['es-cl'] = "Regresar tono";
$text['label-ringback']['pt-pt'] = "Ring Back";
$text['label-ringback']['pt-br'] = "Tocar de volta (Ring Back)";
$text['label-ringback']['fr-fr'] = "Retour de sonnerie";
$text['desc-ringback']['en-us'] = "Defines what you will hear while destination is being called. The choices are music (music on hold) ring (ring tone).";
$text['desc-ringback']['es-cl'] = "Defina qué desea escuchar mientras se llama al destinatario. Las opciones son música (música en espera) o tono de marcado";
$text['desc-ringback']['pt-pt'] = "Definir o que deseja ouvir enquanto o destino não atende. As escolhas são música (música em espera) ring (tom de chamada).";
$text['desc-ringback']['pt-br'] = "Definir o que deseja escutar enquanto o destino não atende. As escolhas são música (música em espera) ring (tom de chamada).";
$text['desc-ringback']['fr-fr'] = "Défini ce vous entendrez pendant que la destination sera appelée. Les choix sont musique (musique de garde) sonnerie.";
$text['opt-usring']['en-us'] = "us-ring";
$text['opt-usring']['es-cl'] = "us-ring";
$text['opt-usring']['pt-pt'] = "us-ring";
$text['opt-usring']['pt-br'] = "us-ring";
$text['opt-usring']['fr-fr'] = "us-ring";
$text['opt-frring']['en-us'] = "fr-ring";
$text['opt-frring']['es-cl'] = "fr-ring";
$text['opt-frring']['pt-pt'] = "fr-ring";
$text['opt-frring']['pt-br'] = "fr-ring";
$text['opt-frring']['fr-fr'] = "fr-ring";
$text['opt-ptring']['en-us'] = "pt-ring";
$text['opt-ptring']['es-cl'] = "pt-ring";
$text['opt-ptring']['pt-pt'] = "pt-ring";
$text['opt-ptring']['pt-br'] = "pt-ring";
$text['opt-ptring']['fr-fr'] = "pt-ring";
$text['opt-ukring']['en-us'] = "uk-ring";
$text['opt-ukring']['es-cl'] = "uk-ring";
$text['opt-ukring']['pt-pt'] = "uk-ring";
$text['opt-ukring']['pt-br'] = "uk-ring";
$text['opt-ukring']['fr-fr'] = "uk-ring";
$text['opt-rsring']['en-us'] = "rs-ring";
$text['opt-rsring']['es-cl'] = "rs-ring";
$text['opt-rsring']['pt-pt'] = "rs-ring";
$text['opt-rsring']['pt-br'] = "rs-ring";
$text['opt-rsring']['fr-fr'] = "rs-ring";
$text['opt-itring']['en-us'] = "it-ring";
$text['opt-itring']['es-cl'] = "it-ring";
$text['opt-itring']['pt-pt'] = "it-ring";
$text['opt-itring']['pt-br'] = "it-ring";
$text['opt-itring']['fr-fr'] = "it-ring";
$text['opt-moh']['en-us'] = "music";
$text['opt-moh']['es-cl'] = "musica";
$text['opt-moh']['pt-pt'] = "música";
$text['opt-moh']['pt-br'] = "música";
$text['opt-moh']['fr-fr'] = "musique";
$text['button-call']['en-us'] = "Call";
$text['button-call']['es-cl'] = "Llamar";
$text['button-call']['pt-pt'] = "Chamada";
$text['button-call']['pt-br'] = "Chamada";
$text['button-call']['fr-fr'] = "appel";
?>
+17 -17
View File
@@ -1,18 +1,18 @@
<?php
$apps[$x]['menu'][0]['title']['en-us'] = "Click to Call";
$apps[$x]['menu'][0]['title']['es-cl'] = "Pulse para Llamar";
$apps[$x]['menu'][0]['title']['de-de'] = "";
$apps[$x]['menu'][0]['title']['de-ch'] = "";
$apps[$x]['menu'][0]['title']['de-at'] = "";
$apps[$x]['menu'][0]['title']['fr-fr'] = "Cliquez pour Appeller";
$apps[$x]['menu'][0]['title']['fr-ca'] = "";
$apps[$x]['menu'][0]['title']['fr-ch'] = "";
$apps[$x]['menu'][0]['title']['pt-pt'] = "Clicar para Chamadas";
$apps[$x]['menu'][0]['title']['pt-br'] = "";
$apps[$x]['menu'][0]['uuid'] = "f862556f-9ddd-2697-fdf4-bed08ec63aa5";
$apps[$x]['menu'][0]['parent_uuid'] = "fd29e39c-c936-f5fc-8e2b-611681b266b5";
$apps[$x]['menu'][0]['category'] = "internal";
$apps[$x]['menu'][0]['path'] = "/app/click_to_call/click_to_call.php";
<?php
$apps[$x]['menu'][0]['title']['en-us'] = "Click to Call";
$apps[$x]['menu'][0]['title']['es-cl'] = "Pulse para Llamar";
$apps[$x]['menu'][0]['title']['de-de'] = "";
$apps[$x]['menu'][0]['title']['de-ch'] = "";
$apps[$x]['menu'][0]['title']['de-at'] = "";
$apps[$x]['menu'][0]['title']['fr-fr'] = "Cliquez pour Appeller";
$apps[$x]['menu'][0]['title']['fr-ca'] = "";
$apps[$x]['menu'][0]['title']['fr-ch'] = "";
$apps[$x]['menu'][0]['title']['pt-pt'] = "Clicar para Chamadas";
$apps[$x]['menu'][0]['title']['pt-br'] = "";
$apps[$x]['menu'][0]['uuid'] = "f862556f-9ddd-2697-fdf4-bed08ec63aa5";
$apps[$x]['menu'][0]['parent_uuid'] = "fd29e39c-c936-f5fc-8e2b-611681b266b5";
$apps[$x]['menu'][0]['category'] = "internal";
$apps[$x]['menu'][0]['path'] = "/app/click_to_call/click_to_call.php";
?>
+414 -377
View File
@@ -1,377 +1,414 @@
<?php
/* $Id$ */
/*
call.php
Copyright (C) 2008, 2009 Mark J Crane
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
James Rose <james.o.rose@gmail.com>
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('click_to_call_view')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//include the header
require_once "resources/header.php";
if (is_array($_REQUEST) && !empty($_REQUEST['src']) && !empty($_REQUEST['dest'])) {
//retrieve submitted variables
$src = check_str($_REQUEST['src']);
$src_cid_name = check_str($_REQUEST['src_cid_name']);
$src_cid_number = check_str($_REQUEST['src_cid_number']);
$dest = check_str($_REQUEST['dest']);
$dest_cid_name = check_str($_REQUEST['dest_cid_name']);
$dest_cid_number = check_str($_REQUEST['dest_cid_number']);
$auto_answer = check_str($_REQUEST['auto_answer']); //true,false
$rec = check_str($_REQUEST['rec']); //true,false
$ringback = check_str($_REQUEST['ringback']);
$context = $_SESSION['context'];
//clean up variable values
$src = str_replace(array('.','(',')','-',' '), '', $src);
$dest = (strpbrk($dest, '@') != FALSE) ? str_replace(array('(',')',' '), '', $dest) : str_replace(array('.','(',')','-',' '), '', $dest); //don't strip periods or dashes in sip-uri calls, only phone numbers
//adjust variable values
$sip_auto_answer = ($auto_answer == "true") ? ",sip_auto_answer=true" : null;
//mozilla thunderbird TBDialout workaround (seems it can only handle the first %NUM%)
$dest = ($dest == "%NUM%") ? $src_cid_number : $dest;
//translate ringback
switch ($ringback) {
case "music": $ringback_value = "\'local_stream://moh\'"; break;
case "uk-ring": $ringback_value = "\'%(400,200,400,450);%(400,2200,400,450)\'"; break;
case "fr-ring": $ringback_value = "\'%(1500,3500,440.0,0.0)\'"; break;
case "pt-ring": $ringback_value = "\'%(1000,5000,400.0,0.0)\'"; break;
case "rs-ring": $ringback_value = "\'%(1000,4000,425.0,0.0)\'"; break;
case "it-ring": $ringback_value = "\'%(1000,4000,425.0,0.0)\'"; break;
case "us-ring":
default:
$ringback = 'us-ring';
$ringback_value = "\'%(2000,4000,440.0,480.0)\'";
}
//determine call direction
$dir = (strlen($dest) < 7) ? 'local' : 'outbound';
//define a leg - set source to display the defined caller id name and number
$source_common = "{".
"click_to_call=true".
",origination_caller_id_name='".$src_cid_name."'".
",origination_caller_id_number=".$src_cid_number.
",instant_ringback=true".
",ringback=".$ringback_value.
",presence_id=".$src."@".$_SESSION['domains'][$domain_uuid]['domain_name'].
",call_direction=".$dir;
if (strlen($src) < 7) {
//source is a local extension
$source = $source_common.$sip_auto_answer.
",domain_uuid=".$domain_uuid.
",domain_name=".$_SESSION['domains'][$domain_uuid]['domain_name']."}user/".$src."@".$_SESSION['domains'][$domain_uuid]['domain_name'];
}
else {
//source is an external number
$bridge_array = outbound_route_to_bridge($_SESSION['domain_uuid'], $src);
$source = $source_common."}".$bridge_array[0];
}
unset($source_common);
//define b leg - set destination to display the defined caller id name and number
$destination_common = " &bridge({origination_caller_id_name='".$dest_cid_name."',origination_caller_id_number=".$dest_cid_number;
if (strlen($dest) < 7) {
//destination is a local extension
if (strpbrk($dest, '@') != FALSE) { //sip-uri
$switch_cmd = $destination_common.",call_direction=outbound}sofia/external/".$dest.")";
}
else { //not sip-uri
$switch_cmd = " &transfer('".$dest." XML ".$context."')";
}
}
else {
//local extension (source) > external number (destination)
if (strlen($src) < 7 && strlen($dest_cid_number) == 0) {
//retrieve outbound caller id from the (source) extension
$sql = "select outbound_caller_id_name, outbound_caller_id_number from v_extensions where domain_uuid = '".$_SESSION['domain_uuid']."' and extension = '".$src."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$dest_cid_name = $row["outbound_caller_id_name"];
$dest_cid_number = $row["outbound_caller_id_number"];
break; //limit to 1 row
}
unset ($prep_statement);
}
if (permission_exists('click_to_call_call')) {
if (strpbrk($dest, '@') != FALSE) { //sip-uri
$switch_cmd = $destination_common.",call_direction=outbound}sofia/external/".$dest.")";
}
else { //not sip-uri
$bridge_array = outbound_route_to_bridge($_SESSION['domain_uuid'], $dest);
//$switch_cmd = $destination_common."}".$bridge_array[0].")"; // wouldn't set cdr destination correctly, so below used instead
$switch_cmd = " &transfer('".$dest." XML ".$context."')";
}
}
}
unset($destination_common);
//create the even socket connection and send the event socket command
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if (!$fp) {
//error message
echo "<div align='center'><strong>Connection to Event Socket failed.</strong></div>";
}
else {
//display the last command
$switch_cmd = "api originate ".$source.$switch_cmd;
echo "<div align='center'>".$switch_cmd."<br /><br /><strong>".$src." has called ".$dest."</strong></div>\n";
//show the command result
$result = trim(event_socket_request($fp, $switch_cmd));
if (substr($result, 0,3) == "+OK") {
$uuid = substr($result, 4);
if ($rec == "true") {
//use the server's time zone to ensure it matches the time zone used by freeswitch
date_default_timezone_set($_SESSION['time_zone']['system']);
//create the api record command and send it over event socket
$switch_cmd = "api uuid_record ".$uuid." start ".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".date("Y")."/".date("M")."/".date("d")."/".$uuid.".wav";
$result2 = trim(event_socket_request($fp, $switch_cmd));
}
}
echo "<div align='center'><br />".$result."<br /><br /></div>\n";
}
}
//show html form
echo " <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo " <tr>\n";
echo " <td align='left'>\n";
echo " <span class=\"title\">\n";
echo " <strong>".$text['label-click2call']."</strong>\n";
echo " </span>\n";
echo " </td>\n";
echo " <td align='right'>\n";
echo " &nbsp;\n";
echo " </td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td align='left' colspan='2'>\n";
echo " <span class=\"vexpl\">\n";
echo " ".$text['desc-click2call']."\n";
echo " </span>\n";
echo " </td>\n";
echo "\n";
echo " </tr>\n";
echo " </table>";
echo " <br />";
echo "<form>\n";
echo "<table border='0' width='100%' cellpadding='0' cellspacing='0'\n";
echo "<tr>\n";
echo " <td class='vncellreq' width='40%'>".$text['label-src-caller-id-nam']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"src_cid_name\" value='$src_cid_name' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-src-caller-id-nam']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncellreq'>".$text['label-src-caller-id-num']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"src_cid_number\" value='$src_cid_number' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-src-caller-id-num']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncell' width='40%'>".$text['label-dest-caller-id-nam']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"dest_cid_name\" value='$dest_cid_name' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-dest-caller-id-nam']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncell'>".$text['label-dest-caller-id-num']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"dest_cid_number\" value='$dest_cid_number' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-dest-caller-id-num']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncellreq'>".$text['label-src-num']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"src\" value='$src' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-src-num']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncellreq'>".$text['label-dest-num']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"dest\" value='$dest' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-dest-num']."\n";
echo " </td>\n";
echo "</tr>\n";
echo" <tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-auto-answer']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='auto_answer'>\n";
echo " <option value=''></option>\n";
if ($auto_answer == "true") {
echo " <option value='true' selected='selected'>".$text['label-true']."</option>\n";
}
else {
echo " <option value='true'>".$text['label-true']."</option>\n";
}
if ($auto_answer == "false") {
echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
echo $text['desc-auto-answer']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap>\n";
echo " ".$text['label-record']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='rec'>\n";
echo " <option value=''></option>\n";
if ($rec == "true") {
echo " <option value='true' selected='selected'>".$text['label-true']."</option>\n";
}
else {
echo " <option value='true'>".$text['label-true']."</option>\n";
}
if ($rec == "false") {
echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
echo $text['desc-record']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncellreq' valign='top' align='left' nowrap>\n";
echo " ".$text['label-ringback']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='ringback'>\n";
echo " <option value=''></option>\n";
if ($ringback == "us-ring") {
echo " <option value='us-ring' selected='selected'>".$text['opt-usring']."</option>\n";
}
else {
echo " <option value='us-ring'>".$text['opt-usring']."</option>\n";
}
if ($ringback == "fr-ring") {
echo " <option value='fr-ring' selected='selected'>".$text['opt-frring']."</option>\n";
}
else {
echo " <option value='fr-ring'>".$text['opt-frring']."</option>\n";
}
if ($ringback == "pt-ring") {
echo " <option value='pt-ring' selected='selected'>".$text['opt-ptring']."</option>\n";
}
else {
echo " <option value='pt-ring'>".$text['opt-ptring']."</option>\n";
}
if ($ringback == "uk-ring") {
echo " <option value='uk-ring' selected='selected'>".$text['opt-ukring']."</option>\n";
}
else {
echo " <option value='uk-ring'>".$text['opt-ukring']."</option>\n";
}
if ($ringback == "rs-ring") {
echo " <option value='rs-ring' selected='selected'>".$text['opt-rsring']."</option>\n";
}
else {
echo " <option value='rs-ring'>".$text['opt-rsring']."</option>\n";
}
if ($ringback == "it-ring") {
echo " <option value='it-ring' selected='selected'>".$text['opt-itring']."</option>\n";
}
else {
echo " <option value='it-ring'>".$text['opt-itring']."</option>\n";
}
if ($ringback == "music") {
echo " <option value='music' selected='selected'>".$text['opt-moh']."</option>\n";
}
else {
echo " <option value='music'>".$text['opt-moh']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
echo $text['desc-ringback']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td colspan='2' align='right'>\n";
echo " <br>";
echo " <input type=\"submit\" class='btn' value=\"".$text['button-call']."\">\n";
echo " </td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "<br><br>";
echo "</form>";
//show the footer
require_once "resources/footer.php";
?>
<?php
/* $Id$ */
/*
call.php
Copyright (C) 2008, 2009 Mark J Crane
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
James Rose <james.o.rose@gmail.com>
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('click_to_call_view')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//include the header
require_once "resources/header.php";
if (is_array($_REQUEST) && !empty($_REQUEST['src']) && !empty($_REQUEST['dest'])) {
//get the http variables and set them as variables
$src = check_str($_REQUEST['src']);
$dest = check_str($_REQUEST['dest']);
$ringback = check_str($_REQUEST['ringback']);
$src = str_replace(array('.', '(', ')', '-', ' '), '', $src);
if (strpbrk($dest, '@') != FALSE) {
$dest = str_replace(array('(', ')', ' '), '', $dest); //don't strip periods or dashes in sip-uri calls
}
else {
$dest = str_replace(array('.', '(', ')', '-', ' '), '', $dest); //strip the periods for phone numbers.
}
$src_cid_name = check_str($_REQUEST['src_cid_name']);
$src_cid_number = check_str($_REQUEST['src_cid_number']);
$dest_cid_name = check_str($_REQUEST['dest_cid_name']);
$dest_cid_number = check_str($_REQUEST['dest_cid_number']);
$auto_answer = check_str($_REQUEST['auto_answer']); //true,false
$rec = check_str($_REQUEST['rec']); //true,false
if ($auto_answer == "true") {
$sip_auto_answer = "sip_auto_answer=true,";
}
else {
$sip_auto_answer = '';
}
if (strlen($cid_number) == 0) { $cid_number = $src;}
$context = $_SESSION['context'];
//workaround for TBDialout on Thunderbird
//seems it can only handle the first %NUM%
if ($dest == "%NUM%"){
//echo "Thunderbird fix, dest now = $src_cid_number <br>";
$dest = $src_cid_number;
}
//translate ringback
switch ($ringback) {
case "us-ring":
$ringback_value = "\'%(2000,4000,440.0,480.0)\'";
break;
case "uk-ring":
$ringback_value = "\'%(400,200,400,450);%(400,2200,400,450)\'";
break;
case "fr-ring":
$ringback_value = "\'%(1500,3500,440.0,0.0)\'";
break;
case "pt-ring":
$ringback_value = "\'%(1000,5000,400.0,0.0)\'";
break;
case "rs-ring":
$ringback_value = "\'%(1000,4000,425.0,0.0)\'";
break;
case "it-ring":
$ringback_value = "\'%(1000,4000,425.0,0.0)\'";
break;
case "music":
$ringback_value = "\'local_stream://moh\'";
break;
default:
$ringback = 'us-ring';
$ringback_value = "\'%(2000,4000,440.0,480.0)\'";
}
//source should see the destination caller id
if (strlen($src) < 7) {
$source = "{click_to_call=true,".$sip_auto_answer."origination_caller_id_name='$src_cid_name',origination_caller_id_number=$src_cid_number,instant_ringback=true,ringback=$ringback_value,presence_id=$src@".$_SESSION['domains'][$domain_uuid]['domain_name'].",call_direction=outbound,domain_uuid=".$domain_uuid.",domain_name=".$_SESSION['domains'][$domain_uuid]['domain_name']."}user/$src@".$_SESSION['domains'][$domain_uuid]['domain_name'];
}
else {
$bridge_array = outbound_route_to_bridge ($_SESSION['domain_uuid'], $src);
$source = "{click_to_call=true,origination_caller_id_name='$src_cid_name',origination_caller_id_number=$src_cid_number,instant_ringback=true,ringback=$ringback_value,presence_id=$src@".$_SESSION['domains'][$domain_uuid]['domain_name'].",call_direction=outbound}".$bridge_array[0];
}
//destination needs to see the source caller id
if (strlen($dest) < 7) {
if (strpbrk($dest, '@') != FALSE) {
//echo "Found an @ 2<br><br>";
$switch_cmd = "api originate $source &bridge({origination_caller_id_name='$dest_cid_name',origination_caller_id_number=$dest_cid_number,call_direction=outbound}sofia/external/$dest)";
echo "$switch_cmd";
}
else {
$switch_cmd = "api originate $source &transfer('".$dest." XML ".$context."')";
}
}
else {
if (strlen($src) < 7) {
if (strlen($dest_cid_number) == 0) {
//get the caller id from the extension caller id comes from the extension (the source number)
$sql = "select * from v_extensions ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and extension = '$src' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$dest_cid_name = $row["outbound_caller_id_name"];
$dest_cid_number = $row["outbound_caller_id_number"];
break; //limit to 1 row
}
unset ($prep_statement);
}
}
$bridge_array = outbound_route_to_bridge ($_SESSION['domain_uuid'], $dest);
$destination = "{origination_caller_id_name='$dest_cid_name',origination_caller_id_number=$dest_cid_number}".$bridge_array[0];
if (permission_exists('click_to_call_call')) {
if (strpbrk($dest, '@') != FALSE) {
//call a sip uri
//echo "Found an @ 4, do nothing for now<br><br>";
$switch_cmd = "api originate $source &bridge({origination_caller_id_name='$dest_cid_name',origination_caller_id_number=$dest_cid_number,call_direction=outbound}sofia/external/$dest)";
//echo "<br>SWITCH-CMD: $switch_cmd<br>";
}
else {
//regular call
$switch_cmd = "api originate $source &bridge($destination)";
}
}
}
//display the last command
echo "<div align='center'>\n";
echo "<table width='40%'>\n";
echo "<tr>\n";
echo "<th align='left'>Message</th>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='row_style1'><strong>$switch_cmd $src has called $dest</strong></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</div>\n";
//create the even socket connection and send the event socket command
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if (!$fp) {
//show the error message
$msg = "<div align='center'>Connection to Event Socket failed.<br /></div>";
echo "<div align='center'>\n";
echo "<table width='40%'>\n";
echo "<tr>\n";
echo " <th align='left'>Message</th>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='row_style1'><strong>$msg</strong></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</div>\n";
}
else {
//show the command result
$result = trim(event_socket_request($fp, $switch_cmd));
if (substr($result, 0,3) == "+OK") {
$uuid = substr($result, 4);
if ($rec == "true") {
//use the server's time zone to ensure it matches the time zone used by freeswitch
date_default_timezone_set($_SESSION['time_zone']['system']);
//create the api record command and send it over event socket
$switch_cmd = "api uuid_record ".$uuid." start ".$_SESSION['switch']['recordings']['dir']."/archive/".date("Y")."/".date("M")."/".date("d")."/".$uuid.".wav";
$result2 = trim(event_socket_request($fp, $switch_cmd));
}
}
echo "<div align='center'>\n";
echo "<br />\n";
echo $result;
echo "<br />\n";
echo "<br />\n";
echo "</div>\n";
}
}
//show html form
echo " <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo " <tr>\n";
echo " <td align='left'>\n";
echo " <span class=\"title\">\n";
echo " <strong>".$text['label-click2call']."</strong>\n";
echo " </span>\n";
echo " </td>\n";
echo " <td align='right'>\n";
echo " &nbsp;\n";
echo " </td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td align='left' colspan='2'>\n";
echo " <span class=\"vexpl\">\n";
echo " ".$text['desc-click2call']."\n";
echo " </span>\n";
echo " </td>\n";
echo "\n";
echo " </tr>\n";
echo " </table>";
echo " <br />";
echo "<form>\n";
echo "<table border='0' width='100%' cellpadding='0' cellspacing='0'\n";
echo "<tr>\n";
echo " <td class='vncellreq' width='40%'>".$text['label-src-caller-id-nam']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"src_cid_name\" value='$src_cid_name' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-src-caller-id-nam']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncellreq'>".$text['label-src-caller-id-num']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"src_cid_number\" value='$src_cid_number' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-src-caller-id-num']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncell' width='40%'>".$text['label-dest-caller-id-nam']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"dest_cid_name\" value='$dest_cid_name' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-dest-caller-id-nam']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncell'>".$text['label-dest-caller-id-num']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"dest_cid_number\" value='$dest_cid_number' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-dest-caller-id-num']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncellreq'>".$text['label-src-num']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"src\" value='$src' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-src-num']."\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td class='vncellreq'>".$text['label-dest-num']."</td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <input name=\"dest\" value='$dest' class='formfld'>\n";
echo " <br />\n";
echo " ".$text['desc-dest-num']."\n";
echo " </td>\n";
echo "</tr>\n";
echo" <tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-auto-answer']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='auto_answer'>\n";
echo " <option value=''></option>\n";
if ($auto_answer == "true") {
echo " <option value='true' selected='selected'>".$text['label-true']."</option>\n";
}
else {
echo " <option value='true'>".$text['label-true']."</option>\n";
}
if ($auto_answer == "false") {
echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
echo $text['desc-auto-answer']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap>\n";
echo " ".$text['label-record']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='rec'>\n";
echo " <option value=''></option>\n";
if ($rec == "true") {
echo " <option value='true' selected='selected'>".$text['label-true']."</option>\n";
}
else {
echo " <option value='true'>".$text['label-true']."</option>\n";
}
if ($rec == "false") {
echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
echo $text['desc-record']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncellreq' valign='top' align='left' nowrap>\n";
echo " ".$text['label-ringback']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='ringback'>\n";
echo " <option value=''></option>\n";
if ($ringback == "us-ring") {
echo " <option value='us-ring' selected='selected'>".$text['opt-usring']."</option>\n";
}
else {
echo " <option value='us-ring'>".$text['opt-usring']."</option>\n";
}
if ($ringback == "fr-ring") {
echo " <option value='fr-ring' selected='selected'>".$text['opt-frring']."</option>\n";
}
else {
echo " <option value='fr-ring'>".$text['opt-frring']."</option>\n";
}
if ($ringback == "pt-ring") {
echo " <option value='pt-ring' selected='selected'>".$text['opt-ptring']."</option>\n";
}
else {
echo " <option value='pt-ring'>".$text['opt-ptring']."</option>\n";
}
if ($ringback == "uk-ring") {
echo " <option value='uk-ring' selected='selected'>".$text['opt-ukring']."</option>\n";
}
else {
echo " <option value='uk-ring'>".$text['opt-ukring']."</option>\n";
}
if ($ringback == "rs-ring") {
echo " <option value='rs-ring' selected='selected'>".$text['opt-rsring']."</option>\n";
}
else {
echo " <option value='rs-ring'>".$text['opt-rsring']."</option>\n";
}
if ($ringback == "it-ring") {
echo " <option value='it-ring' selected='selected'>".$text['opt-itring']."</option>\n";
}
else {
echo " <option value='it-ring'>".$text['opt-itring']."</option>\n";
}
if ($ringback == "music") {
echo " <option value='music' selected='selected'>".$text['opt-moh']."</option>\n";
}
else {
echo " <option value='music'>".$text['opt-moh']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
echo $text['desc-ringback']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td colspan='2' align='right'>\n";
echo " <br>";
echo " <input type=\"submit\" class='btn' value=\"".$text['button-call']."\">\n";
echo " </td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "<br><br>";
echo "</form>";
//show the footer
require_once "resources/footer.php";
?>
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
+40 -42
View File
@@ -17,7 +17,7 @@
$apps[$x]['description']['fr-ca'] = "";
$apps[$x]['description']['fr-ch'] = "";
$apps[$x]['description']['pt-pt'] = "O centro de conferências permite gerir uma ou mais salas de conferência, audio e vídeo.";
$apps[$x]['description']['pt-br'] = "O centro de conferências permite gerir uma ou mais salas de conferência de audio e vídeo.";
$apps[$x]['description']['pt-br'] = "";
//destination details
$y = 0;
@@ -58,10 +58,6 @@
$apps[$x]['permissions'][$y]['groups'][] = "admin";
$apps[$x]['permissions'][$y]['groups'][] = "user";
$y++;
$apps[$x]['permissions'][$y]['name'] = "conference_room_view_all";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$apps[$x]['permissions'][$y]['groups'][] = "admin";
$y++;
$apps[$x]['permissions'][$y]['name'] = "conference_room_add";
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
$apps[$x]['permissions'][$y]['groups'][] = "admin";
@@ -196,32 +192,26 @@
$apps[$x]['db'][$y]['fields'][$z]['name'] = "conference_center_name";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enter the conference center name.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com o nome do centro de conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "conference_center_extension";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enter the conference center extension number.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com o ramal do centro de conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "conference_center_pin_length";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enter the pin length.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Informe o tamanho do código PIN.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "conference_center_greeting";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enter the conference greeting.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com as boas-vindas da conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "conference_center_description";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enter the center description.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com a descrição do centro de conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "conference_center_enabled";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enable or disable the conference center.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Habilite ou desabilite o centro de conferência.";
$y = 1; //table array index
$z = 0; //field array index
@@ -248,7 +238,6 @@
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_conference_centers";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "conference_center_uuid";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Conference UUID";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Identificador universal único do centro de conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "meeting_uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "uuid";
@@ -258,79 +247,63 @@
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_meetings";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "meeting_uuid";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Meeting UUID";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Identificador universal único do encontro/reunião.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "conference_room_name";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enter the conference room name.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Entre com o nome da sala de conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "profile";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Select the conference profile.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Selecione o perfil da conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "record";
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "recording";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Select whether to record the conference.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Selecione se deseja gravar a conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "max_members";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Limit number of people in the conference.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Número máximo de pessoas na conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "start_datetime";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Open the conference room at the start time.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Abra a sala de conferência na hora de início.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "stop_datetime";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Close the conference room at the stop time.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Fecha a sala de conferência na hora do término.";
$z++;
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "wait_mod";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Wait for the moderator to join before starting the conference.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Esperar pelo moderador se juntar antes de começar a conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "announce";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Introduce participants as they enter the conference.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Anunciar os participantes a medida que entram na conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "sounds";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Play sound when someone enters or exists the conference.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Tocar um som quando alguém entrar ou sair da conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "mute";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Mute participants on entering the conference.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Silenciar participantes ao entrar na conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "created";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Date when the conference was created.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Data de quando a conferência foi criada.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "created_by";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "The user that created the conference session.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Usuário que criou está conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "enabled";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Select to enable or disable the session.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Habilitar ou desabilitar a sessão de conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "description";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Description.for the conference session.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Descrição para a sessão de conferência.";
$z++;
$y = 2; //table array index
@@ -358,27 +331,22 @@
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_meetings";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "meeting_uuid";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "meeting_uuid";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "meeting_uuid (identificador de reunião)";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "profile";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Select the conference profile.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Selecione o perfil da conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "recording";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Conference Recording";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Gravações da conferência.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "start_epoch";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "start_epoch";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Início do período.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "end_epoch";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "end_epoch";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Fim do período.";
$z++;
$y = 3; //table array index
@@ -414,49 +382,79 @@
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_meetings";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "meeting_uuid";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "meeting_uuid";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "meeting_uuid";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "username";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Extension number.";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Ramal.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "caller_id_name";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "caller_id_name";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Nome da pessoa que liga";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "caller_id_number";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "caller_id_number";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Nome da pessoa que liga";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Call UUID";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Identificador único da chamada.";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "moderator";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Moderator";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Moderador";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "network_addr";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "network address";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Endereço de rede";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "start_epoch";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "start_epoch";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Início do período";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "end_epoch";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "end_epoch";
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = "Fim do período";
$z++;
/*
$y = 4; //table array index
$z = 0; //field array index
$apps[$x]['db'][$y]['table'] = "v_conference_center_users";
$apps[$x]['db'][$y]['fields'][$z]['name'] = "conference_user_uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)";
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = "primary";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "domain_uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)";
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = "foreign";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_domains";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "domain_uuid";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "conference_center_uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)";
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = "foreign";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_conference_centers";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "conference_uuid";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "user_uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "uuid";
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)";
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = "foreign";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_users";
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "user_uuid";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
*/
?>
+190 -30
View File
@@ -44,7 +44,7 @@ $text['title-conference_centers']['en-us'] = "Conference Centers";
$text['title-conference_centers']['es-cl'] = "Centro de Conferencias";
$text['title-conference_centers']['pt-pt'] = "Centro de Conferências";
$text['title-conference_centers']['fr-fr'] = "Conférences";
$text['title-conference_centers']['pt-br'] = "Centros de conferência";
$text['title-conference_centers']['pt-br'] = "Centro de conferências ";
$text['title-conference_centers']['pl'] = "Centra Konferencyjne";
$text['title-conference_centers']['sv-se'] = "Konferenscenter";
$text['title-conference_centers']['uk'] = "Конференц-центри";
@@ -60,11 +60,21 @@ $text['title-conference_center']['sv-se'] = "Konferenscenter";
$text['title-conference_center']['uk'] = "Конференц-центр";
$text['title-conference_center']['de-at'] = "Konferenz Zentrale";
$text['message-update']['en-us'] = "Update Completed";
$text['message-update']['es-cl'] = "Actualización Completada";
$text['message-update']['pt-pt'] = "Actualização Efectuada";
$text['message-update']['fr-fr'] = "Mis à jour";
$text['message-update']['pt-br'] = "Atualização Efetuada";
$text['message-update']['pl'] = "Zaktualizowano poprawnie";
$text['message-update']['sv-se'] = "Uppdatering Klar";
$text['message-update']['uk'] = "Оновлено";
$text['message-update']['de-at'] = "Aktualisierung durchgeführt";
$text['message-unique_participant_pin']['en-us'] = "Please provide a unique Participant PIN number.";
$text['message-unique_participant_pin']['es-cl'] = "Por favor ingrese su número PIN participante único.";
$text['message-unique_participant_pin']['pt-pt'] = "Por favor, forneça um número PIN Participante único.";
$text['message-unique_participant_pin']['fr-fr'] = "Se il vous plaît fournir un numéro unique PIN de participant.";
$text['message-unique_participant_pin']['pt-br'] = "Por favor, forneça um PIN único de participante.";
$text['message-unique_participant_pin']['pt-br'] = "Por favor, forneça um número PIN para participar da conferência";
$text['message-unique_participant_pin']['pl'] = "Wprowadź unikalny numer PIN uczestnika";
$text['message-unique_participant_pin']['sv-se'] = "Ange en unik PIN kod för deltagare.";
$text['message-unique_participant_pin']['uk'] = "Будь ласка, надайте унікальний PIN-код для учасника";
@@ -84,7 +94,7 @@ $text['message-non_unique_pin']['en-us'] = "Moderator and Participant PIN number
$text['message-non_unique_pin']['es-cl'] = "Moderador números PIN y participante deben ser únicos.";
$text['message-non_unique_pin']['pt-pt'] = "Moderador números e PIN Participante deve ser exclusivo.";
$text['message-non_unique_pin']['fr-fr'] = "Numéros de modérateur et de PIN de participant doivent être uniques.";
$text['message-non_unique_pin']['pt-br'] = "O número do PIN de participante deve ser único";
$text['message-non_unique_pin']['pt-br'] = "O número do PIN de participante deve ser exclusivo";
$text['message-non_unique_pin']['pl'] = "Numery PIN uczestnika i moderatora muszą buć unikalne.";
$text['message-non_unique_pin']['sv-se'] = "Moderator och Deltagar PIN koder måste vara unika.";
$text['message-non_unique_pin']['uk'] = "PIN-коди модератора і учасника повинні бути унікальними.";
@@ -94,17 +104,37 @@ $text['message-minimum_pin_length']['en-us'] = "Minimum PIN length required:";
$text['message-minimum_pin_length']['es-cl'] = "Longitud PIN mínima requerida:";
$text['message-minimum_pin_length']['pt-pt'] = "Comprimento PIN Requisitos mínimos:";
$text['message-minimum_pin_length']['fr-fr'] = "Longueur de PIN minimum requis:";
$text['message-minimum_pin_length']['pt-br'] = "Tamanho mínimo do PIN:";
$text['message-minimum_pin_length']['pt-br'] = "Tamanho minimo do PIN";
$text['message-minimum_pin_length']['pl'] = "Minimalna długość kodu PIN:";
$text['message-minimum_pin_length']['sv-se'] = "Minimum läng på PIN:";
$text['message-minimum_pin_length']['uk'] = "Мінімальна довжина PIN-коду:";
$text['message-minimum_pin_length']['de-at'] = "Minimale PIN länge erforderlich:";
$text['message-delete']['en-us'] = "Delete Completed";
$text['message-delete']['es-cl'] = "Eliminación Completada";
$text['message-delete']['pt-pt'] = "Remoção Efectuada";
$text['message-delete']['fr-fr'] = "Supprimé";
$text['message-delete']['pt-br'] = "Remoção Efetuada";
$text['message-delete']['pl'] = "Usunięto poprawnie";
$text['message-delete']['sv-se'] = "Borttagning Klar";
$text['message-delete']['uk'] = "Видалено";
$text['message-delete']['de-at'] = "Erfolgreich gelöscht";
$text['message-add']['en-us'] = "Add Completed";
$text['message-add']['es-cl'] = "Agregar Completado";
$text['message-add']['pt-pt'] = "Adição Efectuada";
$text['message-add']['fr-fr'] = "Ajouté";
$text['message-add']['pt-br'] = "Criação Efetuada";
$text['message-add']['pl'] = "Dodano poprawnie";
$text['message-add']['sv-se'] = "Tillagd";
$text['message-add']['uk'] = "Додано";
$text['message-add']['de-at'] = "Erfolgreich hinzugefügt";
$text['label-wait_moderator']['en-us'] = "Secure";
$text['label-wait_moderator']['es-cl'] = "Seguro";
$text['label-wait_moderator']['pt-pt'] = "Proteger";
$text['label-wait_moderator']['fr-fr'] = "Assurer";
$text['label-wait_moderator']['pt-br'] = "Seguro";
$text['label-wait_moderator']['pt-br'] = "Proteger";
$text['label-wait_moderator']['pl'] = "Zabezpieczenie";
$text['label-wait_moderator']['sv-se'] = "Säker";
$text['label-wait_moderator']['uk'] = "Захищено";
@@ -114,7 +144,7 @@ $text['label-wait_for_moderator']['en-us'] = "Wait for Moderator";
$text['label-wait_for_moderator']['es-cl'] = "Esperar un Moderador";
$text['label-wait_for_moderator']['pt-pt'] = "Esperar pelo Moderador";
$text['label-wait_for_moderator']['fr-fr'] = "Attente du Modérateur";
$text['label-wait_for_moderator']['pt-br'] = "Esperar pelo moderador";
$text['label-wait_for_moderator']['pt-br'] = "Esperar pelo administrador";
$text['label-wait_for_moderator']['pl'] = "Zaczekaj na moderatora";
$text['label-wait_for_moderator']['sv-se'] = "Vänta på Moderator";
$text['label-wait_for_moderator']['uk'] = "Очікування на модератора";
@@ -134,7 +164,7 @@ $text['label-uuid']['en-us'] = "UUID";
$text['label-uuid']['es-cl'] = "UUID";
$text['label-uuid']['pt-pt'] = "UUID";
$text['label-uuid']['fr-fr'] = "UUID";
$text['label-uuid']['pt-br'] = "UUID (Identificador único)";
$text['label-uuid']['pt-br'] = "UUID";
$text['label-uuid']['pl'] = "UUID";
$text['label-uuid']['sv-se'] = "UUID";
$text['label-uuid']['uk'] = "UUID";
@@ -160,6 +190,16 @@ $text['label-username']['sv-se'] = "Användarnamn";
$text['label-username']['uk'] = "Ім’я користувача";
$text['label-username']['de-at'] = "Benutzername";
$text['label-true']['en-us'] = "True";
$text['label-true']['es-cl'] = "Verdadero";
$text['label-true']['pt-pt'] = "Sim";
$text['label-true']['fr-fr'] = "Oui";
$text['label-true']['pt-br'] = "Sim";
$text['label-true']['pl'] = "Tak";
$text['label-true']['sv-se'] = "Sann";
$text['label-true']['uk'] = "Так";
$text['label-true']['de-at'] = "Ein";
$text['label-tools']['en-us'] = "Tools";
$text['label-tools']['es-cl'] = "Herramientas";
$text['label-tools']['pt-pt'] = "Ferramentas";
@@ -174,7 +214,7 @@ $text['label-to']['en-us'] = "To";
$text['label-to']['es-cl'] = "Final";
$text['label-to']['pt-pt'] = "Final";
$text['label-to']['fr-fr'] = "Fin";
$text['label-to']['pt-br'] = "Até";
$text['label-to']['pt-br'] = "Final";
$text['label-to']['pl'] = "Do";
$text['label-to']['sv-se'] = "Till";
$text['label-to']['uk'] = "До";
@@ -184,7 +224,7 @@ $text['label-time']['en-us'] = "Time";
$text['label-time']['es-cl'] = "Hora";
$text['label-time']['pt-pt'] = "Hora";
$text['label-time']['fr-fr'] = "Heure";
$text['label-time']['pt-br'] = "Hora";
$text['label-time']['pt-br'] = "Fuso Horário";
$text['label-time']['pl'] = "Strefa czasowa";
$text['label-time']['sv-se'] = "Tid";
$text['label-time']['uk'] = "Час";
@@ -224,7 +264,7 @@ $text['label-schedule']['en-us'] = "Schedule";
$text['label-schedule']['es-cl'] = "Horario";
$text['label-schedule']['pt-pt'] = "Horário";
$text['label-schedule']['fr-fr'] = "Calendrier";
$text['label-schedule']['pt-br'] = "Cronograma";
$text['label-schedule']['pt-br'] = "Horário";
$text['label-schedule']['pl'] = "Harmonogram";
$text['label-schedule']['sv-se'] = "Schema";
$text['label-schedule']['uk'] = "Розклад";
@@ -254,7 +294,7 @@ $text['label-record']['en-us'] = "Record";
$text['label-record']['es-cl'] = "Grabar";
$text['label-record']['pt-pt'] = "Gravar";
$text['label-record']['fr-fr'] = "Enregistrer";
$text['label-record']['pt-br'] = "Gravar";
$text['label-record']['pt-br'] = "Registro";
$text['label-record']['pl'] = "Nagraj";
$text['label-record']['sv-se'] = "Spela In";
$text['label-record']['uk'] = "Запис";
@@ -274,7 +314,7 @@ $text['label-play']['en-us'] = "Play";
$text['label-play']['es-cl'] = "Reproducir";
$text['label-play']['pt-pt'] = "Tocar";
$text['label-play']['fr-fr'] = "Jouer";
$text['label-play']['pt-br'] = "Reproduzir";
$text['label-play']['pt-br'] = "Tocar";
$text['label-play']['pl'] = "Odtwórz";
$text['label-play']['sv-se'] = "Spela Upp";
$text['label-play']['uk'] = "Відтворити";
@@ -310,6 +350,16 @@ $text['label-network-address']['sv-se'] = "Nätverks-adress";
$text['label-network-address']['uk'] = "Адреса мережі";
$text['label-network-address']['de-at'] = "Netzwerk Adresse";
$text['label-name']['en-us'] = "Name";
$text['label-name']['es-cl'] = "Nombre";
$text['label-name']['pt-pt'] = "Nome";
$text['label-name']['fr-fr'] = "Nom";
$text['label-name']['pt-br'] = "Nome";
$text['label-name']['pl'] = "Nazwa";
$text['label-name']['sv-se'] = "Namn";
$text['label-name']['uk'] = "Назва";
$text['label-name']['de-at'] = "Name";
$text['label-mute']['en-us'] = "Mute";
$text['label-mute']['es-cl'] = "Mudo";
$text['label-mute']['pt-pt'] = "Silenciar";
@@ -374,7 +424,7 @@ $text['label-member-pin']['en-us'] = "PIN Numbers";
$text['label-member-pin']['es-cl'] = "Números PIN";
$text['label-member-pin']['pt-pt'] = "Números PIN";
$text['label-member-pin']['fr-fr'] = "Code Membre";
$text['label-member-pin']['pt-br'] = "Número PIN";
$text['label-member-pin']['pt-br'] = "Número PIUN";
$text['label-member-pin']['pl'] = "Numery PIN";
$text['label-member-pin']['sv-se'] = "PIN Kod";
$text['label-member-pin']['uk'] = "PIN ";
@@ -404,12 +454,22 @@ $text['label-from']['en-us'] = "From";
$text['label-from']['es-cl'] = "Desde";
$text['label-from']['pt-pt'] = "A Partir De";
$text['label-from']['fr-fr'] = "A Partir De";
$text['label-from']['pt-br'] = "De";
$text['label-from']['pt-br'] = "Começo";
$text['label-from']['pl'] = "Od";
$text['label-from']['sv-se'] = "Från";
$text['label-from']['uk'] = "Від";
$text['label-from']['de-at'] = "Von";
$text['label-false']['en-us'] = "False";
$text['label-false']['es-cl'] = "Falso";
$text['label-false']['pt-pt'] = "Não";
$text['label-false']['fr-fr'] = "Non";
$text['label-false']['pt-br'] = "Não";
$text['label-false']['pl'] = "Nie";
$text['label-false']['sv-se'] = "Falsk";
$text['label-false']['uk'] = "Ні";
$text['label-false']['de-at'] = "Aus";
$text['label-extension']['en-us'] = "Extension";
$text['label-extension']['es-cl'] = "Extensión";
$text['label-extension']['pt-pt'] = "Extensão";
@@ -424,7 +484,7 @@ $text['label-exit-sound']['en-us'] = "Exit Sound";
$text['label-exit-sound']['es-cl'] = "Sonido de salida";
$text['label-exit-sound']['pt-pt'] = "Desligar Som";
$text['label-exit-sound']['fr-fr'] = "Sons de sortie";
$text['label-exit-sound']['pt-br'] = "Som de saída";
$text['label-exit-sound']['pt-br'] = "Desligar som";
$text['label-exit-sound']['pl'] = "Dźwięk przy wyjściu";
$text['label-exit-sound']['sv-se'] = "Avslutningsljud";
$text['label-exit-sound']['uk'] = "Мелодія при виході";
@@ -450,6 +510,16 @@ $text['label-end']['sv-se'] = "Slut";
$text['label-end']['uk'] = "Кінець";
$text['label-end']['de-at'] = "Ende";
$text['label-enabled']['en-us'] = "Enabled";
$text['label-enabled']['es-cl'] = "Activo";
$text['label-enabled']['pt-pt'] = "Activo";
$text['label-enabled']['fr-fr'] = "Actif";
$text['label-enabled']['pt-br'] = "Habilitado";
$text['label-enabled']['pl'] = "Włączony";
$text['label-enabled']['sv-se'] = "Aktiverad";
$text['label-enabled']['uk'] = "Включено";
$text['label-enabled']['de-at'] = "An";
$text['label-edit']['en-us'] = "Edit";
$text['label-edit']['es-cl'] = "Editar";
$text['label-edit']['pt-pt'] = "Editar";
@@ -480,6 +550,26 @@ $text['label-details']['sv-se'] = "Detaljer";
$text['label-details']['uk'] = "Деталі";
$text['label-details']['de-at'] = "Details";
$text['label-description']['en-us'] = "Description";
$text['label-description']['es-cl'] = "Descripción";
$text['label-description']['pt-pt'] = "Descrição";
$text['label-description']['fr-fr'] = "Description";
$text['label-description']['pt-br'] = "Descrição";
$text['label-description']['pl'] = "Opis";
$text['label-description']['sv-se'] = "Beskrivning";
$text['label-description']['uk'] = "Опис";
$text['label-description']['de-at'] = "Beschreibung";
$text['label-delete']['en-us'] = "Delete";
$text['label-delete']['es-cl'] = "Eliminar";
$text['label-delete']['pt-pt'] = "Remover";
$text['label-delete']['fr-fr'] = "Supprimer";
$text['label-delete']['pt-br'] = "Remover";
$text['label-delete']['pl'] = "Usuń";
$text['label-delete']['sv-se'] = "Ta Bort";
$text['label-delete']['uk'] = "Видалити";
$text['label-delete']['de-at'] = "Löschen";
$text['label-conference_name']['en-us'] = "Conference Name";
$text['label-conference_name']['es-cl'] = "Nombre de la conferencia";
$text['label-conference_name']['pt-pt'] = "Nome da Conferência";
@@ -504,7 +594,7 @@ $text['label-caller-id-number']['en-us'] = "Caller ID Number";
$text['label-caller-id-number']['es-cl'] = "Número de Caller ID";
$text['label-caller-id-number']['pt-pt'] = "Número do Chamador";
$text['label-caller-id-number']['fr-fr'] = "Numéro d'appelant";
$text['label-caller-id-number']['pt-br'] = "Número (ID) da pessoa que chama";
$text['label-caller-id-number']['pt-br'] = "Número da pessoa que chama";
$text['label-caller-id-number']['pl'] = "Prezentacja numeru dzwoniącego";
$text['label-caller-id-number']['sv-se'] = "Nummerpresentation";
$text['label-caller-id-number']['uk'] = "Caller ID Номер";
@@ -514,7 +604,7 @@ $text['label-caller-id-name']['en-us'] = "Caller ID Name";
$text['label-caller-id-name']['es-cl'] = "Nombre de Caller ID";
$text['label-caller-id-name']['pt-pt'] = "Nome do Chamador";
$text['label-caller-id-name']['fr-fr'] = "Nom d'appelant";
$text['label-caller-id-name']['pt-br'] = "Nome de quem chama";
$text['label-caller-id-name']['pt-br'] = "Nome do discador";
$text['label-caller-id-name']['pl'] = "Prezentacja nazwy dzwoniącego";
$text['label-caller-id-name']['sv-se'] = "Namnpresentation";
$text['label-caller-id-name']['uk'] = "Caller ID Ім’я";
@@ -534,7 +624,7 @@ $text['description-users']['en-us'] = "Assign additional users as administrators
$text['description-users']['es-cl'] = "Asignar usuarios adicionales como administradores de esta sala de conferencia.";
$text['description-users']['pt-pt'] = "Atribuir utilizadores adicionais como administradores da sala de conferência.";
$text['description-users']['fr-fr'] = "Ajouter des utilisateurs comme administrateurs des cette salle de conférence.";
$text['description-users']['pt-br'] = "Atribuir usuários adicionais como administradores da sala de conferência.";
$text['description-users']['pt-br'] = "Atribuir usuários adicionais como administradores da sala de conferência. ";
$text['description-users']['pl'] = "'Dodaj dodatkowych użytkowników jako administratorów tego pokoju konferencyjnego.";
$text['description-users']['sv-se'] = "Lägg till ytterligare användare som administratörer för detta konferensrum.";
$text['description-users']['uk'] = "Зв'язати додаткових користувачів як адміністраторів цього конференц-залу.";
@@ -544,7 +634,7 @@ $text['description-schedule']['en-us'] = "Set a start and stop date/time for thi
$text['description-schedule']['es-cl'] = "Establezca un inicio y parada de fecha/hora para esta sala.";
$text['description-schedule']['pt-pt'] = "Definir uma partida e parada de data/hora para este quarto.";
$text['description-schedule']['fr-fr'] = "Définir un démarrage et d'arrêt de date/heure pour cette chambre.";
$text['description-schedule']['pt-br'] = "Defnir inicio e fim (Data/Hora) para esta sala.";
$text['description-schedule']['pt-br'] = "Defnir inicio e fim (Data/Hora) para este quarto";
$text['description-schedule']['pl'] = "Ustaw czas i datę rozpoczęcia i zakończenia rozmowy w tym pokoju.";
$text['description-schedule']['sv-se'] = "Sätt en start och stopp datum/tid för detta rum.";
$text['description-schedule']['uk'] = "Встановіть час початку/завершення для цієї кімнати.";
@@ -564,7 +654,7 @@ $text['description-profile']['en-us'] = "Conference Profile is a collection of s
$text['description-profile']['es-cl'] = "El Perfil de Conferencia es una colección de ajustes para el centro de conferencia.";
$text['description-profile']['pt-pt'] = "Perfil da Conferência é um conjunto de definições para o centro de conferência.";
$text['description-profile']['fr-fr'] = "Le profile de conférence est une liste de configuration pour les conférences. ";
$text['description-profile']['pt-br'] = "Perfil de conferência é uma coleção de configurações para o centro de conferência.";
$text['description-profile']['pt-br'] = "Defina as configurações para este perfil";
$text['description-profile']['pl'] = "Zdefiniuj ustawienia tego profilu";
$text['description-profile']['sv-se'] = "Konferensprofil är en samling av inställningar för konferens centret.";
$text['description-profile']['uk'] = "Профіль конференції є колекція налаштувань для конференц-центру.";
@@ -574,7 +664,7 @@ $text['description-pin-length']['en-us'] = "Enter the minimum PIN length.";
$text['description-pin-length']['es-cl'] = "Ingrese el largo de PIN requerido.";
$text['description-pin-length']['pt-pt'] = "Introduza o tamanho do código PIN";
$text['description-pin-length']['fr-fr'] = "Choisir la longueur requise pour le code d'authentification.";
$text['description-pin-length']['pt-br'] = "Insira o tamanho mínimo do código PIN.";
$text['description-pin-length']['pt-br'] = "Insira o tamanho do código PIN";
$text['description-pin-length']['pl'] = "Wprowadź minimalną długość numeru PIN";
$text['description-pin-length']['sv-se'] = "Ange minimum PIN längd.";
$text['description-pin-length']['uk'] = "Введіть мінімальну довжину PIN-коду.";
@@ -584,7 +674,7 @@ $text['description-participant-pin']['en-us'] = "Pin number for the participants
$text['description-participant-pin']['es-cl'] = "Número PIN para participantes";
$text['description-participant-pin']['pt-pt'] = "Número PIN para os participantes.";
$text['description-participant-pin']['fr-fr'] = "Code PIN des participants.";
$text['description-participant-pin']['pt-br'] = "Número PIN para os participantes.";
$text['description-participant-pin']['pt-br'] = "Número PIN";
$text['description-participant-pin']['pl'] = "Numer PIN dla uczestników";
$text['description-participant-pin']['sv-se'] = "PIN kod för deltagare";
$text['description-participant-pin']['uk'] = "PIN-код для учасників.";
@@ -594,7 +684,7 @@ $text['description-name']['en-us'] = "Enter the conference center name.";
$text['description-name']['es-cl'] = "Ingrese el nombre del centro de conferencia";
$text['description-name']['pt-pt'] = "Introduza o nome do centro de conferência";
$text['description-name']['fr-fr'] = "Choisir le nom de la conférence.";
$text['description-name']['pt-br'] = "Insira o nome do centro de conferência.";
$text['description-name']['pt-br'] = "Insira o nome do menu";
$text['description-name']['pl'] = "Wprowadź nazwę";
$text['description-name']['sv-se'] = "Ange namn på konferenscenter.";
$text['description-name']['uk'] = "Введіть назву конференц-ценру";
@@ -604,7 +694,7 @@ $text['description-moderator_pin']['en-us'] = "Pin number for the moderators.";
$text['description-moderator_pin']['es-cl'] = "Número PIN para moderadores";
$text['description-moderator_pin']['pt-pt'] = "Número PIN para os moderadores.";
$text['description-moderator_pin']['fr-fr'] = "Code PIN des modérateurs.";
$text['description-moderator_pin']['pt-br'] = "Número PIN para os moderadores.";
$text['description-moderator_pin']['pt-br'] = "Número PIN para os usuários";
$text['description-moderator_pin']['pl'] = "Numer PIN dla moderatorów";
$text['description-moderator_pin']['sv-se'] = "PIN kod för moderator.";
$text['description-moderator_pin']['uk'] = "PIN-код для модераторів.";
@@ -614,7 +704,7 @@ $text['description-greeting']['en-us'] = "Select the greeting that is played bef
$text['description-greeting']['es-cl'] = "Seleccione el saludo que se juega antes de unirse a la sala de conferencias.";
$text['description-greeting']['pt-pt'] = "Selecione a saudação que é jogado antes de entrar para a sala de conferência.";
$text['description-greeting']['fr-fr'] = "Sélectionnez le message qui a joué avant de rejoindre la salle de conférence.";
$text['description-greeting']['pt-br'] = "Selecione a mensagem de boas-vindas que será exibida antes de entrar na sala de conferência.";
$text['description-greeting']['pt-br'] = "Selecione a mensagem que será exibida antes de entrar na sala de conferência";
$text['description-greeting']['pl'] = "Wybierz powitanie odtwarzane przed wejściem do pokoju konferencyjnego.";
$text['description-greeting']['sv-se'] = "Välj hälsningsmeddelande som skall spelas upp före anslutning till konferensrummet.";
$text['description-greeting']['uk'] = "Виберіть привітання, яке грає до вступу в конференц-зал.";
@@ -624,7 +714,7 @@ $text['description-extension']['en-us'] = "Enter the conference center extension
$text['description-extension']['es-cl'] = "Ingrese el número de extensión del centro de conferencia";
$text['description-extension']['pt-pt'] = "Introduza o número da extensão do centro de conferência.";
$text['description-extension']['fr-fr'] = "Choisir le numéro de la conférence. ";
$text['description-extension']['pt-br'] = "Entre com o ramal do centro de conferência.";
$text['description-extension']['pt-br'] = "Atribua a extensão e números ao dispositivo";
$text['description-extension']['pl'] = "Wprowadź alfanumeryczny numer wewnętrzny. Domyślna konfiguracja pozwala na 2-7 cyfrowe numery wewnętrzne";
$text['description-extension']['sv-se'] = "Ange konferenscenter anknytningsnummer.";
$text['description-extension']['uk'] = "Введіть номер розширення конференц-центру.";
@@ -634,12 +724,22 @@ $text['description-enabled']['en-us'] = "Select whether to enable or disable the
$text['description-enabled']['es-cl'] = "Indique si desea activar o desactivar el centro de conferencia.";
$text['description-enabled']['pt-pt'] = "Active ou Desactive o centro de conferência";
$text['description-enabled']['fr-fr'] = "Choisir d'activer ou non la conférence.";
$text['description-enabled']['pt-br'] = "Escolhe se deseja habilitar ou desabilitar o centro de conferência.";
$text['description-enabled']['pt-br'] = "Escolha o estado desta definição";
$text['description-enabled']['pl'] = "Ustaw status numeru wewnętrznego.";
$text['description-enabled']['sv-se'] = "Välj om konferenscenter skall vara aktiv eller ej.";
$text['description-enabled']['uk'] = "Виберіть, щоб включити або відключити конференц-центр.";
$text['description-enabled']['de-at'] = "Wählen Sie ob die Konferenz Zentrale Ein- oder Ausgeschaltet werden soll.";
$text['description-description']['en-us'] = "Enter the description.";
$text['description-description']['es-cl'] = "Ingrese una descripción";
$text['description-description']['pt-pt'] = "Introduza uma descrição.";
$text['description-description']['fr-fr'] = "";
$text['description-description']['pt-br'] = "Insira a descrição, caso desejar";
$text['description-description']['pl'] = "Wpisz opis.";
$text['description-description']['sv-se'] = "Ange en beskrivning för gateway:en här.";
$text['description-description']['uk'] = "Введіть опис, якщо це необхідно.";
$text['description-description']['de-at'] = "Falls gewünscht, geben Sie eine Beschreibung an.";
$text['description-conference_sessions']['en-us'] = "Conference Sessions are log details about the conferences.";
$text['description-conference_sessions']['es-cl'] = "Las Sesiones de Conferencia son un registro detallado de las conferencias.";
$text['description-conference_sessions']['pt-pt'] = "As sessões das conferências representam os detalhes dos logs das conferências.";
@@ -654,7 +754,7 @@ $text['description-conference_session_details']['en-us'] = "Conference Sessions
$text['description-conference_session_details']['es-cl'] = "Las Sesiones de Conferencia son un registro detallado de las llamadas de conferencia";
$text['description-conference_session_details']['pt-pt'] = "As sessões das conferências representam os detalhes dos logs das chamadas.";
$text['description-conference_session_details']['fr-fr'] = "Sessions de conférences sont les détails des logs sur les conférences.";
$text['description-conference_session_details']['pt-br'] = "Logs das sessões de chamada das conferências";
$text['description-conference_session_details']['pt-br'] = "Logs das sessões de camada";
$text['description-conference_session_details']['pl'] = "Sesje Konferencyjne są to logi o rozmowach konferencyjnych.";
$text['description-conference_session_details']['sv-se'] = "Konferenssessioner är detaljerad log om konferenserna.";
$text['description-conference_session_details']['uk'] = "Сесії конференції є відомості з журналу викликів конференцій.";
@@ -664,7 +764,7 @@ $text['description-conference_centers']['en-us'] = "Conference Centers are a gro
$text['description-conference_centers']['es-cl'] = "Los Centros de Conferencias son un grupo de salas de conferencias. Estas se organizan por centro de costo, geográficamente u otro criterio.";
$text['description-conference_centers']['pt-pt'] = "Centros de Conferência são um grupo de salas de conferência. Podem ser organizadas por custo, por localização ou por outro critétio.";
$text['description-conference_centers']['fr-fr'] = "Ce sont des groupes de salles de conférences. Pouvant être organisés par centre de coût, lieu géographique, ou tout autre critère.";
$text['description-conference_centers']['pt-br'] = "Centros de conferência são um grupo de salas de conferência. Podem ser organizadas por custo, por localização ou por outro critétio.";
$text['description-conference_centers']['pt-br'] = "Centros de conferência são um grupo de salas de conferência. Podem ser organizadas por custo, por localização ou por outro critétio. ";
$text['description-conference_centers']['pl'] = "'Centra konferencyjne składają się z pokoi konferencyjnych. Mogą one być przypisane do konkretnych centrów kosztów, rejonów geograficznych lub do innych grup.";
$text['description-conference_centers']['sv-se'] = "Konferenscenter är en grupp med konferensrum. De kan sorteras på kostnadscenter, geografisk placering eller andra kriterier.";
$text['description-conference_centers']['uk'] = "Конференц-центри є група конференц-залів. Вони можуть бути організовані МВЗ, географічно або інших критеріїв.";
@@ -674,12 +774,32 @@ $text['description-conference_center']['en-us'] = "Conference Center is used to
$text['description-conference_center']['es-cl'] = "El Centro de Conferencia se usa para configurar una o más salas con un nombre, número de extensión, un largo de número pin requerido y una descripción.";
$text['description-conference_center']['pt-pt'] = "Centro de Conferência é usado para configurar uma ou mais salas de conferência com um nome, número de extensão, tamanho do código pin e uma descrição.";
$text['description-conference_center']['fr-fr'] = "Il est possible de configurer une ou plusieures salles de conférence avec un nom, un neméro, une taille de code d'identification et une description.";
$text['description-conference_center']['pt-br'] = "Centro de conferência é usado para configurar uma ou mais salas de conferência com um nome, número de ramal, tamanho do código PIN e uma descrição.";
$text['description-conference_center']['pt-br'] = "Centro de conferência é usado para configurar uma ou mais salas de conferência com um nome, número de extensão, tamanho do código pin e uma descrição. ";
$text['description-conference_center']['pl'] = "Centrum Konferencyjne jest używane do tworzenia pokoi konferencyjnych. Każdy z nich otrzymuje numer wewnętrzny, nazwę, numer PIN oraz opis.";
$text['description-conference_center']['sv-se'] = "Konferenscenter används för att sätt aupp en eller fler konferensrum med ett namn, anknytningsnummer, PIN kod och en beskrivning.";
$text['description-conference_center']['uk'] = "Конференц-центр використовується для установки одного або декількох конференц-залів з ім'ям, додатковий номер, в необхідної довжини контактний номер та опис.";
$text['description-conference_center']['de-at'] = "Konferenz Zentralen gruppieren mehrere Konferenzräume. Diese können über diverse Kriterien organisiert werden.";
$text['confirm-delete']['en-us'] = "Do you really want to delete this?";
$text['confirm-delete']['es-cl'] = "¿Realmente desea eliminar esto?";
$text['confirm-delete']['pt-pt'] = "Deseja realmente remover isto?";
$text['confirm-delete']['fr-fr'] = "Voulez-vous vraiment supprimer cela?";
$text['confirm-delete']['pt-br'] = "Deseja realmente remover isto?";
$text['confirm-delete']['pl'] = "Czy na pewno chcesz to usunąć?";
$text['confirm-delete']['sv-se'] = "Vill du verkligen ta bort detta?";
$text['confirm-delete']['uk'] = "Ви дійсно бажаєте це видалити?";
$text['confirm-delete']['de-at'] = "Wollen Sie das wirklich löschen?";
$text['button-view']['en-us'] = "View";
$text['button-view']['es-cl'] = "Ver";
$text['button-view']['pt-pt'] = "Ver";
$text['button-view']['fr-fr'] = "Vue";
$text['button-view']['pt-br'] = "Visualizar";
$text['button-view']['pl'] = "Widok";
$text['button-view']['sv-se'] = "Visa";
$text['button-view']['uk'] = "Перегляд";
$text['button-view']['de-at'] = "Ansicht";
$text['button-sessions']['en-us'] = "Sessions";
$text['button-sessions']['es-cl'] = "Sesiones";
$text['button-sessions']['pt-pt'] = "Sessões";
@@ -690,6 +810,26 @@ $text['button-sessions']['sv-se'] = "Sessioner";
$text['button-sessions']['uk'] = "Сесії";
$text['button-sessions']['de-at'] = "Sitzungen";
$text['button-search']['en-us'] = "Search";
$text['button-search']['es-cl'] = "Buscar";
$text['button-search']['pt-pt'] = "Pesquisar";
$text['button-search']['fr-fr'] = "Chercher";
$text['button-search']['pt-br'] = "Pesquisar";
$text['button-search']['pl'] = "Wyszukaj";
$text['button-search']['sv-se'] = "Sök";
$text['button-search']['uk'] = "Пошук";
$text['button-search']['de-at'] = "Suchen";
$text['button-save']['en-us'] = "Save";
$text['button-save']['es-cl'] = "Guardar";
$text['button-save']['pt-pt'] = "Guardar";
$text['button-save']['fr-fr'] = "Sauvegarder";
$text['button-save']['pt-br'] = "Salvar";
$text['button-save']['pl'] = "Zachowaj";
$text['button-save']['sv-se'] = "Spara";
$text['button-save']['uk'] = "Зберегти";
$text['button-save']['de-at'] = "Speichern";
$text['button-rooms']['en-us'] = "Rooms";
$text['button-rooms']['es-cl'] = "Salas";
$text['button-rooms']['pt-pt'] = "Salas";
@@ -700,4 +840,24 @@ $text['button-rooms']['sv-se'] = "Rum";
$text['button-rooms']['uk'] = "Кімнати";
$text['button-rooms']['de-at'] = "Räume";
$text['button-back']['en-us'] = "Back";
$text['button-back']['es-cl'] = "Volver";
$text['button-back']['pt-pt'] = "Voltar";
$text['button-back']['fr-fr'] = "Retour";
$text['button-back']['pt-br'] = "Voltar";
$text['button-back']['pl'] = "Wróć";
$text['button-back']['sv-se'] = "Tillbaka";
$text['button-back']['uk'] = "Назад";
$text['button-back']['de-at'] = "Zurück";
$text['button-add']['en-us'] = "Add";
$text['button-add']['es-cl'] = "Agregar";
$text['button-add']['pt-pt'] = "Adicionar";
$text['button-add']['fr-fr'] = "Ajouter";
$text['button-add']['pt-br'] = "Adicionar";
$text['button-add']['pl'] = "Dodaj";
$text['button-add']['sv-se'] = "Lägg Till";
$text['button-add']['uk'] = "Додати";
$text['button-add']['de-at'] = "Hinzufügen";
?>
+1 -1
View File
@@ -4,7 +4,7 @@ $apps[$x]['menu'][0]['title']['en-us'] = "Conference Center";
$apps[$x]['menu'][0]['title']['es-cl'] = "Cent. de Conferencias";
$apps[$x]['menu'][0]['title']['fr-fr'] = "Centre de Conférences";
$apps[$x]['menu'][0]['title']['pt-pt'] = "Conferencias";
$apps[$x]['menu'][0]['title']['pt-br'] = "Centro de Conferência";
$apps[$x]['menu'][0]['title']['pt-br'] = "Conferência";
$apps[$x]['menu'][0]['title']['pl'] = "Centrum Konferencyjne";
$apps[$x]['menu'][0]['title']['sv-se'] = "Konferenscenter";
$apps[$x]['menu'][0]['title']['uk'] = "Конференц-центр";
+240 -208
View File
@@ -17,26 +17,22 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2016
Portions created by the Initial Developer are Copyright (C) 2008-2014
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
//includes
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
//check permissions
if (permission_exists('conference_center_add') || permission_exists('conference_center_edit')) {
//access granted
}
else {
echo "access denied";
exit;
}
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('conference_center_add') || permission_exists('conference_center_edit')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
@@ -66,170 +62,218 @@
$conference_center_name = str_replace(" ", "-", $conference_center_name);
}
//process user data
if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
/*
//delete the user from the v_conference_center_users
if ($_GET["a"] == "delete" && permission_exists("conference_center_delete")) {
//set the variables
$user_uuid = check_str($_REQUEST["user_uuid"]);
$conference_center_uuid = check_str($_REQUEST["id"]);
//delete the group from the users
$sql = "delete from v_conference_center_users ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and conference_center_uuid = '".$conference_center_uuid."' ";
$sql .= "and user_uuid = '".$user_uuid."' ";
$db->exec(check_sql($sql));
//redirect the browser
require_once "resources/header.php";
echo "<meta http-equiv=\"refresh\" content=\"2;url=conference_center_edit.php?id=$conference_center_uuid\">\n";
echo "<div align='center'>Delete Complete</div>";
require_once "resources/footer.php";
return;
}
//get the id
if ($action == "update") {
$conference_center_uuid = check_str($_POST["conference_center_uuid"]);
}
//add the user to the v_conference_center_users
if (strlen($_REQUEST["user_uuid"]) > 0 && strlen($_REQUEST["id"]) > 0 && $_GET["a"] != "delete") {
//set the variables
$user_uuid = check_str($_REQUEST["user_uuid"]);
$conference_center_uuid = check_str($_REQUEST["id"]);
//assign the user to the extension
$sql_insert = "insert into v_conference_center_users ";
$sql_insert .= "(";
$sql_insert .= "conference_user_uuid, ";
$sql_insert .= "domain_uuid, ";
$sql_insert .= "conference_center_uuid, ";
$sql_insert .= "user_uuid ";
$sql_insert .= ")";
$sql_insert .= "values ";
$sql_insert .= "(";
$sql_insert .= "'".uuid()."', ";
$sql_insert .= "'".$_SESSION['domain_uuid']."', ";
$sql_insert .= "'".$conference_center_uuid."', ";
$sql_insert .= "'".$user_uuid."' ";
$sql_insert .= ")";
$db->exec($sql_insert);
//redirect the browser
require_once "resources/header.php";
echo "<meta http-equiv=\"refresh\" content=\"2;url=conference_center_edit.php?id=$conference_center_uuid\">\n";
echo "<div align='center'>Add Complete</div>";
require_once "resources/footer.php";
return;
}
*/
//check for all required data
$msg = '';
//if (strlen($dialplan_uuid) == 0) { $msg .= "Please provide: Dialplan UUID<br>\n"; }
if (strlen($conference_center_name) == 0) { $msg .= "Please provide: Name<br>\n"; }
if (strlen($conference_center_extension) == 0) { $msg .= "Please provide: Extension<br>\n"; }
if (strlen($conference_center_pin_length) == 0) { $msg .= "Please provide: PIN Length<br>\n"; }
//if (strlen($conference_center_order) == 0) { $msg .= "Please provide: Order<br>\n"; }
//if (strlen($conference_center_description) == 0) { $msg .= "Please provide: Description<br>\n"; }
if (strlen($conference_center_enabled) == 0) { $msg .= "Please provide: Enabled<br>\n"; }
if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
require_once "resources/header.php";
require_once "resources/persist_form_var.php";
echo "<div align='center'>\n";
echo "<table><tr><td>\n";
echo $msg."<br />";
echo "</td></tr></table>\n";
persistformvar($_POST);
echo "</div>\n";
require_once "resources/footer.php";
if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$msg = '';
if ($action == "update") {
$conference_center_uuid = check_str($_POST["conference_center_uuid"]);
}
//check for all required data
//if (strlen($dialplan_uuid) == 0) { $msg .= "Please provide: Dialplan UUID<br>\n"; }
if (strlen($conference_center_name) == 0) { $msg .= "Please provide: Name<br>\n"; }
if (strlen($conference_center_extension) == 0) { $msg .= "Please provide: Extension<br>\n"; }
if (strlen($conference_center_pin_length) == 0) { $msg .= "Please provide: PIN Length<br>\n"; }
//if (strlen($conference_center_order) == 0) { $msg .= "Please provide: Order<br>\n"; }
//if (strlen($conference_center_description) == 0) { $msg .= "Please provide: Description<br>\n"; }
if (strlen($conference_center_enabled) == 0) { $msg .= "Please provide: Enabled<br>\n"; }
if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
require_once "resources/header.php";
require_once "resources/persist_form_var.php";
echo "<div align='center'>\n";
echo "<table><tr><td>\n";
echo $msg."<br />";
echo "</td></tr></table>\n";
persistformvar($_POST);
echo "</div>\n";
require_once "resources/footer.php";
return;
}
//add or update the database
if ($_POST["persistformvar"] != "true") {
if ($action == "add") {
//prepare the uuids
$conference_center_uuid = uuid();
$dialplan_uuid = uuid();
//add the conference
$sql = "insert into v_conference_centers ";
$sql .= "(";
$sql .= "domain_uuid, ";
$sql .= "conference_center_uuid, ";
$sql .= "dialplan_uuid, ";
$sql .= "conference_center_name, ";
$sql .= "conference_center_extension, ";
$sql .= "conference_center_pin_length, ";
$sql .= "conference_center_greeting, ";
$sql .= "conference_center_description, ";
$sql .= "conference_center_enabled ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'$domain_uuid', ";
$sql .= "'$conference_center_uuid', ";
$sql .= "'$dialplan_uuid', ";
$sql .= "'$conference_center_name', ";
$sql .= "'$conference_center_extension', ";
$sql .= "'$conference_center_pin_length', ";
$sql .= "'$conference_center_greeting', ";
$sql .= "'$conference_center_description', ";
$sql .= "'$conference_center_enabled' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
//create the dialplan entry
$dialplan_name = $conference_center_name;
$dialplan_order ='333';
$dialplan_context = $_SESSION['context'];
$dialplan_enabled = 'true';
$dialplan_description = $conference_center_description;
$app_uuid = 'b81412e8-7253-91f4-e48e-42fc2c9a38d9';
dialplan_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_name, $dialplan_order, $dialplan_context, $dialplan_enabled, $dialplan_description, $app_uuid);
//<condition destination_number="500" />
$dialplan_detail_tag = 'condition'; //condition, action, antiaction
$dialplan_detail_type = 'destination_number';
$dialplan_detail_data = '^'.$conference_center_extension.'$';
$dialplan_detail_order = '010';
$dialplan_detail_group = '2';
dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data);
//<action application="lua" />
$dialplan_detail_tag = 'action'; //condition, action, antiaction
$dialplan_detail_type = 'lua';
$dialplan_detail_data = 'app.lua conference_center';
$dialplan_detail_order = '020';
$dialplan_detail_group = '2';
dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data);
//save the xml
save_dialplan_xml();
$_SESSION["message"] = $text['message-add'];
header("Location: conference_centers.php");
return;
}
} //if ($action == "add")
//add or update the database
if ($_POST["persistformvar"] != "true") {
if ($action == "add") {
//prepare the uuids
$conference_center_uuid = uuid();
$dialplan_uuid = uuid();
//add the conference
$sql = "insert into v_conference_centers ";
$sql .= "(";
$sql .= "domain_uuid, ";
$sql .= "conference_center_uuid, ";
$sql .= "dialplan_uuid, ";
$sql .= "conference_center_name, ";
$sql .= "conference_center_extension, ";
$sql .= "conference_center_pin_length, ";
$sql .= "conference_center_greeting, ";
$sql .= "conference_center_description, ";
$sql .= "conference_center_enabled ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'$domain_uuid', ";
$sql .= "'$conference_center_uuid', ";
$sql .= "'$dialplan_uuid', ";
$sql .= "'$conference_center_name', ";
$sql .= "'$conference_center_extension', ";
$sql .= "'$conference_center_pin_length', ";
$sql .= "'$conference_center_greeting', ";
$sql .= "'$conference_center_description', ";
$sql .= "'$conference_center_enabled' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
if ($action == "update") {
//update the conference center extension
$sql = "update v_conference_centers set ";
$sql .= "conference_center_name = '$conference_center_name', ";
$sql .= "conference_center_extension = '$conference_center_extension', ";
$sql .= "conference_center_pin_length = '$conference_center_pin_length', ";
$sql .= "conference_center_greeting = '$conference_center_greeting', ";
$sql .= "conference_center_description = '$conference_center_description', ";
$sql .= "conference_center_enabled = '$conference_center_enabled' ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and conference_center_uuid = '$conference_center_uuid'";
$db->exec(check_sql($sql));
unset($sql);
//create the dialplan entry
$dialplan_name = $conference_center_name;
$dialplan_order ='333';
$dialplan_context = $_SESSION['context'];
$dialplan_enabled = 'true';
$dialplan_description = $conference_center_description;
$app_uuid = 'b81412e8-7253-91f4-e48e-42fc2c9a38d9';
dialplan_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_name, $dialplan_order, $dialplan_context, $dialplan_enabled, $dialplan_description, $app_uuid);
//udpate the conference center dialplan
$sql = "update v_dialplans set ";
$sql .= "dialplan_name = '$conference_center_name', ";
if (strlen($dialplan_order) > 0) {
$sql .= "dialplan_order = '333', ";
}
$sql .= "dialplan_context = '".$_SESSION['context']."', ";
$sql .= "dialplan_enabled = 'true', ";
$sql .= "dialplan_description = '$conference_center_description' ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
unset($sql);
//<condition destination_number="500" />
$dialplan_detail_tag = 'condition'; //condition, action, antiaction
$dialplan_detail_type = 'destination_number';
$dialplan_detail_data = '^'.$conference_center_extension.'$';
$dialplan_detail_order = '010';
$dialplan_detail_group = '2';
dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data);
//update dialplan detail condition
$sql = "update v_dialplan_details set ";
$sql .= "dialplan_detail_data = '^".$conference_center_extension."$' ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and dialplan_detail_tag = 'condition' ";
$sql .= "and dialplan_detail_type = 'destination_number' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
unset($sql);
//<action application="lua" />
$dialplan_detail_tag = 'action'; //condition, action, antiaction
$dialplan_detail_type = 'lua';
$dialplan_detail_data = 'app.lua conference_center';
$dialplan_detail_order = '020';
$dialplan_detail_group = '2';
dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data);
//update dialplan detail action
$dialplan_detail_type = 'lua';
$dialplan_detail_data = 'app.lua conference_center';
$sql = "update v_dialplan_details set ";
$sql .= "dialplan_detail_type = '".$dialplan_detail_type."', ";
$sql .= "dialplan_detail_data = '".$dialplan_detail_data."' ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and dialplan_detail_tag = 'action' ";
$sql .= "and dialplan_detail_type = 'lua' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
//save the xml
save_dialplan_xml();
//syncrhonize configuration
save_dialplan_xml();
$_SESSION["message"] = $text['message-add'];
//apply settings reminder
$_SESSION["reload_xml"] = true;
//clear the cache
$cache = new cache;
$cache->delete("dialplan:".$_SESSION["context"]);
//redirect the browser
$_SESSION["message"] = $text['message-update'];
header("Location: conference_centers.php");
return;
} //if ($action == "add")
if ($action == "update") {
//update the conference center extension
$sql = "update v_conference_centers set ";
$sql .= "conference_center_name = '$conference_center_name', ";
$sql .= "conference_center_extension = '$conference_center_extension', ";
$sql .= "conference_center_pin_length = '$conference_center_pin_length', ";
$sql .= "conference_center_greeting = '$conference_center_greeting', ";
$sql .= "conference_center_description = '$conference_center_description', ";
$sql .= "conference_center_enabled = '$conference_center_enabled' ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and conference_center_uuid = '$conference_center_uuid'";
$db->exec(check_sql($sql));
unset($sql);
//udpate the conference center dialplan
$sql = "update v_dialplans set ";
$sql .= "dialplan_name = '$conference_center_name', ";
if (strlen($dialplan_order) > 0) {
$sql .= "dialplan_order = '333', ";
}
$sql .= "dialplan_context = '".$_SESSION['context']."', ";
$sql .= "dialplan_enabled = 'true', ";
$sql .= "dialplan_description = '$conference_center_description' ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
unset($sql);
//update dialplan detail condition
$sql = "update v_dialplan_details set ";
$sql .= "dialplan_detail_data = '^".$conference_center_extension."$' ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and dialplan_detail_tag = 'condition' ";
$sql .= "and dialplan_detail_type = 'destination_number' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
unset($sql);
//update dialplan detail action
$dialplan_detail_type = 'lua';
$dialplan_detail_data = 'app.lua conference_center';
$sql = "update v_dialplan_details set ";
$sql .= "dialplan_detail_type = '".$dialplan_detail_type."', ";
$sql .= "dialplan_detail_data = '".$dialplan_detail_data."' ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and dialplan_detail_tag = 'action' ";
$sql .= "and dialplan_detail_type = 'lua' ";
$sql .= "and dialplan_uuid = '$dialplan_uuid' ";
$db->query($sql);
//syncrhonize configuration
save_dialplan_xml();
//apply settings reminder
$_SESSION["reload_xml"] = true;
//clear the cache
$cache = new cache;
$cache->delete("dialplan:".$_SESSION["context"]);
//redirect the browser
$_SESSION["message"] = $text['message-update'];
header("Location: conference_centers.php");
return;
} //if ($action == "update")
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
} //if ($action == "update")
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
//function to show the list of sound files
// moved to functions.php
@@ -261,21 +305,6 @@
if (strlen($conference_center_enabled) == 0) { $conference_center_enabled = "true"; }
if (strlen($conference_center_pin_length) == 0) { $conference_center_pin_length = 9; }
//get the recordings
$sql = "select recording_name, recording_filename from v_recordings ";
$sql .= "where domain_uuid = '".$_SESSION["domain_uuid"]."' ";
$sql .= "order by recording_name asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$recordings = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
//get the phrases
$sql = "select * from v_phrases ";
$sql .= "where (domain_uuid = '".$domain_uuid."' or domain_uuid is null) ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$phrases = $prep_statement->fetchAll(PDO::FETCH_NAMED);
//show the header
require_once "resources/header.php";
@@ -359,47 +388,50 @@
echo " <select name='conference_center_greeting' class='formfld' ".((permission_exists('conference_center_add') || permission_exists('conference_center_edit')) ? "onchange='changeToInput(this);'" : null).">\n";
echo " <option></option>\n";
//recordings
$tmp_selected = false;
if (is_array($recordings)) {
if($dh = opendir($_SESSION['switch']['recordings']['dir']."/")) {
$tmp_selected = false;
$files = Array();
echo "<optgroup label='Recordings'>\n";
foreach ($recordings as &$row) {
$recording_name = $row["recording_name"];
$recording_filename = $row["recording_filename"];
$recording_path = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'];
$selected = '';
if ($conference_center_greeting == $recording_path."/".$recording_filename) {
$selected = "selected='selected'";
while ($file = readdir($dh)) {
if ($file != "." && $file != ".." && $file[0] != '.') {
if (!is_dir($_SESSION['switch']['recordings']['dir']."/".$file)) {
$selected = ($conference_center_greeting == $_SESSION['switch']['recordings']['dir']."/".$file && strlen($conference_center_greeting) > 0) ? true : false;
echo " <option value='".$_SESSION['switch']['recordings']['dir']."/".$file."' ".(($selected) ? "selected='selected'" : null).">".$file."</option>\n";
if ($selected) { $tmp_selected = true; }
}
}
echo " <option value='".$recording_path."/".$recording_filename."' ".$selected.">".$recording_name."</option>\n";
unset($selected);
}
closedir($dh);
echo "</optgroup>\n";
}
//phrases
if (count($phrases) > 0) {
$sql = "select * from v_phrases where domain_uuid = '".$domain_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
if (count($result) > 0) {
echo "<optgroup label='Phrases'>\n";
foreach ($phrases as &$row) {
$selected = ($conference_center_greeting == "phrase:".$row["phrase_uuid"]) ? true : false;
echo " <option value='phrase:".$row["phrase_uuid"]."' ".(($selected) ? "selected='selected'" : null).">".$row["phrase_name"]."</option>\n";
foreach ($result as &$row) {
$selected = ($conference_center_greeting == "phrase:".$row["phrase_name"].".".$domain_uuid) ? true : false;
echo " <option value='phrase:".$row["phrase_name"].".".$domain_uuid."' ".(($selected) ? "selected='selected'" : null).">".$row["phrase_name"]."</option>\n";
if ($selected) { $tmp_selected = true; }
}
unset ($prep_statement);
echo "</optgroup>\n";
}
//sounds
$file = new file;
$sound_files = $file->sounds();
if (is_array($sound_files)) {
$dir_path = $_SESSION['switch']['sounds']['dir'];
recur_sounds_dir($_SESSION['switch']['sounds']['dir']);
if (count($dir_array) > 0) {
echo "<optgroup label='Sounds'>\n";
foreach ($sound_files as $key => $value) {
foreach ($dir_array as $key => $value) {
if (strlen($value) > 0) {
if (substr($conference_center_greeting, 0, 71) == "\$\${sounds_dir}/\${default_language}/\${default_dialect}/\${default_voice}/") {
$conference_center_greeting = substr($conference_center_greeting, 71);
}
$selected = ($conference_center_greeting == $value) ? true : false;
echo " <option value='".$value."' ".(($selected) ? "selected='selected'" : null).">".$value."</option>\n";
$selected = ($conference_center_greeting == $key) ? true : false;
echo " <option value='".$key."' ".(($selected) ? "selected='selected'" : null).">".$key."</option>\n";
if ($selected) { $tmp_selected = true; }
}
}
@@ -410,8 +442,8 @@
if (permission_exists('conference_center_add') || permission_exists('conference_center_edit')) {
if (!$tmp_selected) {
echo "<optgroup label='selected'>\n";
if (file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$conference_center_greeting)) {
echo " <option value='".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$conference_center_greeting."' selected='selected'>".$ivr_menu_greet_long."</option>\n";
if (file_exists($_SESSION['switch']['recordings']['dir']."/".$conference_center_greeting)) {
echo " <option value='".$_SESSION['switch']['recordings']['dir']."/".$conference_center_greeting."' selected='selected'>".$ivr_menu_greet_long."</option>\n";
}
else if (substr($conference_center_greeting, -3) == "wav" || substr($conference_center_greeting, -3) == "mp3") {
echo " <option value='".$conference_center_greeting."' selected='selected'>".$conference_center_greeting."</option>\n";
@@ -492,4 +524,4 @@
//include the footer
require_once "resources/footer.php";
?>
?>
@@ -95,7 +95,7 @@ else {
}
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 10;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
@@ -165,7 +165,7 @@ else {
echo " </td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$row['conference_center_extension']."&nbsp;</td>\n";
//echo " <td valign='top' class='".$row_style[$c]."'>".$row['conference_center_order']."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$text['label-'.$row['conference_center_enabled']]."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".ucwords($row['conference_center_enabled'])."&nbsp;</td>\n";
echo " <td valign='top' class='row_stylebg' width='35%'>".$row['conference_center_description']."&nbsp;</td>\n";
echo " <td class='list_control_icons'>";
if (permission_exists('conference_center_edit')) {
+54 -58
View File
@@ -141,7 +141,7 @@ else {
}
//delete the user
if ($_GET["a"] == "delete" && permission_exists('conference_room_delete')) {
if ($_GET["a"] == "delete" && permission_exists('conference_room_add') && permission_exists('conference_room_edit')) {
if (strlen($_REQUEST["meeting_user_uuid"]) > 0) {
//set the variables
$meeting_user_uuid = check_str($_REQUEST["meeting_user_uuid"]);
@@ -473,28 +473,8 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
$enabled = $row["enabled"];
$description = $row["description"];
}
unset ($prep_statement, $sql);
}
//get the users array
$sql = "SELECT * FROM v_users ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "order by username asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$users = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset($prep_statement, $sql);
//get the users assigned to this meeting
$sql = "SELECT * FROM v_users as u, v_meeting_users as m ";
$sql .= "where u.user_uuid = m.user_uuid ";
$sql .= "and m.domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and m.meeting_uuid = '$meeting_uuid' ";
$sql .= "order by u.username asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$meeting_users = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset($prep_statement, $sql);
unset ($prep_statement);
}
//set default profile
if (strlen($profile) == 0) { $profile = 'default'; }
@@ -592,40 +572,56 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
echo " </tr>";
if (if_group("superadmin") || if_group("admin")) {
echo " <tr>";
echo " <td class='vncell' valign='top'>".$text['label-users']."</td>";
echo " <td class='vtable' align='left'>";
if ($action == "update") {
echo " <table border='0' style='width : 235px;'>\n";
foreach($meeting_users as $field) {
echo " <tr>\n";
echo " <td class='vtable'>".$field['username']."</td>\n";
echo " <td style='width: 25px;' align='right'>\n";
if (permission_exists('conference_room_delete')) {
echo " <a href='conference_room_edit.php?meeting_user_uuid=".$field['meeting_user_uuid']."&conference_room_uuid=".$conference_room_uuid."&a=delete' alt='delete' onclick=\"return confirm(".$text['confirm-delete'].")\">$v_link_label_delete</a>\n";
}
echo " </td>\n";
echo " </tr>\n";
echo " <tr>";
echo " <td class='vncell' valign='top'>".$text['label-users']."</td>";
echo " <td class='vtable' align='left'>";
if ($action == "update") {
echo " <table border='0' style='width : 235px;'>\n";
$sql = "SELECT * FROM v_users as u, v_meeting_users as m ";
$sql .= "where u.user_uuid = m.user_uuid ";
$sql .= "and m.domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and m.meeting_uuid = '$meeting_uuid' ";
$sql .= "order by u.username asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$result_count = count($result);
foreach($result as $field) {
echo " <tr>\n";
echo " <td class='vtable'>".$field['username']."</td>\n";
echo " <td style='width: 25px;' align='right'>\n";
if ($result_count > 1) {
echo " <a href='conference_room_edit.php?meeting_user_uuid=".$field['meeting_user_uuid']."&conference_room_uuid=".$conference_room_uuid."&a=delete' alt='delete' onclick=\"return confirm(".$text['confirm-delete'].")\">$v_link_label_delete</a>\n";
}
echo " </table>\n";
echo " </td>\n";
echo " </tr>\n";
}
echo " <br />\n";
if (permission_exists('conference_room_add')) {
echo " <select name=\"user_uuid\" class='formfld' style='width: auto;'>\n";
echo " <option value=\"\"></option>\n";
foreach($users as $field) {
echo " <option value='".$field['user_uuid']."'>".$field['username']."</option>\n";
}
echo " </select>";
if ($action == "update") {
echo " <input type=\"submit\" class='btn' value=\"".$text['button-add']."\">\n";
}
unset($users);
echo " <br>\n";
}
echo " ".$text['description-users']."\n";
echo " </td>";
echo " </tr>";
echo " </table>\n";
}
echo " <br />\n";
$sql = "SELECT * FROM v_users ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "order by username asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
echo " <select name=\"user_uuid\" class='formfld' style='width: auto;'>\n";
echo " <option value=\"\"></option>\n";
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach($result as $field) {
echo " <option value='".$field['user_uuid']."'>".$field['username']."</option>\n";
}
echo " </select>";
if ($action == "update") {
echo " <input type=\"submit\" class='btn' value=\"".$text['button-add']."\">\n";
}
unset($sql, $result);
echo " <br>\n";
echo " ".$text['description-users']."\n";
echo " </td>";
echo " </tr>";
}
if (permission_exists('conference_room_profile')) {
@@ -676,9 +672,9 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
echo "<tr>\n";
echo "<td class='vncell' valign='top' nowrap='nowrap' width='30%'>".$text['label-schedule']."</td>\n";
echo "<td class='vtable' width='70%' align='left' style='position: relative; min-width: 275px;'>\n";
echo " <input type='text' class='formfld datetimepicker' style='min-width: 115px; width: 115px; max-width: 115px;' name='start_datetime' id='start_datetime' placeholder='".$text['label-from']."' value='".$start_datetime."'>\n";
echo " <input type='text' class='formfld datetimepicker' style='min-width: 115px; width: 115px; max-width: 115px;' name='stop_datetime' id='stop_datetime' placeholder='".$text['label-to']."' value='".$stop_datetime."'>\n";
echo "<td class='vtable' width='70%' align='left' style='white-space: nowrap;'>\n";
echo " <input type='text' class='formfld' style='min-width: 115px; width: 115px; max-width: 115px;' name='start_datetime' id='start_datetime' data-calendar=\"{format: '%Y-%m-%d %H:%M', listYears: true, hideOnPick: false, fxName: null, showButtons: true}\" placeholder='".$text['label-from']."' value='".$start_datetime."'>\n";
echo " <input type='text' class='formfld' style='min-width: 115px; width: 115px; max-width: 115px;' name='stop_datetime' id='stop_datetime' data-calendar=\"{format: '%Y-%m-%d %H:%M', listYears: true, hideOnPick: false, fxName: null, showButtons: true}\" placeholder='".$text['label-to']."' value='".$stop_datetime."'>\n";
echo " <br>".$text['description-schedule'];
echo "</td>\n";
echo "</tr>\n";
+1 -1
View File
@@ -175,7 +175,7 @@ else {
$row_count = $conference_center->room_count();
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 150;
$param = "";
$page = check_str($_GET['page']);
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
@@ -77,7 +77,7 @@ else {
echo " <tr>\n";
echo " <td width='50%' align='left' nowrap='nowrap'><b>".$text['title-conference_session_details']."</b></td>\n";
echo " <td width='70%' align='right'>\n";
$tmp_dir = $_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/archive/'.$tmp_year.'/'.$tmp_month.'/'.$tmp_day;
$tmp_dir = $_SESSION['switch']['recordings']['dir'].'/archive/'.$tmp_year.'/'.$tmp_month.'/'.$tmp_day;
$tmp_name = '';
if (file_exists($tmp_dir.'/'.$row['conference_session_uuid'].'.mp3')) {
$tmp_name = $row['conference_session_uuid'].".mp3";
@@ -127,7 +127,7 @@ else {
}
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 500;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
@@ -81,7 +81,7 @@ else {
}
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
$rows_per_page = 150;
$param = "";
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
@@ -146,7 +146,7 @@ else {
echo " <td valign='top' class='".$row_style[$c]."'>".$start_date."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$end_date."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$row['profile']."&nbsp;</td>\n";
$tmp_dir = $_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/archive/'.$tmp_year.'/'.$tmp_month.'/'.$tmp_day;
$tmp_dir = $_SESSION['switch']['recordings']['dir'].'/archive/'.$tmp_year.'/'.$tmp_month.'/'.$tmp_day;
$tmp_name = '';
if (file_exists($tmp_dir.'/'.$row['conference_session_uuid'].'.mp3')) {
$tmp_name = $row['conference_session_uuid'].".mp3";
@@ -41,18 +41,11 @@
public function room_count() {
//get the room count
$not_admin = 1;
if (permission_exists("conference_room_view_all")) {
$not_admin = 0;
}
$sql = "select count(*) as num_rows from v_conference_rooms as r, v_meetings as p ";
if ($not_admin) {
$sql .= "v_meeting_users as u, ";
}
$sql = "select count(*) as num_rows from v_conference_rooms as r, v_meeting_users as u, v_meetings as p ";
$sql .= "where r.domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and r.meeting_uuid = u.meeting_uuid ";
$sql .= "and r.meeting_uuid = p.meeting_uuid ";
if ($not_admin) {
$sql .= "and r.meeting_uuid = u.meeting_uuid ";
if (!if_group("admin") && !if_group("superadmin")) {
$sql .= "and u.user_uuid = '".$_SESSION["user_uuid"]."' ";
}
if (isset($this->search)) {
@@ -78,24 +71,14 @@
public function rooms() {
//get the list of rooms
$not_admin = 1;
if (permission_exists("conference_room_view_all")) {
$not_admin = 0;
}
$fields = "r.domain_uuid, r.conference_room_uuid, r.conference_center_uuid, r.meeting_uuid, r.conference_room_name, max_members, ";
$fields .= "wait_mod, announce, mute, sounds, created, created_by, r.enabled, r.description, record, ";
$fields .= "profile, moderator_pin, participant_pin";
if ($not_admin) {
$fields .= ", meeting_user_uuid, user_uuid";
}
$sql = "select ".$fields." from v_conference_rooms as r, v_meetings as p ";
if ($not_admin) {
$sql .= ", v_meeting_users as u ";
}
$fields .= "profile, meeting_user_uuid, user_uuid, moderator_pin, participant_pin ";
$sql = "select ".$fields." from v_conference_rooms as r, v_meeting_users as u, v_meetings as p ";
$sql .= "where r.domain_uuid = '".$this->domain_uuid."' ";
$sql .= "and r.meeting_uuid = u.meeting_uuid ";
$sql .= "and r.meeting_uuid = p.meeting_uuid ";
if ($not_admin) {
$sql .= "and r.meeting_uuid = u.meeting_uuid ";
if (!if_group("admin") && !if_group("superadmin")) {
$sql .= "and u.user_uuid = '".$_SESSION["user_uuid"]."' ";
}
//if (is_numeric($this->search)) {
+15 -55
View File
@@ -25,66 +25,26 @@
*/
// make sure the PATH_SEPARATOR is defined
umask(2);
if (!defined("PATH_SEPARATOR")) {
if (strpos($_ENV["OS"], "Win") !== false) {
define("PATH_SEPARATOR", ";");
} else {
define("PATH_SEPARATOR", ":");
}
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
}
if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
// make sure the document_root is set
$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
if(PHP_SAPI == 'cli'){
chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
if (file_exists('/project_root.php')) {
$path = '/';
} else {
$i = 1;
$path = '';
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
}
$_SERVER["DOCUMENT_ROOT"] = $path;
}else{
$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
// if the project directory exists then add it to the include path otherwise add the document root to the include path
if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
}
$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
// try to detect if a project path is being used
if (!defined('PROJECT_PATH')) {
if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
define('PROJECT_PATH', '/fusionpbx');
} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) {
define('PROJECT_PATH', '');
} else {
$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
$i = 1;
$path = $_SERVER["DOCUMENT_ROOT"];
while ($i < count($dirs)) {
$path .= '/' . $dirs[$i];
if (file_exists($path. '/project_root.php')) {
break;
}
$i++;
}
if(!file_exists($path. '/project_root.php')){
die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
}
$project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
define('PROJECT_PATH', $project_path);
}
$_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
else {
if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
}
?>
-114
View File
@@ -1,114 +0,0 @@
<?php
//application details
$apps[$x]['name'] = 'Conference Controls';
$apps[$x]['uuid'] = 'e1ad84a2-79e1-450c-a5b1-7507a043e048';
$apps[$x]['category'] = '';
$apps[$x]['subcategory'] = '';
$apps[$x]['version'] = '';
$apps[$x]['license'] = 'Mozilla Public License 1.1';
$apps[$x]['url'] = 'http://www.fusionpbx.com';
$apps[$x]['description']['en-us'] = '';
//permission details
$y = 0;
$apps[$x]['permissions'][$y]['name'] = 'conference_control_view';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
//$apps[$x]['permissions'][$y]['groups'][] = 'user';
//$apps[$x]['permissions'][$y]['groups'][] = 'admin';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'conference_control_add';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
//$apps[$x]['permissions'][$y]['groups'][] = 'admin';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'conference_control_edit';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
//$apps[$x]['permissions'][$y]['groups'][] = 'admin';
//$apps[$x]['permissions'][$y]['groups'][] = 'user';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'conference_control_delete';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
//$apps[$x]['permissions'][$y]['groups'][] = 'admin';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'conference_control_detail_view';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
//$apps[$x]['permissions'][$y]['groups'][] = 'user';
//$apps[$x]['permissions'][$y]['groups'][] = 'admin';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'conference_control_detail_add';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
//$apps[$x]['permissions'][$y]['groups'][] = 'admin';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'conference_control_detail_edit';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
//$apps[$x]['permissions'][$y]['groups'][] = 'admin';
//$apps[$x]['permissions'][$y]['groups'][] = 'user';
$y++;
$apps[$x]['permissions'][$y]['name'] = 'conference_control_detail_delete';
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
//$apps[$x]['permissions'][$y]['groups'][] = 'admin';
$y++;
//schema details
$y = 0; //table array index
$z = 0; //field array index
$apps[$x]['db'][$y]['table'] = 'v_conference_controls';
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'conference_control_uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'char(36)';
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = 'primary';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'control_name';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the conference control name.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Entre com o nome para o controle de conferência.';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'control_enabled';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Set the stats of the control.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Estabelece o estado do controle.';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'control_description';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the description.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Entre com a descrição.';
$y = 1; //table array index
$z = 0; //field array index
$apps[$x]['db'][$y]['table'] = 'v_conference_control_details';
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'conference_control_detail_uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'char(36)';
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = 'primary';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'conference_control_uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'uuid';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = 'char(36)';
$apps[$x]['db'][$y]['fields'][$z]['key']['type'] = 'foreign';
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = 'v_conference_control';
$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = 'conference_control_uuid';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'control_digits';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the digits.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Entre com os digitos.';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'control_action';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the action.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Entre com a ação.';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'control_data';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Enter the data.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Entre com os dados.';
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = 'control_enabled';
$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = 'Set the status of the control.';
$apps[$x]['db'][$y]['fields'][$z]['description']['pt-br'] = 'Estababelece o estado do controle.';
$z++;
?>
-131
View File
@@ -1,131 +0,0 @@
<?php
/*
FusionPBX
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 FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2016
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
if ($domains_processed == 1) {
//add the conference controls list to the database
$sql = "select count(*) as num_rows from v_conference_controls; ";
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
if ($row['num_rows'] == 0) {
//set the directory
$xml_dir = $_SESSION["switch"]["conf"]["dir"].'/autoload_configs';
$xml_file = $xml_dir."/conference.conf";
$xml_file_alt = $_SERVER["DOCUMENT_ROOT"].'/'.PROJECT_PATH.'/resources/templates/conf/autoload_configs/conference.conf';
//rename the file
if (file_exists($xml_dir.'/conference.conf.xml.noload')) {
rename($xml_dir.'/conference.conf.xml.noload', $xml_dir.'/conference.conf');
}
//load the xml and save it into an array
if (file_exists($xml_file)) {
$xml_string = file_get_contents($xml_file);
}
elseif (file_exists($xml_file_alt)) {
$xml_string = file_get_contents(xml_file_alt);
}
$xml_object = simplexml_load_string($xml_string);
$json = json_encode($xml_object);
$conf_array = json_decode($json, true);
//process the array
foreach ($conf_array['caller-controls']['group'] as $row) {
//get the data from the array
$control_name = $row['@attributes']['name'];
//echo $profile_name."<br />\n";
//insert the data into the database
$conference_control_uuid = uuid();
$sql = "insert into v_conference_controls ";
$sql .= "(";
//$sql .= "domain_uuid, ";
$sql .= "conference_control_uuid, ";
$sql .= "control_name, ";
$sql .= "control_enabled ";
$sql .= ") ";
$sql .= "values ";
$sql .= "( ";
//$sql .= "'".$domain_uuid."', ";
$sql .= "'".$conference_control_uuid."', ";
$sql .= "'".check_str($control_name)."', ";
$sql .= "'true' ";
$sql .= ");";
//echo $sql."\n";
$db->exec(check_sql($sql));
unset($sql);
//insert the profile params
foreach ($row['control'] as $p) {
//get the name
//print_r($p);
$control_action = $p['@attributes']['action'];
$control_digits = $p['@attributes']['digits'];
$control_data = $p['@attributes']['data'];
$control_enabled = 'true';
//add the coference profile params
$conference_control_detail_uuid = uuid();
$sql = "insert into v_conference_control_details ";
$sql .= "(";
$sql .= "conference_control_uuid, ";
$sql .= "conference_control_detail_uuid, ";
$sql .= "control_digits, ";
$sql .= "control_action, ";
if (strlen($control_data) > 0) {
$sql .= "control_data, ";
}
$sql .= "control_enabled ";
$sql .= ") ";
$sql .= "values ";
$sql .= "( ";
$sql .= "'".$conference_control_uuid."', ";
$sql .= "'".$conference_control_detail_uuid."', ";
$sql .= "'".$control_digits."', ";
$sql .= "'".$control_action."', ";
if (strlen($control_data) > 0) {
$sql .= "'".$control_data."', ";
}
$sql .= "'".$control_enabled."' ";
$sql .= ");";
//echo $sql."\n";
$db->exec(check_sql($sql));
unset($sql);
}
}
} //if num_rows
} //if prep_statement
}
?>
-202
View File
@@ -1,202 +0,0 @@
<?php
//Conference Controls
$text['title-conference_controls']['en-us'] = 'Conference Controls';
$text['title-conference_controls']['es-cl'] = '';
$text['title-conference_controls']['pt-pt'] = '';
$text['title-conference_controls']['pt-br'] = 'Controles de conferência';
$text['title-conference_controls']['fr-fr'] = '';
$text['title-conference_control']['en-us'] = 'Conference Control';
$text['title-conference_control']['es-cl'] = '';
$text['title-conference_control']['pt-pt'] = '';
$text['title-conference_control']['pt-br'] = 'Controle de conferência';
$text['title-conference_control']['fr-fr'] = '';
$text['title_description-conference_control']['en-us'] = 'Call controls enable ability to assign digits to actions. They can be used to mute, unmute, or other actions during the conference call.';
$text['title_description-conference_control']['es-cl'] = '';
$text['title_description-conference_control']['pt-pt'] = '';
$text['title_description-conference_control']['pt-br'] = 'Controle de chamadas habilita atribuir ações aos números. Podem ser usadas para silenciar, ou outras ações durante a conferência.';
$text['title_description-conference_control']['fr-fr'] = '';
$text['label-control_name']['en-us'] = 'Name';
$text['label-control_name']['es-cl'] = '';
$text['label-control_name']['pt-pt'] = '';
$text['label-control_name']['pt-br'] = 'Nome';
$text['label-control_name']['fr-fr'] = '';
$text['description-control_name']['en-us'] = 'Enter the conference control name.';
$text['description-control_name']['es-cl'] = '';
$text['description-control_name']['pt-pt'] = '';
$text['description-control_name']['pt-br'] = 'Entre com o nome do controle de conferência.';
$text['description-control_name']['fr-fr'] = '';
$text['label-control_enabled']['en-us'] = 'Enabled';
$text['label-control_enabled']['es-cl'] = '';
$text['label-control_enabled']['pt-pt'] = '';
$text['label-control_enabled']['pt-br'] = 'Habilitado';
$text['label-control_enabled']['fr-fr'] = '';
$text['description-control_enabled']['en-us'] = 'Set the stats of the control.';
$text['description-control_enabled']['es-cl'] = '';
$text['description-control_enabled']['pt-pt'] = '';
$text['description-control_enabled']['pt-br'] = 'Atribua o estado do controle.';
$text['description-control_enabled']['fr-fr'] = '';
$text['label-control_description']['en-us'] = 'Description';
$text['label-control_description']['es-cl'] = '';
$text['label-control_description']['pt-pt'] = '';
$text['label-control_description']['pt-br'] = 'Descrição';
$text['label-control_description']['fr-fr'] = '';
$text['description-control_description']['en-us'] = 'Enter the description.';
$text['description-control_description']['es-cl'] = '';
$text['description-control_description']['pt-pt'] = '';
$text['description-control_description']['pt-br'] = 'Entre com a descrição.';
$text['description-control_description']['fr-fr'] = '';
$text['label-true']['en-us'] = 'true';
$text['label-true']['es-cl'] = '';
$text['label-true']['pt-pt'] = '';
$text['label-true']['pt-br'] = 'Sim';
$text['label-true']['fr-fr'] = '';
$text['label-false']['en-us'] = 'false';
$text['label-false']['es-cl'] = 'falso';
$text['label-false']['pt-pt'] = 'falso';
$text['label-false']['pt-br'] = 'Não';
$text['label-false']['fr-fr'] = 'falso';
$text['button-add']['en-us'] = 'Add';
$text['button-add']['es-cl'] = '';
$text['button-add']['pt-pt'] = '';
$text['button-add']['pt-br'] = 'Adicionar';
$text['button-add']['fr-fr'] = '';
$text['button-edit']['en-us'] = 'Edit';
$text['button-edit']['es-cl'] = '';
$text['button-edit']['pt-pt'] = '';
$text['button-edit']['pt-br'] = 'Editar';
$text['button-edit']['fr-fr'] = '';
$text['button-delete']['en-us'] = 'Delete';
$text['button-delete']['es-cl'] = '';
$text['button-delete']['pt-pt'] = '';
$text['button-delete']['pt-br'] = 'Deletar';
$text['button-delete']['fr-fr'] = '';
$text['button-save']['en-us'] = 'Save';
$text['button-save']['es-cl'] = '';
$text['button-save']['pt-pt'] = 'Guardar';
$text['button-save']['pt-br'] = 'Salvar';
$text['button-save']['fr-fr'] = '';
$text['button-view']['en-us'] = 'View';
$text['button-view']['es-cl'] = '';
$text['button-view']['pt-pt'] = '';
$text['button-view']['pt-br'] = 'Visualizar';
$text['button-view']['fr-fr'] = '';
$text['button-back']['en-us'] = 'Back';
$text['button-back']['es-cl'] = '';
$text['button-back']['pt-pt'] = 'Voltar';
$text['button-back']['pt-br'] = 'Voltar';
$text['button-back']['fr-fr'] = '';
$text['confirm-delete']['en-us'] = 'Do you really want to delete this?';
$text['confirm-delete']['es-cl'] = '';
$text['confirm-delete']['pt-pt'] = '';
$text['confirm-delete']['pt-br'] = 'Você realmente deseja excluir?';
$text['confirm-delete']['fr-fr'] = '';
$text['message-add']['en-us'] = 'Add Completed';
$text['message-add']['es-cl'] = '';
$text['message-add']['pt-pt'] = '';
$text['message-add']['pt-br'] = 'Adicionar concluído';
$text['message-add']['fr-fr'] = '';
$text['message-update']['en-us'] = 'Update Completed';
$text['message-update']['es-cl'] = '';
$text['message-update']['pt-pt'] = '';
$text['message-update']['pt-br'] = 'Atualização concluída';
$text['message-update']['fr-fr'] = '';
$text['message-delete']['en-us'] = 'Delete Completed';
$text['message-delete']['es-cl'] = '';
$text['message-delete']['pt-pt'] = '';
$text['message-delete']['pt-br'] = 'Exclusão concluída';
$text['message-delete']['fr-fr'] = '';
$text['message-required']['en-us'] = 'Please provide: ';
$text['message-required']['es-cl'] = '';
$text['message-required']['pt-pt'] = '';
$text['message-required']['pt-br'] = 'Por favor, informe: ';
$text['message-required']['fr-fr'] = '';
//Controls
$text['title-conference_control_details']['en-us'] = 'Controls';
$text['title-conference_control_details']['es-cl'] = '';
$text['title-conference_control_details']['pt-pt'] = '';
$text['title-conference_control_details']['pt-br'] = 'Controles';
$text['title-conference_control_details']['fr-fr'] = '';
$text['title-conference_control_detail']['en-us'] = 'Control';
$text['title-conference_control_detail']['es-cl'] = '';
$text['title-conference_control_detail']['pt-pt'] = '';
$text['title-conference_control_detail']['pt-br'] = 'Controle';
$text['title-conference_control_detail']['fr-fr'] = '';
$text['title_description-conference_control_detail']['en-us'] = '';
$text['title_description-conference_control_detail']['es-cl'] = '';
$text['title_description-conference_control_detail']['pt-pt'] = '';
$text['title_description-conference_control_detail']['fr-fr'] = '';
$text['label-control_digits']['en-us'] = 'Digits';
$text['label-control_digits']['es-cl'] = '';
$text['label-control_digits']['pt-pt'] = '';
$text['label-control_digits']['pt-br'] = 'Digitos';
$text['label-control_digits']['fr-fr'] = '';
$text['description-control_digits']['en-us'] = 'Enter the digits.';
$text['description-control_digits']['es-cl'] = '';
$text['description-control_digits']['pt-pt'] = '';
$text['description-control_digits']['pt-br'] = 'Entre com os digitos';
$text['description-control_digits']['fr-fr'] = '';
$text['label-control_action']['en-us'] = 'Action';
$text['label-control_action']['es-cl'] = '';
$text['label-control_action']['pt-pt'] = '';
$text['label-control_action']['pt-br'] = 'Ação';
$text['label-control_action']['fr-fr'] = '';
$text['description-control_action']['en-us'] = 'Enter the action.';
$text['description-control_action']['es-cl'] = '';
$text['description-control_action']['pt-pt'] = '';
$text['description-control_action']['pt-br'] = 'Informe uma ação.';
$text['description-control_action']['fr-fr'] = '';
$text['label-control_data']['en-us'] = 'Data';
$text['label-control_data']['es-cl'] = '';
$text['label-control_data']['pt-pt'] = '';
$text['label-control_data']['pt-br'] = 'Dados';
$text['label-control_data']['fr-fr'] = '';
$text['description-control_data']['en-us'] = 'Enter the data.';
$text['description-control_data']['es-cl'] = '';
$text['description-control_data']['pt-pt'] = '';
$text['description-control_data']['pt-br'] = 'Informe os dados.';
$text['description-control_data']['fr-fr'] = '';
$text['label-control_enabled']['en-us'] = 'Enabled';
$text['label-control_enabled']['es-cl'] = '';
$text['label-control_enabled']['pt-pt'] = '';
$text['label-control_enabled']['pt-br'] = 'Habilitado';
$text['label-control_enabled']['fr-fr'] = '';
$text['description-control_enabled']['en-us'] = 'Set the status of the control.';
$text['description-control_enabled']['es-cl'] = '';
$text['description-control_enabled']['pt-pt'] = '';
$text['description-control_enabled']['pt-br'] = 'Atribua o estado do controle.';
$text['description-control_enabled']['fr-fr'] = '';
?>
-20
View File
@@ -1,20 +0,0 @@
<?php
$apps[$x]['menu'][0]['title']['en-us'] = 'Conference Controls';
$apps[$x]['menu'][0]['title']['es-cl'] = '';
$apps[$x]['menu'][0]['title']['pt-br'] = 'Controles de conferência';
$apps[$x]['menu'][0]['title']['fr-fr'] = '';
$apps[$x]['menu'][0]['title']['fr-ca'] = '';
$apps[$x]['menu'][0]['title']['pl'] = '';
$apps[$x]['menu'][0]['title']['sv-se'] = '';
$apps[$x]['menu'][0]['title']['uk'] = '';
$apps[$x]['menu'][0]['title']['de-at'] = '';
$apps[$x]['menu'][0]['uuid'] = '9896d4b5-507f-4d0e-8db7-caa7f4655202';
$apps[$x]['menu'][0]['parent_uuid'] = 'fd29e39c-c936-f5fc-8e2b-611681b266b5';
$apps[$x]['menu'][0]['category'] = 'internal';
$apps[$x]['menu'][0]['path'] = '/app/conference_controls/conference_controls.php';
$apps[$x]['menu'][0]['groups'][] = 'superadmin';
//$apps[$x]['menu'][0]['groups'][] = 'admin';
//$apps[$x]['menu'][0]['groups'][] = 'user';
?>
@@ -1,49 +0,0 @@
<?php
//includes
require_once "root.php";
require_once "resources/require.php";
//check permissions
require_once "resources/check_auth.php";
if (permission_exists('conference_control_delete')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//get the id
if (count($_GET) > 0) {
$id = check_str($_GET["id"]);
}
//delete the data
if (strlen($id) > 0) {
//delete conference_control_detail
$sql = "delete from v_conference_control_details ";
$sql .= "where conference_control_uuid = '$id' ";
//$sql .= "and domain_uuid = '$domain_uuid' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
unset($sql);
//delete conference_control
$sql = "delete from v_conference_controls ";
$sql .= "where conference_control_uuid = '$id' ";
//$sql .= "and domain_uuid = '$domain_uuid' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
unset($sql);
}
//redirect the user
$_SESSION['message'] = $text['message-delete'];
header('Location: conference_controls.php');
?>
@@ -1,42 +0,0 @@
<?php
//includes
require_once "root.php";
require_once "resources/require.php";
//check permissions
require_once "resources/check_auth.php";
if (permission_exists('conference_control_detail_delete')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//get the id
if (count($_GET) > 0) {
$id = check_str($_GET["id"]);
$conference_control_uuid = check_str($_GET["conference_control_uuid"]);
}
//delete the data
if (strlen($id) > 0) {
//delete conference_control_detail
$sql = "delete from v_conference_control_details ";
$sql .= "where conference_control_detail_uuid = '$id' ";
//$sql .= "and domain_uuid = '$domain_uuid' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
unset($sql);
}
//redirect the user
$_SESSION['message'] = $text['message-delete'];
header('Location: conference_control_detail_edit.php?id='.$conference_control_uuid);
?>
@@ -1,226 +0,0 @@
<?php
//includes
require_once "root.php";
require_once "resources/require.php";
//check permissions
require_once "resources/check_auth.php";
if (permission_exists('conference_control_detail_add') || permission_exists('conference_control_detail_edit')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//action add or update
if (isset($_REQUEST["id"])) {
$action = "update";
$conference_control_detail_uuid = check_str($_REQUEST["id"]);
}
else {
$action = "add";
}
//set the parent uuid
if (strlen($_GET["conference_control_uuid"]) > 0) {
$conference_control_uuid = check_str($_GET["conference_control_uuid"]);
}
//get http post variables and set them to php variables
if (count($_POST)>0) {
$control_digits = check_str($_POST["control_digits"]);
$control_action = check_str($_POST["control_action"]);
$control_data = check_str($_POST["control_data"]);
$control_enabled = check_str($_POST["control_enabled"]);
}
if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//get the uuid
if ($action == "update") {
$conference_control_detail_uuid = check_str($_POST["conference_control_detail_uuid"]);
}
//check for all required data
$msg = '';
//if (strlen($control_digits) == 0) { $msg .= $text['message-required']." ".$text['label-control_digits']."<br>\n"; }
if (strlen($control_action) == 0) { $msg .= $text['message-required']." ".$text['label-control_action']."<br>\n"; }
//if (strlen($control_data) == 0) { $msg .= $text['message-required']." ".$text['label-control_data']."<br>\n"; }
if (strlen($control_enabled) == 0) { $msg .= $text['message-required']." ".$text['label-control_enabled']."<br>\n"; }
if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
require_once "resources/header.php";
require_once "resources/persist_form_var.php";
echo "<div align='center'>\n";
echo "<table><tr><td>\n";
echo $msg."<br />";
echo "</td></tr></table>\n";
persistformvar($_POST);
echo "</div>\n";
require_once "resources/footer.php";
return;
}
//add or update the database
if ($_POST["persistformvar"] != "true") {
if ($action == "add" && permission_exists('conference_control_detail_add')) {
$sql = "insert into v_conference_control_details ";
$sql .= "(";
//$sql .= "domain_uuid, ";
$sql .= "conference_control_detail_uuid, ";
$sql .= "conference_control_uuid, ";
$sql .= "control_digits, ";
$sql .= "control_action, ";
$sql .= "control_data, ";
$sql .= "control_enabled ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
//$sql .= "'$domain_uuid', ";
$sql .= "'".uuid()."', ";
$sql .= "'$conference_control_uuid', ";
$sql .= "'$control_digits', ";
$sql .= "'$control_action', ";
$sql .= "'$control_data', ";
$sql .= "'$control_enabled' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
$_SESSION["message"] = $text['message-add'];
header('Location: conference_control_edit.php?id='.$conference_control_uuid);
return;
} //if ($action == "add")
if ($action == "update" && permission_exists('conference_control_detail_edit')) {
$sql = "update v_conference_control_details set ";
$sql .= "conference_control_uuid = '$conference_control_uuid', ";
$sql .= "control_digits = '$control_digits', ";
$sql .= "control_action = '$control_action', ";
$sql .= "control_data = '$control_data', ";
$sql .= "control_enabled = '$control_enabled' ";
$sql .= "where conference_control_detail_uuid = '$conference_control_detail_uuid'";
//$sql .= "and domain_uuid = '$domain_uuid' ";
$db->exec(check_sql($sql));
unset($sql);
$_SESSION["message"] = $text['message-update'];
header('Location: conference_control_edit.php?id='.$conference_control_uuid);
return;
} //if ($action == "update")
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
//pre-populate the form
if (count($_GET) > 0 && $_POST["persistformvar"] != "true") {
$conference_control_detail_uuid = check_str($_GET["id"]);
$sql = "select * from v_conference_control_details ";
$sql .= "where conference_control_detail_uuid = '$conference_control_detail_uuid' ";
//$sql .= "and domain_uuid = '$domain_uuid' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$control_digits = $row["control_digits"];
$control_action = $row["control_action"];
$control_data = $row["control_data"];
$control_enabled = $row["control_enabled"];
}
unset ($prep_statement);
}
//show the header
require_once "resources/header.php";
//show the content
echo "<form name='frm' id='frm' method='post' action=''>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo "<td align='left' width='30%' nowrap='nowrap' valign='top'><b>".$text['title-conference_control_detail']."</b><br><br></td>\n";
echo "<td width='70%' align='right' valign='top'>\n";
echo " <input type='button' class='btn' name='' alt='".$text['button-back']."' onclick=\"window.location='conference_control_edit.php?id=$conference_control_uuid'\" value='".$text['button-back']."'>";
echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-control_digits']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='control_digits' maxlength='255' value='$control_digits'>\n";
echo "<br />\n";
echo $text['description-control_digits']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-control_action']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='control_action' maxlength='255' value=\"$control_action\">\n";
echo "<br />\n";
echo $text['description-control_action']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-control_data']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='control_data' maxlength='255' value=\"$control_data\">\n";
echo "<br />\n";
echo $text['description-control_data']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-control_enabled']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='control_enabled'>\n";
echo " <option value=''></option>\n";
if ($control_enabled == "true") {
echo " <option value='true' selected='selected'>".$text['label-true']."</option>\n";
}
else {
echo " <option value='true'>".$text['label-true']."</option>\n";
}
if ($control_enabled == "false") {
echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
echo $text['description-control_enabled']."\n";
echo "</td>\n";
echo "</tr>\n";
echo " <tr>\n";
echo " <td colspan='2' align='right'>\n";
echo " <input type='hidden' name='conference_control_uuid' value='$conference_control_uuid'>\n";
if ($action == "update") {
echo " <input type='hidden' name='conference_control_detail_uuid' value='$conference_control_detail_uuid'>\n";
}
echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
echo " </td>\n";
echo " </tr>";
echo "</table>";
echo "</form>";
echo "<br /><br />";
//include the footer
require_once "resources/footer.php";
?>

Some files were not shown because too many files have changed in this diff Show More