Merge pull request #69 from dkgroot/refactor_spelling
(WIP) Refactor: Spelling / PSR2 / Rename / camelCase Functions (WIP)
This commit is contained in:
commit
363bfbc658
|
@ -36,7 +36,7 @@ Make sure you have the following installed on your system:
|
||||||
- clang >= 3.6 (note: older not supported, higher advised)
|
- clang >= 3.6 (note: older not supported, higher advised)
|
||||||
- gnu make
|
- gnu make
|
||||||
- pbx:
|
- pbx:
|
||||||
- asterisk >= 1.8 (absolute minimum & not recomended)
|
- asterisk >= 1.8 (absolute minimum & not recommended)
|
||||||
- asterisk >= 13.7 or asterisk >= 14.0 recommended
|
- asterisk >= 13.7 or asterisk >= 14.0 recommended
|
||||||
- gui:
|
- gui:
|
||||||
- freepbx >= 13.0.192
|
- freepbx >= 13.0.192
|
||||||
|
@ -49,7 +49,7 @@ Make sure you have the following installed on your system:
|
||||||
- Creating mysql DB from sorce
|
- Creating mysql DB from sorce
|
||||||
```mysql -u root asterisk < mysql-v5_enum.sql```
|
```mysql -u root asterisk < mysql-v5_enum.sql```
|
||||||
|
|
||||||
- TFTP Server running under (recomended) /tftpboot/ [See our WIKI] (https://github.com/chan-sccp/chan-sccp/wiki/setup-tftp-service)
|
- TFTP Server running under (recommended) /tftpboot/ [See our WIKI] (https://github.com/chan-sccp/chan-sccp/wiki/setup-tftp-service)
|
||||||
- You will need the phone settings templates. You can use the templates taken from the distribution "chan-sccp"
|
- You will need the phone settings templates. You can use the templates taken from the distribution "chan-sccp"
|
||||||
```cp /usr/src/chan-sccp/conf/tftp/\*.xml\* /tftpboot/templates/```
|
```cp /usr/src/chan-sccp/conf/tftp/\*.xml\* /tftpboot/templates/```
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ Make sure you have the following installed on your system:
|
||||||
- clang >= 3.6 (note: older not supported, higher advised)
|
- clang >= 3.6 (note: older not supported, higher advised)
|
||||||
- gnu make
|
- gnu make
|
||||||
- pbx:
|
- pbx:
|
||||||
- asterisk >= 1.8 (absolute minimum & not recomended)
|
- asterisk >= 1.8 (absolute minimum & not recommended)
|
||||||
- asterisk >= 13.7 or asterisk >= 14.0 or asterisk >= 15.0 (Тестировалось на стендах)
|
- asterisk >= 13.7 or asterisk >= 14.0 or asterisk >= 15.0 (Тестировалось на стендах)
|
||||||
- gui:
|
- gui:
|
||||||
- freepbx >= 13.0.192 (http://wiki.freepbx.org/display/FOP/Install+FreePBX)
|
- freepbx >= 13.0.192 (http://wiki.freepbx.org/display/FOP/Install+FreePBX)
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,9 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Core Comsnd Interface
|
* Core Comsnd Interface
|
||||||
*
|
*
|
||||||
* https://www.voip-info.org/asterisk-manager-example-php/
|
* https://www.voip-info.org/asterisk-manager-example-php/
|
||||||
*/
|
*/
|
||||||
/* !TODO!: Re-Indent this file. -TODO-: What do you mean? coreaccessinterface ?? */
|
/* !TODO!: Re-Indent this file. -TODO-: What do you mean? coreaccessinterface ?? */
|
||||||
|
@ -12,109 +12,127 @@ namespace FreePBX\modules\Sccp_manager\aminterface;
|
||||||
|
|
||||||
// ************************************************************************** Event *********************************************
|
// ************************************************************************** Event *********************************************
|
||||||
|
|
||||||
abstract class Event extends IncomingMessage {
|
abstract class Event extends IncomingMessage
|
||||||
|
{
|
||||||
|
|
||||||
protected $_events;
|
protected $_events;
|
||||||
|
|
||||||
public function getName() {
|
public function getName()
|
||||||
|
{
|
||||||
return $this->getKey('Event');
|
return $this->getKey('Event');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
$this->_events = array();
|
$this->_events = array();
|
||||||
$this->_eventsCount = 0;
|
$this->_eventsCount = 0;
|
||||||
// $this->_completed = !$this->isList();
|
// $this->_completed = !$this->isList();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class UnknownEvent extends Event {
|
class UnknownEvent extends Event
|
||||||
public function __construct($rawContent='') {
|
{
|
||||||
|
public function __construct($rawContent = '')
|
||||||
|
{
|
||||||
print_r($rawContent);
|
print_r($rawContent);
|
||||||
// die();
|
// die();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class TableStart_Event extends Event {
|
class TableStart_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
public function getTableName() {
|
public function getTableName()
|
||||||
|
{
|
||||||
return $this->getKey('TableName');
|
return $this->getKey('TableName');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class TableEnd_Event extends Event {
|
class TableEnd_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
public function getTableName() {
|
public function getTableName()
|
||||||
|
{
|
||||||
return $this->getKey('TableName');
|
return $this->getKey('TableName');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPSoftKeySetEntry_Event extends Event {
|
class SCCPSoftKeySetEntry_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
protected $_data;
|
protected $_data;
|
||||||
|
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowSoftKeySetsComplete_Event extends Event {
|
class SCCPShowSoftKeySetsComplete_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
public function getListItems() {
|
public function getListItems()
|
||||||
|
{
|
||||||
return intval($this->getKey('ListItems'));
|
return intval($this->getKey('ListItems'));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ExtensionStatus_Event extends Event {
|
class ExtensionStatus_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
public function getPrivilege() {
|
public function getPrivilege()
|
||||||
|
{
|
||||||
return $this->getKey('Privilege');
|
return $this->getKey('Privilege');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getExtension() {
|
public function getExtension()
|
||||||
|
{
|
||||||
return $this->getKey('Exten');
|
return $this->getKey('Exten');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getContext() {
|
public function getContext()
|
||||||
|
{
|
||||||
return $this->getKey('Context');
|
return $this->getKey('Context');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getHint() {
|
public function getHint()
|
||||||
|
{
|
||||||
return $this->getKey('Hint');
|
return $this->getKey('Hint');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getStatus() {
|
public function getStatus()
|
||||||
|
{
|
||||||
return $this->getKey('Status');
|
return $this->getKey('Status');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPDeviceEntry_Event extends Event {
|
class SCCPDeviceEntry_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowDeviceComplete_Event extends Event {
|
class SCCPShowDeviceComplete_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
public function getListItems() {
|
public function getListItems()
|
||||||
|
{
|
||||||
return intval($this->getKey('ListItems'));
|
return intval($this->getKey('ListItems'));
|
||||||
}
|
}
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
$this->_completed = $this->getKey('EventList');
|
$this->_completed = $this->getKey('EventList');
|
||||||
// return null;
|
// return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowDevice_Event extends Event {
|
class SCCPShowDevice_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
public function getCapabilities() {
|
public function getCapabilities()
|
||||||
|
{
|
||||||
$ret = array();
|
$ret = array();
|
||||||
$codecs = explode(", ", substr($this->getKey('Capabilities'), 1, -1));
|
$codecs = explode(", ", substr($this->getKey('Capabilities'), 1, -1));
|
||||||
foreach ($codecs as $codec) {
|
foreach ($codecs as $codec) {
|
||||||
|
@ -124,7 +142,8 @@ class SCCPShowDevice_Event extends Event {
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCodecsPreference() {
|
public function getCodecsPreference()
|
||||||
|
{
|
||||||
$ret = array();
|
$ret = array();
|
||||||
$codecs = explode(", ", substr($this->getKey('CodecsPreference'), 1, -1));
|
$codecs = explode(", ", substr($this->getKey('CodecsPreference'), 1, -1));
|
||||||
foreach ($codecs as $codec) {
|
foreach ($codecs as $codec) {
|
||||||
|
@ -133,25 +152,30 @@ class SCCPShowDevice_Event extends Event {
|
||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowDevicesComplete_Event extends Event {
|
class SCCPShowDevicesComplete_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
public function getListItems() {
|
public function getListItems()
|
||||||
|
{
|
||||||
return intval($this->getKey('ListItems'));
|
return intval($this->getKey('ListItems'));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
class SCCPDeviceButtonEntry_Event extends Event {
|
class SCCPDeviceButtonEntry_Event extends Event
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPDeviceLineEntry_Event extends Event {
|
class SCCPDeviceLineEntry_Event extends Event
|
||||||
|
{
|
||||||
}
|
}
|
||||||
class SCCPDeviceStatisticsEntry_Event extends Event {
|
class SCCPDeviceStatisticsEntry_Event extends Event
|
||||||
|
{
|
||||||
}
|
}
|
||||||
class SCCPDeviceSpeeddialEntry_Event extends Event {
|
class SCCPDeviceSpeeddialEntry_Event extends Event
|
||||||
|
{
|
||||||
}
|
}
|
||||||
class ExtensionStateListComplete_Event extends Event {
|
class ExtensionStateListComplete_Event extends Event
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,22 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Core Comsnd Interface
|
* Core Comsnd Interface
|
||||||
*
|
*
|
||||||
* https://www.voip-info.org/asterisk-manager-example-php/
|
* https://www.voip-info.org/asterisk-manager-example-php/
|
||||||
*/
|
*/
|
||||||
/* !TODO!: Re-Indent this file. -TODO-: What do you mean? coreaccessinterface ?? */
|
/* !TODO!: Re-Indent this file. -TODO-: What do you mean? coreaccessinterface ?? */
|
||||||
|
|
||||||
namespace FreePBX\modules\Sccp_manager\aminterface;
|
namespace FreePBX\modules\Sccp_manager\aminterface;
|
||||||
|
|
||||||
class AMIException extends \Exception {
|
class AMIException extends \Exception
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class Message {
|
abstract class Message
|
||||||
|
{
|
||||||
|
|
||||||
const EOL = "\r\n";
|
const EOL = "\r\n";
|
||||||
const EOM = "\r\n\r\n";
|
const EOM = "\r\n\r\n";
|
||||||
|
@ -25,11 +27,12 @@ abstract class Message {
|
||||||
protected $createdDate;
|
protected $createdDate;
|
||||||
private $_responseHandler;
|
private $_responseHandler;
|
||||||
|
|
||||||
public function _ToDebug($level,$msg) {
|
public function _ToDebug($level, $msg)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getResponseHandler() {
|
public function getResponseHandler()
|
||||||
|
{
|
||||||
if (strlen($this->_responseHandler) > 0) {
|
if (strlen($this->_responseHandler) > 0) {
|
||||||
// throw new AMIException('Hier:' . $this->_responseHandler);
|
// throw new AMIException('Hier:' . $this->_responseHandler);
|
||||||
return (string) $this->_responseHandler;
|
return (string) $this->_responseHandler;
|
||||||
|
@ -38,7 +41,8 @@ abstract class Message {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setResponseHandler($responseHandler) {
|
public function setResponseHandler($responseHandler)
|
||||||
|
{
|
||||||
if (0 == strlen($responseHandler)) {
|
if (0 == strlen($responseHandler)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -50,7 +54,8 @@ abstract class Message {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setVariable($key, $value) {
|
public function setVariable($key, $value)
|
||||||
|
{
|
||||||
$key = strtolower($key);
|
$key = strtolower($key);
|
||||||
$this->variables[$key] = $value;
|
$this->variables[$key] = $value;
|
||||||
/* print_r('<br>----Set Value -------<br>');
|
/* print_r('<br>----Set Value -------<br>');
|
||||||
|
@ -59,7 +64,8 @@ abstract class Message {
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getVariable($key) {
|
public function getVariable($key)
|
||||||
|
{
|
||||||
$key = strtolower($key);
|
$key = strtolower($key);
|
||||||
|
|
||||||
if (!isset($this->variables[$key])) {
|
if (!isset($this->variables[$key])) {
|
||||||
|
@ -68,18 +74,20 @@ abstract class Message {
|
||||||
return $this->variables[$key];
|
return $this->variables[$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function setKey($key, $value) {
|
protected function setKey($key, $value)
|
||||||
|
{
|
||||||
$key = strtolower((string) $key);
|
$key = strtolower((string) $key);
|
||||||
$this->keys[$key] = (string) $value;
|
$this->keys[$key] = (string) $value;
|
||||||
/*
|
/*
|
||||||
print_r('<br>----Set Key -------<br>');
|
print_r('<br>----Set Key -------<br>');
|
||||||
print_r($key);
|
print_r($key);
|
||||||
print_r($value);
|
print_r($value);
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getKey($key) {
|
public function getKey($key)
|
||||||
|
{
|
||||||
$key = strtolower($key);
|
$key = strtolower($key);
|
||||||
if (!isset($this->keys[$key])) {
|
if (!isset($this->keys[$key])) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -88,23 +96,28 @@ abstract class Message {
|
||||||
return $this->keys[$key];
|
return $this->keys[$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getVariables() {
|
public function getVariables()
|
||||||
|
{
|
||||||
return $this->variables;
|
return $this->variables;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getActionID() {
|
public function getActionID()
|
||||||
|
{
|
||||||
return $this->getKey('ActionID');
|
return $this->getKey('ActionID');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getKeys() {
|
public function getKeys()
|
||||||
|
{
|
||||||
return $this->keys;
|
return $this->keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function serializeVariable($key, $value) {
|
private function serializeVariable($key, $value)
|
||||||
|
{
|
||||||
return "Variable: $key=$value";
|
return "Variable: $key=$value";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function setSanitizedKey($key, $value) {
|
protected function setSanitizedKey($key, $value)
|
||||||
|
{
|
||||||
$key = strtolower((string) $key);
|
$key = strtolower((string) $key);
|
||||||
$_string_key = array('actionid', 'descr');
|
$_string_key = array('actionid', 'descr');
|
||||||
if (array_search($key, $_string_key) !== false) {
|
if (array_search($key, $_string_key) !== false) {
|
||||||
|
@ -114,13 +127,14 @@ abstract class Message {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function sanitizeInput($value, $prefered_type = '') {
|
protected function sanitizeInput($value, $prefered_type = '')
|
||||||
|
{
|
||||||
if ($prefered_type == '') {
|
if ($prefered_type == '') {
|
||||||
if (!isset($value) || $value === NULL || strlen($value) == 0) {
|
if (!isset($value) || $value === null || strlen($value) == 0) {
|
||||||
return NULL;
|
return null;
|
||||||
} else if (is_numeric($value)) {
|
} elseif (is_numeric($value)) {
|
||||||
$prefered_type = 'numeric';
|
$prefered_type = 'numeric';
|
||||||
} else if (is_string($value)) {
|
} elseif (is_string($value)) {
|
||||||
$prefered_type = 'string';
|
$prefered_type = 'string';
|
||||||
} else {
|
} else {
|
||||||
throw new AMIException("Don't know how to convert: '" . $value . "'\n");
|
throw new AMIException("Don't know how to convert: '" . $value . "'\n");
|
||||||
|
@ -129,26 +143,26 @@ abstract class Message {
|
||||||
if ($prefered_type !== '') {
|
if ($prefered_type !== '') {
|
||||||
switch ($prefered_type) {
|
switch ($prefered_type) {
|
||||||
case 'string':
|
case 'string':
|
||||||
if (!isset($value) || $value === NULL || strlen($value) == 0) {
|
if (!isset($value) || $value === null || strlen($value) == 0) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
if (filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) {
|
if (filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) {
|
||||||
return (boolean) $value;
|
return (boolean) $value;
|
||||||
} else if (filter_var($value, FILTER_SANITIZE_STRING, FILTER_NULL_ON_FAILURE)) {
|
} elseif (filter_var($value, FILTER_SANITIZE_STRING, FILTER_NULL_ON_FAILURE)) {
|
||||||
return (string) $value;
|
return (string) $value;
|
||||||
} else if (filter_var($value, FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_NULL_ON_FAILURE)) {
|
} elseif (filter_var($value, FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_NULL_ON_FAILURE)) {
|
||||||
return (string) htmlspecialchars($value, ENT_QUOTES);
|
return (string) htmlspecialchars($value, ENT_QUOTES);
|
||||||
} else {
|
} else {
|
||||||
throw new AMIException("Incoming String is not sanitary. Skipping: '" . $value . "'\n");
|
throw new AMIException("Incoming String is not sanitary. Skipping: '" . $value . "'\n");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'numeric':
|
case 'numeric':
|
||||||
if (!isset($value) || $value === NULL || strlen($value) == 0) {
|
if (!isset($value) || $value === null || strlen($value) == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (filter_var($value, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX | FILTER_FLAG_ALLOW_OCTAL)) {
|
if (filter_var($value, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX | FILTER_FLAG_ALLOW_OCTAL)) {
|
||||||
return intval($value, 0);
|
return intval($value, 0);
|
||||||
} else if (filter_var($value, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND | FILTER_FLAG_ALLOW_SCIENTIFIC)) {
|
} elseif (filter_var($value, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND | FILTER_FLAG_ALLOW_SCIENTIFIC)) {
|
||||||
return (float) $value;
|
return (float) $value;
|
||||||
} else {
|
} else {
|
||||||
return (double) $value;
|
return (double) $value;
|
||||||
|
@ -160,11 +174,13 @@ abstract class Message {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function finishMessage($message) {
|
protected function finishMessage($message)
|
||||||
|
{
|
||||||
return $message . self::EOL . self::EOL;
|
return $message . self::EOL . self::EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function serialize() {
|
public function serialize()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
foreach ($this->getKeys() as $k => $v) {
|
foreach ($this->getKeys() as $k => $v) {
|
||||||
$result[] = $k . ': ' . $v;
|
$result[] = $k . ': ' . $v;
|
||||||
|
@ -182,7 +198,8 @@ abstract class Message {
|
||||||
return $mStr;
|
return $mStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setActionID($actionID) {
|
public function setActionID($actionID)
|
||||||
|
{
|
||||||
if (0 == strlen($actionID)) {
|
if (0 == strlen($actionID)) {
|
||||||
throw new AMIException('ActionID cannot be empty.');
|
throw new AMIException('ActionID cannot be empty.');
|
||||||
return;
|
return;
|
||||||
|
@ -196,38 +213,44 @@ abstract class Message {
|
||||||
$this->setKey('ActionID', $actionID);
|
$this->setKey('ActionID', $actionID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __sleep() {
|
public function __sleep()
|
||||||
|
{
|
||||||
return array('lines', 'variables', 'keys', 'createdDate');
|
return array('lines', 'variables', 'keys', 'createdDate');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
|
{
|
||||||
$this->lines = array();
|
$this->lines = array();
|
||||||
$this->variables = array();
|
$this->variables = array();
|
||||||
$this->keys = array();
|
$this->keys = array();
|
||||||
$this->createdDate = time();
|
$this->createdDate = time();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class IncomingMessage extends Message {
|
abstract class IncomingMessage extends Message
|
||||||
|
{
|
||||||
|
|
||||||
protected $rawContent;
|
protected $rawContent;
|
||||||
|
|
||||||
public function getEventList() {
|
public function getEventList()
|
||||||
|
{
|
||||||
return $this->getKey('EventList');
|
return $this->getKey('EventList');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getRawContent() {
|
public function getRawContent()
|
||||||
|
{
|
||||||
return $this->rawContent;
|
return $this->rawContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __sleep() {
|
public function __sleep()
|
||||||
|
{
|
||||||
$ret = parent::__sleep();
|
$ret = parent::__sleep();
|
||||||
$ret[] = 'rawContent';
|
$ret[] = 'rawContent';
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->rawContent = $rawContent;
|
$this->rawContent = $rawContent;
|
||||||
$lines = explode(Message::EOL, $rawContent);
|
$lines = explode(Message::EOL, $rawContent);
|
||||||
|
@ -243,11 +266,11 @@ abstract class IncomingMessage extends Message {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// namespace FreePBX\modules\Sccp_manager\aminterface\Message;
|
// namespace FreePBX\modules\Sccp_manager\aminterface\Message;
|
||||||
class LoginAction extends ActionMessage {
|
class LoginAction extends ActionMessage
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
|
@ -257,111 +280,122 @@ class LoginAction extends ActionMessage {
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function __construct($user, $password) {
|
public function __construct($user, $password)
|
||||||
|
{
|
||||||
parent::__construct('Login');
|
parent::__construct('Login');
|
||||||
$this->setKey('Username', $user);
|
$this->setKey('Username', $user);
|
||||||
$this->setKey('Secret', $password);
|
$this->setKey('Secret', $password);
|
||||||
$this->setKey('Events', 'off'); // &----
|
$this->setKey('Events', 'off'); // &----
|
||||||
$this->setResponseHandler('Login');
|
$this->setResponseHandler('Login');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class ActionMessage extends Message {
|
abstract class ActionMessage extends Message
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct($what) {
|
public function __construct($what)
|
||||||
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->setKey('Action', $what);
|
$this->setKey('Action', $what);
|
||||||
$this->setKey('ActionID', microtime(true));
|
$this->setKey('ActionID', microtime(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class CommandAction extends ActionMessage {
|
class CommandAction extends ActionMessage
|
||||||
public function __construct($command) {
|
{
|
||||||
|
public function __construct($command)
|
||||||
|
{
|
||||||
parent::__construct('Command');
|
parent::__construct('Command');
|
||||||
$this->setKey('Command', $command);
|
$this->setKey('Command', $command);
|
||||||
$this->setResponseHandler("Command");
|
$this->setResponseHandler("Command");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ReloadAction extends ActionMessage {
|
class ReloadAction extends ActionMessage
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct($module = false) {
|
public function __construct($module = false)
|
||||||
|
{
|
||||||
parent::__construct('Reload');
|
parent::__construct('Reload');
|
||||||
if ($module !== false) {
|
if ($module !== false) {
|
||||||
$this->setKey('Module', $module);
|
$this->setKey('Module', $module);
|
||||||
$this->setResponseHandler("Generic");
|
$this->setResponseHandler("Generic");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ExtensionStateListAction extends ActionMessage {
|
class ExtensionStateListAction extends ActionMessage
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
|
{
|
||||||
parent::__construct('ExtensionStateList');
|
parent::__construct('ExtensionStateList');
|
||||||
$this->setKey('Segment', 'general');
|
$this->setKey('Segment', 'general');
|
||||||
$this->setKey('ResultFormat', 'command');
|
$this->setKey('ResultFormat', 'command');
|
||||||
$this->setResponseHandler("ExtensionStateList");
|
$this->setResponseHandler("ExtensionStateList");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
class SCCPShowGlobalsAction extends ActionMessage {
|
class SCCPShowGlobalsAction extends ActionMessage
|
||||||
|
{
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
parent::__construct('SCCPShowGlobals');
|
parent::__construct('SCCPShowGlobals');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowSoftkeySetsAction extends ActionMessage {
|
class SCCPShowSoftkeySetsAction extends ActionMessage
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
|
{
|
||||||
parent::__construct('SCCPShowSoftkeySets');
|
parent::__construct('SCCPShowSoftkeySets');
|
||||||
$this->setKey('Segment', 'general');
|
$this->setKey('Segment', 'general');
|
||||||
$this->setKey('ResultFormat', 'command');
|
$this->setKey('ResultFormat', 'command');
|
||||||
$this->setResponseHandler("SCCPShowSoftkeySets");
|
$this->setResponseHandler("SCCPShowSoftkeySets");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowDeviceAction extends ActionMessage {
|
class SCCPShowDeviceAction extends ActionMessage
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct($devicename) {
|
public function __construct($devicename)
|
||||||
|
{
|
||||||
parent::__construct('SCCPShowDevice');
|
parent::__construct('SCCPShowDevice');
|
||||||
$this->setKey('Segment', 'general');
|
$this->setKey('Segment', 'general');
|
||||||
$this->setKey('ResultFormat', 'command');
|
$this->setKey('ResultFormat', 'command');
|
||||||
$this->setKey('DeviceName', $devicename);
|
$this->setKey('DeviceName', $devicename);
|
||||||
$this->setResponseHandler("SCCPShowDevice");
|
$this->setResponseHandler("SCCPShowDevice");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowDevicesAction extends ActionMessage {
|
class SCCPShowDevicesAction extends ActionMessage
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
|
{
|
||||||
parent::__construct('SCCPShowDevices');
|
parent::__construct('SCCPShowDevices');
|
||||||
$this->setKey('Segment', 'general');
|
$this->setKey('Segment', 'general');
|
||||||
$this->setKey('ResultFormat', 'command');
|
$this->setKey('ResultFormat', 'command');
|
||||||
$this->setResponseHandler("SCCPShowDevices");
|
$this->setResponseHandler("SCCPShowDevices");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPTokenAckAction extends ActionMessage {
|
class SCCPTokenAckAction extends ActionMessage
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct($DeviceName) {
|
public function __construct($DeviceName)
|
||||||
|
{
|
||||||
parent::__construct('SCCPTokenAck');
|
parent::__construct('SCCPTokenAck');
|
||||||
$this->setKey('DeviceId', $DeviceName);
|
$this->setKey('DeviceId', $DeviceName);
|
||||||
$this->setResponseHandler("SCCPGeneric");
|
$this->setResponseHandler("SCCPGeneric");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPDeviceRestartAction extends ActionMessage {
|
class SCCPDeviceRestartAction extends ActionMessage
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct($DeviceName, $Type = "restart") {
|
public function __construct($DeviceName, $Type = "restart")
|
||||||
|
{
|
||||||
parent::__construct('SCCPDeviceRestart');
|
parent::__construct('SCCPDeviceRestart');
|
||||||
$this->setResponseHandler("SCCPGeneric");
|
$this->setResponseHandler("SCCPGeneric");
|
||||||
if (empty($Type)) {
|
if (empty($Type)) {
|
||||||
|
@ -374,18 +408,16 @@ class SCCPDeviceRestartAction extends ActionMessage {
|
||||||
throw new Exception('Param2 has to be one of \'restart\', \'full\', \'reset\'.');
|
throw new Exception('Param2 has to be one of \'restart\', \'full\', \'reset\'.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPConfigMetaDataAction extends ActionMessage
|
class SCCPConfigMetaDataAction extends ActionMessage
|
||||||
{
|
{
|
||||||
public function __construct($segment=false)
|
public function __construct($segment = false)
|
||||||
{
|
{
|
||||||
parent::__construct('SCCPConfigMetaData');
|
parent::__construct('SCCPConfigMetaData');
|
||||||
if ($segment != false) {
|
if ($segment != false) {
|
||||||
$this->setKey('Segment', $segment);
|
$this->setKey('Segment', $segment);
|
||||||
}
|
}
|
||||||
$this->setResponseHandler("SCCPGeneric");
|
$this->setResponseHandler("SCCPGeneric");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Core Comsnd Interface
|
* Core Comsnd Interface
|
||||||
*
|
*
|
||||||
* https://www.voip-info.org/asterisk-manager-example-php/
|
* https://www.voip-info.org/asterisk-manager-example-php/
|
||||||
*/
|
*/
|
||||||
/* !TODO!: Re-Indent this file. -TODO-: What do you mean? coreaccessinterface ?? */
|
/* !TODO!: Re-Indent this file. -TODO-: What do you mean? coreaccessinterface ?? */
|
||||||
|
@ -14,17 +14,20 @@ namespace FreePBX\modules\Sccp_manager\aminterface;
|
||||||
|
|
||||||
namespace FreePBX\modules\Sccp_manager\aminterface;
|
namespace FreePBX\modules\Sccp_manager\aminterface;
|
||||||
|
|
||||||
abstract class Response extends IncomingMessage {
|
abstract class Response extends IncomingMessage
|
||||||
|
{
|
||||||
|
|
||||||
protected $_events;
|
protected $_events;
|
||||||
protected $_completed;
|
protected $_completed;
|
||||||
protected $keys;
|
protected $keys;
|
||||||
|
|
||||||
public function isComplete() {
|
public function isComplete()
|
||||||
|
{
|
||||||
return $this->_completed;
|
return $this->_completed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __sleep() {
|
public function __sleep()
|
||||||
|
{
|
||||||
$ret = parent::__sleep();
|
$ret = parent::__sleep();
|
||||||
$ret[] = '_completed';
|
$ret[] = '_completed';
|
||||||
$ret[] = '_events';
|
$ret[] = '_events';
|
||||||
|
@ -34,8 +37,7 @@ abstract class Response extends IncomingMessage {
|
||||||
public function addEvent($event)
|
public function addEvent($event)
|
||||||
{
|
{
|
||||||
$this->_events[] = $event;
|
$this->_events[] = $event;
|
||||||
if (
|
if (stristr($event->getEventList(), 'complete') !== false
|
||||||
stristr($event->getEventList(), 'complete') !== false
|
|
||||||
|| stristr($event->getName(), 'complete') !== false
|
|| stristr($event->getName(), 'complete') !== false
|
||||||
|| stristr($event->getName(), 'DBGetResponse') !== false
|
|| stristr($event->getName(), 'DBGetResponse') !== false
|
||||||
) {
|
) {
|
||||||
|
@ -71,7 +73,8 @@ abstract class Response extends IncomingMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getVariable($_rawContent, $_fields='') {
|
public function getVariable($_rawContent, $_fields = '')
|
||||||
|
{
|
||||||
$lines = explode(Message::EOL, $_rawContent);
|
$lines = explode(Message::EOL, $_rawContent);
|
||||||
foreach ($_fields as $key => $value) {
|
foreach ($_fields as $key => $value) {
|
||||||
foreach ($lines as $data) {
|
foreach ($lines as $data) {
|
||||||
|
@ -83,37 +86,42 @@ abstract class Response extends IncomingMessage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
$this->_events = array();
|
$this->_events = array();
|
||||||
$this->_eventsCount = 0;
|
$this->_eventsCount = 0;
|
||||||
$this->_completed = !$this->isList();
|
$this->_completed = !$this->isList();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//****************************************************************************
|
//****************************************************************************
|
||||||
class Generic_Response extends Response {
|
class Generic_Response extends Response
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
// print_r('<br>---- r --<br>');
|
// print_r('<br>---- r --<br>');
|
||||||
// print_r($rawContent);
|
// print_r($rawContent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Login_Response extends Response {
|
class Login_Response extends Response
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
return $this->isSuccess();
|
return $this->isSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class Command_Response extends Response {
|
class Command_Response extends Response
|
||||||
|
{
|
||||||
private $_temptable;
|
private $_temptable;
|
||||||
|
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
// print_r('<br>---- r --<br>');
|
// print_r('<br>---- r --<br>');
|
||||||
// print_r($rawContent);
|
// print_r($rawContent);
|
||||||
// print_r('<br>---- re --<br>');
|
// print_r('<br>---- re --<br>');
|
||||||
|
@ -125,26 +133,27 @@ class Command_Response extends Response {
|
||||||
$content = explode(':', $line);
|
$content = explode(':', $line);
|
||||||
if (is_array($content)) {
|
if (is_array($content)) {
|
||||||
switch (strtolower($content[0])) {
|
switch (strtolower($content[0])) {
|
||||||
case 'output':
|
case 'output':
|
||||||
$_tmp_str = trim(substr($line,7));
|
$_tmp_str = trim(substr($line, 7));
|
||||||
if (!empty($_tmp_str)){
|
if (!empty($_tmp_str)) {
|
||||||
$this->_temptable['output'][]= trim(substr($line,7));
|
$this->_temptable['output'][]= trim(substr($line, 7));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$this->_temptable[$content[0]][]= trim(substr($line,strlen($content[0])+1));
|
$this->_temptable[$content[0]][]= trim(substr($line, strlen($content[0])+1));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($this->_temptable)){
|
if (!empty($this->_temptable)) {
|
||||||
$this->setKey('output', 'array');
|
$this->setKey('output', 'array');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_completed = $this->isSuccess();
|
$this->_completed = $this->isSuccess();
|
||||||
// return $this->isSuccess();
|
// return $this->isSuccess();
|
||||||
}
|
}
|
||||||
public function getResult() {
|
public function getResult()
|
||||||
|
{
|
||||||
if (stristr($this->getKey('output'), 'array') !== false) {
|
if (stristr($this->getKey('output'), 'array') !== false) {
|
||||||
$result = $this->_temptable;
|
$result = $this->_temptable;
|
||||||
} else {
|
} else {
|
||||||
|
@ -152,15 +161,16 @@ class Command_Response extends Response {
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPGeneric_Response extends Response {
|
class SCCPGeneric_Response extends Response
|
||||||
|
{
|
||||||
|
|
||||||
protected $_tables;
|
protected $_tables;
|
||||||
private $_temptable;
|
private $_temptable;
|
||||||
|
|
||||||
public function addEvent($event) {
|
public function addEvent($event)
|
||||||
|
{
|
||||||
// not eventlist (start/complete)
|
// not eventlist (start/complete)
|
||||||
// print_r('<br>---- addEvent --<br>');
|
// print_r('<br>---- addEvent --<br>');
|
||||||
// print_r($event);
|
// print_r($event);
|
||||||
|
@ -170,18 +180,18 @@ class SCCPGeneric_Response extends Response {
|
||||||
) {
|
) {
|
||||||
$unknownevent = "FreePBX\\modules\\Sccp_manager\\aminterface\\UnknownEvent";
|
$unknownevent = "FreePBX\\modules\\Sccp_manager\\aminterface\\UnknownEvent";
|
||||||
if (!($event instanceof $unknownevent)) {
|
if (!($event instanceof $unknownevent)) {
|
||||||
// Handle TableStart/TableEnd Differently
|
// Handle TableStart/TableEnd Differently
|
||||||
if (stristr($event->getName(), 'TableStart') != false) {
|
if (stristr($event->getName(), 'TableStart') != false) {
|
||||||
$this->_temptable = array();
|
$this->_temptable = array();
|
||||||
$this->_temptable['Name'] = $event->getTableName();
|
$this->_temptable['Name'] = $event->getTableName();
|
||||||
$this->_temptable['Entries'] = array();
|
$this->_temptable['Entries'] = array();
|
||||||
} else if (stristr($event->getName(), 'TableEnd') != false) {
|
} elseif (stristr($event->getName(), 'TableEnd') != false) {
|
||||||
if (!is_array($this->_tables)) {
|
if (!is_array($this->_tables)) {
|
||||||
$this->_tables = array();
|
$this->_tables = array();
|
||||||
}
|
}
|
||||||
$this->_tables[$event->getTableName()] = $this->_temptable;
|
$this->_tables[$event->getTableName()] = $this->_temptable;
|
||||||
unset($this->_temptable);
|
unset($this->_temptable);
|
||||||
} else if (is_array($this->_temptable)) {
|
} elseif (is_array($this->_temptable)) {
|
||||||
$this->_temptable['Entries'][] = $event;
|
$this->_temptable['Entries'][] = $event;
|
||||||
} else {
|
} else {
|
||||||
// add regular event
|
// add regular event
|
||||||
|
@ -193,25 +203,25 @@ class SCCPGeneric_Response extends Response {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// finish eventlist
|
// finish eventlist
|
||||||
if (
|
if (stristr($event->getEventList(), 'complete') != false || stristr($event->getName(), 'complete') != false
|
||||||
stristr($event->getEventList(), 'complete') != false || stristr($event->getName(), 'complete') != false
|
|
||||||
) {
|
) {
|
||||||
$this->_completed = true;
|
$this->_completed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function ConvertTableData($_tablename,$_fkey,$_fields) {
|
protected function ConvertTableData($_tablename, $_fkey, $_fields)
|
||||||
$_rawtable = $this->Table2Array($_tablename);
|
{
|
||||||
|
$_rawtable = $this->Table2Array($_tablename);
|
||||||
$result = array();
|
$result = array();
|
||||||
foreach ($_rawtable as $_row) {
|
foreach ($_rawtable as $_row) {
|
||||||
$all_key_ok = true;
|
$all_key_ok = true;
|
||||||
if (is_array($_fkey)){
|
if (is_array($_fkey)) {
|
||||||
foreach ($_fkey as $_fid) {
|
foreach ($_fkey as $_fid) {
|
||||||
if (empty($_row[$_fid])) {
|
if (empty($_row[$_fid])) {
|
||||||
$all_key_ok = false;
|
$all_key_ok = false;
|
||||||
} else {
|
} else {
|
||||||
$set_name[$_fid] = $_row[$_fid];
|
$set_name[$_fid] = $_row[$_fid];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (empty($_row[$_fkey])) {
|
if (empty($_row[$_fkey])) {
|
||||||
|
@ -233,20 +243,21 @@ class SCCPGeneric_Response extends Response {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function ConvertEventData($_fkey,$_fields) {
|
protected function ConvertEventData($_fkey, $_fields)
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
foreach ($this->_events as $_row) {
|
foreach ($this->_events as $_row) {
|
||||||
$all_key_ok = true;
|
$all_key_ok = true;
|
||||||
$tmp_result = $_row->getKeys();
|
$tmp_result = $_row->getKeys();
|
||||||
$set_name = array();
|
$set_name = array();
|
||||||
if (is_array($_fkey)){
|
if (is_array($_fkey)) {
|
||||||
foreach ($_fkey as $_fid) {
|
foreach ($_fkey as $_fid) {
|
||||||
if (empty($tmp_result[$_fid])) {
|
if (empty($tmp_result[$_fid])) {
|
||||||
$all_key_ok = false;
|
$all_key_ok = false;
|
||||||
} else {
|
} else {
|
||||||
$set_name[$_fid] = $tmp_result[$_fid];
|
$set_name[$_fid] = $tmp_result[$_fid];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (empty($tmp_result[$_fkey])) {
|
if (empty($tmp_result[$_fkey])) {
|
||||||
|
@ -271,20 +282,20 @@ class SCCPGeneric_Response extends Response {
|
||||||
|
|
||||||
public function hasTable()
|
public function hasTable()
|
||||||
{
|
{
|
||||||
if (is_array($this->_tables)) {
|
if (is_array($this->_tables)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public function getTableNames()
|
public function getTableNames()
|
||||||
{
|
{
|
||||||
return (is_array($this->_tables)) ? array_keys($this->_tables) : null;
|
return (is_array($this->_tables)) ? array_keys($this->_tables) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function Table2Array($tablename = '')
|
public function Table2Array($tablename = '')
|
||||||
{
|
{
|
||||||
$result =array();
|
$result =array();
|
||||||
if ( !is_string($tablename) || empty($tablename)){
|
if (!is_string($tablename) || empty($tablename)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ($this->hasTable()) {
|
if ($this->hasTable()) {
|
||||||
|
@ -292,24 +303,24 @@ class SCCPGeneric_Response extends Response {
|
||||||
$result[]= $trow->getKeys();
|
$result[]= $trow->getKeys();
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function Events2Array()
|
public function Events2Array()
|
||||||
{
|
{
|
||||||
$result =array();
|
$result =array();
|
||||||
if (is_array($this->_events)) {
|
if (is_array($this->_events)) {
|
||||||
foreach ($this->_events as $trow) {
|
foreach ($this->_events as $trow) {
|
||||||
$tmp_result = $trow->getKeys();
|
$tmp_result = $trow->getKeys();
|
||||||
if (is_array($tmp_result)) {
|
if (is_array($tmp_result)) {
|
||||||
$result = array_merge($result,$tmp_result);
|
$result = array_merge($result, $tmp_result);
|
||||||
} else {
|
} else {
|
||||||
$result [] = $tmp_result;
|
$result [] = $tmp_result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -317,42 +328,44 @@ class SCCPGeneric_Response extends Response {
|
||||||
public function getTable($tablename)
|
public function getTable($tablename)
|
||||||
{
|
{
|
||||||
if ($this->hasTable() && array_key_exists($tablename, $this->_tables)) {
|
if ($this->hasTable() && array_key_exists($tablename, $this->_tables)) {
|
||||||
return $this->_tables[$tablename];
|
return $this->_tables[$tablename];
|
||||||
}
|
}
|
||||||
throw new PAMIException("No such table.");
|
throw new PAMIException("No such table.");
|
||||||
}
|
}
|
||||||
public function getJSON()
|
public function getJSON()
|
||||||
{
|
{
|
||||||
if (strlen($this->getKey('JSON')) > 0) {
|
if (strlen($this->getKey('JSON')) > 0) {
|
||||||
if (($json = json_decode($this->getKey('JSON'), true)) != false) {
|
if (($json = json_decode($this->getKey('JSON'), true)) != false) {
|
||||||
return $json;
|
return $json;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new AMIException("No JSON Key found to return.");
|
throw new AMIException("No JSON Key found to return.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
$_fields = array("EventList" => "EventList:", "Message" => "Message:");
|
$_fields = array("EventList" => "EventList:", "Message" => "Message:");
|
||||||
// $this->getVariable($rawContent, $_fields);
|
// $this->getVariable($rawContent, $_fields);
|
||||||
$this->_completed = !$this->isList();
|
$this->_completed = !$this->isList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getResult() {
|
public function getResult()
|
||||||
|
{
|
||||||
if ($this->getKey('JSON') != null) {
|
if ($this->getKey('JSON') != null) {
|
||||||
$result = $this->getJSON();
|
$result = $this->getJSON();
|
||||||
} else {
|
} else {
|
||||||
$result = $this->getMessage ();
|
$result = $this->getMessage();
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPJSON_Response extends Response {
|
class SCCPJSON_Response extends Response
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct($rawContent) {
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
$_fields = array("DataType" => "DataType:", "JSONRAW" => "JSON:");
|
$_fields = array("DataType" => "DataType:", "JSONRAW" => "JSON:");
|
||||||
$this->getVariable($rawContent, $_fields);
|
$this->getVariable($rawContent, $_fields);
|
||||||
|
@ -362,71 +375,93 @@ class SCCPJSON_Response extends Response {
|
||||||
}
|
}
|
||||||
return $this->isSuccess();
|
return $this->isSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowSoftkeySets_Response extends SCCPGeneric_Response {
|
class SCCPShowSoftkeySets_Response extends SCCPGeneric_Response
|
||||||
public function __construct($rawContent) {
|
{
|
||||||
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
|
|
||||||
}
|
}
|
||||||
public function getResult() {
|
public function getResult()
|
||||||
|
{
|
||||||
$_fields = array('description'=>'description','label'=>'label','lblid'=>'lblid');
|
$_fields = array('description'=>'description','label'=>'label','lblid'=>'lblid');
|
||||||
$result = $this->ConvertTableData('SoftKeySets',array('set','mode'),$_fields);
|
$result = $this->ConvertTableData('SoftKeySets', array('set','mode'), $_fields);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowDevices_Response extends SCCPGeneric_Response {
|
class SCCPShowDevices_Response extends SCCPGeneric_Response
|
||||||
public function __construct($rawContent) {
|
{
|
||||||
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
}
|
}
|
||||||
public function getResult() {
|
public function getResult()
|
||||||
|
{
|
||||||
$_fields = array('mac'=>'mac','address'=>'address','descr'=>'descr','regstate'=>'status',
|
$_fields = array('mac'=>'mac','address'=>'address','descr'=>'descr','regstate'=>'status',
|
||||||
'token'=>'token','act'=>'act', 'lines'=>'lines','nat'=>'nat','regtime'=>'regtime');
|
'token'=>'token','act'=>'act', 'lines'=>'lines','nat'=>'nat','regtime'=>'regtime');
|
||||||
$result = $this->ConvertTableData('Devices',array('mac'),$_fields);
|
$result = $this->ConvertTableData('Devices', array('mac'), $_fields);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SCCPShowDevice_Response extends SCCPGeneric_Response {
|
class SCCPShowDevice_Response extends SCCPGeneric_Response
|
||||||
public function __construct($rawContent) {
|
{
|
||||||
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
}
|
}
|
||||||
public function getResult() {
|
public function getResult()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
$result = $this->Events2Array();
|
$result = $this->Events2Array();
|
||||||
$result['Buttons'] = $this->ConvertTableData('Buttons', array('id'),
|
$result['Buttons'] = $this->ConvertTableData(
|
||||||
array('id'=>'id','channelobjecttype'=>'channelobjecttype','inst'=>'inst',
|
'Buttons',
|
||||||
'typestr'=>'typestr','type'=>'type','pendupdt'=>'pendupdt','penddel'=>'penddel', 'default'=>'default'));
|
array('id'),
|
||||||
$result['SpeeddialButtons'] = $this->ConvertTableData('Buttons', array('id'),
|
array('id'=>'id','channelobjecttype'=>'channelobjecttype','inst'=>'inst',
|
||||||
array('id'=>'id','channelobjecttype'=>'channelobjecttype','name'=>'name','number'=>'number','hint'=>'hint'));
|
'typestr'=>'typestr',
|
||||||
$result['CallStatistics'] = $this->ConvertTableData('CallStatistics', array('type'),
|
'type'=>'type',
|
||||||
array('type'=>'type','channelobjecttype'=>'channelobjecttype','calls'=>'calls','pcktsnt'=>'pcktsnt','pcktrcvd'=>'pcktrcvd',
|
'pendupdt'=>'pendupdt',
|
||||||
|
'penddel'=>'penddel',
|
||||||
|
'default'=>'default')
|
||||||
|
);
|
||||||
|
$result['SpeeddialButtons'] = $this->ConvertTableData(
|
||||||
|
'Buttons',
|
||||||
|
array('id'),
|
||||||
|
array('id'=>'id','channelobjecttype'=>'channelobjecttype','name'=>'name','number'=>'number','hint'=>'hint')
|
||||||
|
);
|
||||||
|
$result['CallStatistics'] = $this->ConvertTableData(
|
||||||
|
'CallStatistics',
|
||||||
|
array('type'),
|
||||||
|
array('type'=>'type','channelobjecttype'=>'channelobjecttype','calls'=>'calls','pcktsnt'=>'pcktsnt','pcktrcvd'=>'pcktrcvd',
|
||||||
'lost'=>'lost','jitter'=>'jitter','latency'=>'latency', 'quality'=>'quality','avgqual'=>'avgqual','meanqual'=>'meanqual',
|
'lost'=>'lost','jitter'=>'jitter','latency'=>'latency', 'quality'=>'quality','avgqual'=>'avgqual','meanqual'=>'meanqual',
|
||||||
'maxqual'=>'maxqual','rconceal'=>'rconceal','sconceal'=>'sconceal'));
|
'maxqual'=>'maxqual',
|
||||||
$result['SCCP_Vendor'] = Array('vendor' => strtok($result['skinnyphonetype'], ' '), 'model' => strtok('('),
|
'rconceal'=>'rconceal',
|
||||||
'model_id' => strtok(')'), 'vendor_addon' => strtok($result['configphonetype'], ' '),
|
'sconceal'=>'sconceal')
|
||||||
'model_addon' => strtok(' '));
|
);
|
||||||
|
$result['SCCP_Vendor'] = array('vendor' => strtok($result['skinnyphonetype'], ' '), 'model' => strtok('('),
|
||||||
|
'model_id' => strtok(')'), 'vendor_addon' => strtok($result['configphonetype'], ' '),
|
||||||
|
'model_addon' => strtok(' '));
|
||||||
if (empty($result['SCCP_Vendor']['vendor']) || $result['SCCP_Vendor']['vendor'] == 'Undefined') {
|
if (empty($result['SCCP_Vendor']['vendor']) || $result['SCCP_Vendor']['vendor'] == 'Undefined') {
|
||||||
$result['SCCP_Vendor'] = Array('vendor' => 'Undefined', 'model' => $result['configphonetype'],
|
$result['SCCP_Vendor'] = array('vendor' => 'Undefined', 'model' => $result['configphonetype'],
|
||||||
'model_id' => '', 'vendor_addon' => $result['SCCP_Vendor']['vendor_addon'],
|
'model_id' => '', 'vendor_addon' => $result['SCCP_Vendor']['vendor_addon'],
|
||||||
'model_addon' => $result['SCCP_Vendor']['model_addon']);
|
'model_addon' => $result['SCCP_Vendor']['model_addon']);
|
||||||
}
|
}
|
||||||
$result['MAC_Address'] =$result['macaddress'];
|
$result['MAC_Address'] =$result['macaddress'];
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ExtensionStateList_Response extends SCCPGeneric_Response {
|
class ExtensionStateList_Response extends SCCPGeneric_Response
|
||||||
public function __construct($rawContent) {
|
{
|
||||||
|
public function __construct($rawContent)
|
||||||
|
{
|
||||||
parent::__construct($rawContent);
|
parent::__construct($rawContent);
|
||||||
}
|
}
|
||||||
public function getResult() {
|
public function getResult()
|
||||||
$result = $this->ConvertEventData(array('exten','context'),array('exten','context','hint','status','statustext'));
|
{
|
||||||
|
$result = $this->ConvertEventData(array('exten','context'), array('exten','context','hint','status','statustext'));
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Core Comsnd Interface
|
* Core Comsnd Interface
|
||||||
*
|
*
|
||||||
* https://www.voip-info.org/asterisk-manager-example-php/
|
* https://www.voip-info.org/asterisk-manager-example-php/
|
||||||
*/
|
*/
|
||||||
/* !TODO!: Re-Indent this file. -TODO-: What do you mean? coreaccessinterface ?? */
|
/* !TODO!: Re-Indent this file. -TODO-: What do you mean? coreaccessinterface ?? */
|
||||||
|
|
||||||
namespace FreePBX\modules\Sccp_manager;
|
namespace FreePBX\modules\Sccp_manager;
|
||||||
|
|
||||||
|
class aminterface
|
||||||
class aminterface {
|
{
|
||||||
|
|
||||||
var $_socket;
|
var $_socket;
|
||||||
var $_error;
|
var $_error;
|
||||||
|
@ -29,7 +29,8 @@ class aminterface {
|
||||||
private $_responseFactory;
|
private $_responseFactory;
|
||||||
private $debug_level = 1;
|
private $debug_level = 1;
|
||||||
|
|
||||||
public function load_subspace($parent_class = null) {
|
public function load_subspace($parent_class = null)
|
||||||
|
{
|
||||||
$driverNamespace = "\\FreePBX\\Modules\\Sccp_manager\\aminterface";
|
$driverNamespace = "\\FreePBX\\Modules\\Sccp_manager\\aminterface";
|
||||||
|
|
||||||
$drivers = array('Message' => 'Message.class.php', 'Response' => 'Response.class.php', 'Event' => 'Event.class.php');
|
$drivers = array('Message' => 'Message.class.php', 'Response' => 'Response.class.php', 'Event' => 'Event.class.php');
|
||||||
|
@ -37,7 +38,6 @@ class aminterface {
|
||||||
$class = $driverNamespace . "\\" . $key;
|
$class = $driverNamespace . "\\" . $key;
|
||||||
$driver = __DIR__ . "/" . $value;
|
$driver = __DIR__ . "/" . $value;
|
||||||
if (!class_exists($class, false)) {
|
if (!class_exists($class, false)) {
|
||||||
|
|
||||||
if (file_exists($driver)) {
|
if (file_exists($driver)) {
|
||||||
include(__DIR__ . "/" . $value);
|
include(__DIR__ . "/" . $value);
|
||||||
} else {
|
} else {
|
||||||
|
@ -47,7 +47,8 @@ class aminterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct($parent_class = null) {
|
public function __construct($parent_class = null)
|
||||||
|
{
|
||||||
global $amp_conf;
|
global $amp_conf;
|
||||||
$this->paren_class = $parent_class;
|
$this->paren_class = $parent_class;
|
||||||
$this->_socket = false;
|
$this->_socket = false;
|
||||||
|
@ -57,10 +58,10 @@ class aminterface {
|
||||||
|
|
||||||
|
|
||||||
$this->_eventListeners = array();
|
$this->_eventListeners = array();
|
||||||
// $this->_eventFactory = new EventFactoryImpl(\Logger::getLogger('EventFactory'));
|
// $this->_eventFactory = new EventFactoryImpl(\Logger::getLogger('EventFactory'));
|
||||||
// $this->_responseFactory = new ResponseFactoryImpl(\Logger::getLogger('ResponseFactory'));
|
// $this->_responseFactory = new ResponseFactoryImpl(\Logger::getLogger('ResponseFactory'));
|
||||||
$this->_incomingQueue = array();
|
$this->_incomingQueue = array();
|
||||||
$this->_lastActionId = false;
|
$this->_lastActionId = false;
|
||||||
|
|
||||||
$fld_conf = array('user' => 'AMPMGRUSER', 'pass' => 'AMPMGRPASS');
|
$fld_conf = array('user' => 'AMPMGRUSER', 'pass' => 'AMPMGRPASS');
|
||||||
if (isset($amp_conf['AMPMGRUSER'])) {
|
if (isset($amp_conf['AMPMGRUSER'])) {
|
||||||
|
@ -75,19 +76,23 @@ class aminterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function status() {
|
public function status()
|
||||||
|
{
|
||||||
if ($this->_config['enabled']) {
|
if ($this->_config['enabled']) {
|
||||||
return true;
|
return true;
|
||||||
} else {return false;}
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function info() {
|
public function info()
|
||||||
|
{
|
||||||
$Ver = '13.0.4';
|
$Ver = '13.0.4';
|
||||||
if ($this->_config['enabled']) {
|
if ($this->_config['enabled']) {
|
||||||
return Array('Version' => $Ver,
|
return array('Version' => $Ver,
|
||||||
'about' => 'AMI data ver: ' . $Ver, 'test' => get_declared_classes());
|
'about' => 'AMI data ver: ' . $Ver, 'test' => get_declared_classes());
|
||||||
} else {
|
} else {
|
||||||
return Array('Version' => $Ver,
|
return array('Version' => $Ver,
|
||||||
'about' => 'Disabled AMI ver: ' . $Ver);
|
'about' => 'Disabled AMI ver: ' . $Ver);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -96,15 +101,20 @@ class aminterface {
|
||||||
* Opens a tcp connection to ami.
|
* Opens a tcp connection to ami.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function open() {
|
public function open()
|
||||||
|
{
|
||||||
$cString = $this->_config['tsoket'] . $this->_config['host'] . ':' . $this->_config['port'];
|
$cString = $this->_config['tsoket'] . $this->_config['host'] . ':' . $this->_config['port'];
|
||||||
$this->_context = stream_context_create();
|
$this->_context = stream_context_create();
|
||||||
$errno = 0;
|
$errno = 0;
|
||||||
$errstr = '';
|
$errstr = '';
|
||||||
$this->_ProcessingMessage = '';
|
$this->_ProcessingMessage = '';
|
||||||
$this->_socket = @stream_socket_client(
|
$this->_socket = @stream_socket_client(
|
||||||
$cString, $errno, $errstr,
|
$cString,
|
||||||
$this->_config['timeout'], STREAM_CLIENT_CONNECT, $this->_context
|
$errno,
|
||||||
|
$errstr,
|
||||||
|
$this->_config['timeout'],
|
||||||
|
STREAM_CLIENT_CONNECT,
|
||||||
|
$this->_context
|
||||||
);
|
);
|
||||||
if ($this->_socket === false) {
|
if ($this->_socket === false) {
|
||||||
$this->_errorException('Error connecting to ami: ' . $errstr . $cString);
|
$this->_errorException('Error connecting to ami: ' . $errstr . $cString);
|
||||||
|
@ -129,13 +139,15 @@ class aminterface {
|
||||||
/**
|
/**
|
||||||
* Closes the connection to ami.
|
* Closes the connection to ami.
|
||||||
*/
|
*/
|
||||||
public function close() {
|
public function close()
|
||||||
|
{
|
||||||
$this->_connect_state = false;
|
$this->_connect_state = false;
|
||||||
$this->_ProcessingMessage = '';
|
$this->_ProcessingMessage = '';
|
||||||
@stream_socket_shutdown($this->_socket, STREAM_SHUT_RDWR);
|
@stream_socket_shutdown($this->_socket, STREAM_SHUT_RDWR);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function send($message) {
|
public function send($message)
|
||||||
|
{
|
||||||
$messageToSend = $message->serialize();
|
$messageToSend = $message->serialize();
|
||||||
$length = strlen($messageToSend);
|
$length = strlen($messageToSend);
|
||||||
$this->_countE = 0;
|
$this->_countE = 0;
|
||||||
|
@ -171,7 +183,8 @@ class aminterface {
|
||||||
$this->_errorException("Read waittime: " . ($this->socket_param['timeout']) . " exceeded (timeout).\n");
|
$this->_errorException("Read waittime: " . ($this->socket_param['timeout']) . " exceeded (timeout).\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getRelated($message) {
|
protected function getRelated($message)
|
||||||
|
{
|
||||||
$ret = false;
|
$ret = false;
|
||||||
$id = 0;
|
$id = 0;
|
||||||
$id = $message->getActionID('ActionID');
|
$id = $message->getActionID('ActionID');
|
||||||
|
@ -185,11 +198,13 @@ class aminterface {
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _messageToEvent($msg) {
|
private function _messageToEvent($msg)
|
||||||
|
{
|
||||||
return $this->_eventFromRaw($msg);
|
return $this->_eventFromRaw($msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getMessages() {
|
protected function getMessages()
|
||||||
|
{
|
||||||
$msgs = array();
|
$msgs = array();
|
||||||
// Read something.
|
// Read something.
|
||||||
$read = @fread($this->_socket, 65535);
|
$read = @fread($this->_socket, 65535);
|
||||||
|
@ -200,28 +215,30 @@ class aminterface {
|
||||||
if ($read == "") {
|
if ($read == "") {
|
||||||
usleep(100);
|
usleep(100);
|
||||||
} else {
|
} else {
|
||||||
$this->_msgToDebug(98,'--- Not Empy AMI MSG --- ');
|
$this->_msgToDebug(98, '--- Not Empy AMI MSG --- ');
|
||||||
}
|
}
|
||||||
$this->_ProcessingMessage .= $read;
|
$this->_ProcessingMessage .= $read;
|
||||||
$this->_DumpMessage .= $read;
|
$this->_DumpMessage .= $read;
|
||||||
while (($marker = strpos($this->_ProcessingMessage, aminterface\Message::EOM))) {
|
while (($marker = strpos($this->_ProcessingMessage, aminterface\Message::EOM))) {
|
||||||
$msg = substr($this->_ProcessingMessage, 0, $marker);
|
$msg = substr($this->_ProcessingMessage, 0, $marker);
|
||||||
$this->_ProcessingMessage = substr(
|
$this->_ProcessingMessage = substr(
|
||||||
$this->_ProcessingMessage, $marker + strlen(aminterface\Message::EOM)
|
$this->_ProcessingMessage,
|
||||||
|
$marker + strlen(aminterface\Message::EOM)
|
||||||
);
|
);
|
||||||
$msgs[] = $msg;
|
$msgs[] = $msg;
|
||||||
}
|
}
|
||||||
return $msgs;
|
return $msgs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function process() {
|
public function process()
|
||||||
|
{
|
||||||
$msgs = $this->getMessages();
|
$msgs = $this->getMessages();
|
||||||
$this->_msgToDebug(90,$msgs);
|
$this->_msgToDebug(90, $msgs);
|
||||||
$this->_countE++;
|
$this->_countE++;
|
||||||
if ($this->_countE > 10000) {
|
if ($this->_countE > 10000) {
|
||||||
$this->_msgToDebug(9,'--- Procecc Die, Dump --- ');
|
$this->_msgToDebug(9, '--- Procecc Die, Dump --- ');
|
||||||
$this->_msgToDebug(9,$this->_DumpMessage);
|
$this->_msgToDebug(9, $this->_DumpMessage);
|
||||||
$this->_msgToDebug(9,'--- END Procecc Die, Dump --- ');
|
$this->_msgToDebug(9, '--- END Procecc Die, Dump --- ');
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
foreach ($msgs as $aMsg) {
|
foreach ($msgs as $aMsg) {
|
||||||
|
@ -230,29 +247,29 @@ class aminterface {
|
||||||
if (($resPos !== false) && (($resPos < $evePos) || $evePos === false)) {
|
if (($resPos !== false) && (($resPos < $evePos) || $evePos === false)) {
|
||||||
$response = $this->_msgToResponse($aMsg); // resp Ok
|
$response = $this->_msgToResponse($aMsg); // resp Ok
|
||||||
$this->_incomingQueue[$this->_lastActionId] = $response;
|
$this->_incomingQueue[$this->_lastActionId] = $response;
|
||||||
} else if ($evePos !== false) {
|
} elseif ($evePos !== false) {
|
||||||
$event = $this->_messageToEvent($aMsg); // Event Ok
|
$event = $this->_messageToEvent($aMsg); // Event Ok
|
||||||
|
|
||||||
$this->_msgToDebug(99,'--- Responce Type 2 --- ');
|
$this->_msgToDebug(99, '--- Response Type 2 --- ');
|
||||||
$this->_msgToDebug(99,$aMsg);
|
$this->_msgToDebug(99, $aMsg);
|
||||||
$this->_msgToDebug(99,'--- Event Responce Type 2 --- ');
|
$this->_msgToDebug(99, '--- Event Response Type 2 --- ');
|
||||||
$this->_msgToDebug(99,$event);
|
$this->_msgToDebug(99, $event);
|
||||||
|
|
||||||
if ($event != null) {
|
if ($event != null) {
|
||||||
$response = $this->findResponse($event);
|
$response = $this->findResponse($event);
|
||||||
// print_r($response);
|
// print_r($response);
|
||||||
// print_r('<br>--- E2 Responce Type 2 ----------<br>');
|
// print_r('<br>--- E2 Response Type 2 ----------<br>');
|
||||||
|
|
||||||
if ($response === false || $response->isComplete()) {
|
if ($response === false || $response->isComplete()) {
|
||||||
$this->dispatch($event); // не работает
|
$this->dispatch($event); // не работает
|
||||||
} else {
|
} else {
|
||||||
$response->addEvent($event);
|
$response->addEvent($event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// broken ami.. sending a response with events without
|
// broken ami.. sending a response with events without
|
||||||
// Event and ActionId
|
// Event and ActionId
|
||||||
$this->_msgToDebug(1,'resp broken ami');
|
$this->_msgToDebug(1, 'resp broken ami');
|
||||||
$bMsg = 'Event: ResponseEvent' . "\r\n";
|
$bMsg = 'Event: ResponseEvent' . "\r\n";
|
||||||
$bMsg .= 'ActionId: ' . $this->_lastActionId . "\r\n" . $aMsg;
|
$bMsg .= 'ActionId: ' . $this->_lastActionId . "\r\n" . $aMsg;
|
||||||
$event = $this->_messageToEvent($bMsg);
|
$event = $this->_messageToEvent($bMsg);
|
||||||
|
@ -261,19 +278,20 @@ class aminterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// print_r('<br>--- EProcecc ----------<br>');
|
// print_r('<br>--- EProcecc ----------<br>');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _msgToDebug($level, $msg) {
|
private function _msgToDebug($level, $msg)
|
||||||
|
{
|
||||||
if ($level > $this->debug_level) {
|
if ($level > $this->debug_level) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
print_r('<br> level: '.$level.' ');
|
print_r('<br> level: '.$level.' ');
|
||||||
print_r($msg);
|
print_r($msg);
|
||||||
print_r('<br>');
|
print_r('<br>');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _msgToResponse($msg) {
|
private function _msgToResponse($msg)
|
||||||
|
{
|
||||||
// print_r("<br>------------hmsg----------<br>");
|
// print_r("<br>------------hmsg----------<br>");
|
||||||
// print_r($this->_lastActionClass);
|
// print_r($this->_lastActionClass);
|
||||||
// print_r($this->_lastRequestedResponseHandler);
|
// print_r($this->_lastRequestedResponseHandler);
|
||||||
|
@ -293,39 +311,42 @@ class aminterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function _msgFromRaw($message, $requestingaction = false, $responseHandler = false) {
|
public function _msgFromRaw($message, $requestingaction = false, $responseHandler = false)
|
||||||
|
{
|
||||||
|
|
||||||
$_className = false;
|
$_className = false;
|
||||||
|
|
||||||
$responseclass = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\Generic_Response';
|
$responseclass = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\Generic_Response';
|
||||||
if ($responseHandler != false) {
|
if ($responseHandler != false) {
|
||||||
$_className = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\' . $responseHandler . '_Response';
|
$_className = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\' . $responseHandler . '_Response';
|
||||||
} else if ($requestingaction != false) {
|
} elseif ($requestingaction != false) {
|
||||||
$_className = '\\FreePBX\\modules\\Sccp_manager\\' . substr(get_class($requestingaction), 20, -6) . '_Response';
|
$_className = '\\FreePBX\\modules\\Sccp_manager\\' . substr(get_class($requestingaction), 20, -6) . '_Response';
|
||||||
}
|
}
|
||||||
if ($_className) {
|
if ($_className) {
|
||||||
if (class_exists($_className, true)) {
|
if (class_exists($_className, true)) {
|
||||||
$responseclass = $_className;
|
$responseclass = $_className;
|
||||||
} else if ($responseHandler != false) {
|
} elseif ($responseHandler != false) {
|
||||||
$this->_errorException('Response Class ' . $_className . ' requested via responseHandler, could not be found');
|
$this->_errorException('Response Class ' . $_className . ' requested via responseHandler, could not be found');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new $responseclass($message);
|
return new $responseclass($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function _errorException($msg) {
|
protected function _errorException($msg)
|
||||||
|
{
|
||||||
$this->_error[] = $msg;
|
$this->_error[] = $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Replace or dublicate to AMI interface
|
* Replace or dublicate to AMI interface
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function _eventFromRaw($message) {
|
public function _eventFromRaw($message)
|
||||||
|
{
|
||||||
$eventStart = strpos($message, 'Event: ') + 7;
|
$eventStart = strpos($message, 'Event: ') + 7;
|
||||||
|
|
||||||
if ($eventStart > strlen($message)) {
|
if ($eventStart > strlen($message)) {
|
||||||
|
@ -344,31 +365,33 @@ class aminterface {
|
||||||
return new $className($message);
|
return new $className($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function _respnceFromRaw($message, $requestingaction = false, $responseHandler = false) {
|
public function _respnceFromRaw($message, $requestingaction = false, $responseHandler = false)
|
||||||
|
{
|
||||||
|
|
||||||
$responseclass = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\Response';
|
$responseclass = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\Response';
|
||||||
|
|
||||||
$_className = false;
|
$_className = false;
|
||||||
if ($responseHandler != false) {
|
if ($responseHandler != false) {
|
||||||
$_className = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\' . $responseHandler . '_Response';
|
$_className = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\' . $responseHandler . '_Response';
|
||||||
} else if ($requestingaction != false) {
|
} elseif ($requestingaction != false) {
|
||||||
$_className = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\' . substr(get_class($requestingaction), 20, -6) . '_Response';
|
$_className = '\\FreePBX\\modules\\Sccp_manager\\aminterface\\' . substr(get_class($requestingaction), 20, -6) . '_Response';
|
||||||
}
|
}
|
||||||
if ($_className) {
|
if ($_className) {
|
||||||
if (class_exists($_className, true)) {
|
if (class_exists($_className, true)) {
|
||||||
$responseclass = $_className;
|
$responseclass = $_className;
|
||||||
} else if ($responseHandler != false) {
|
} elseif ($responseHandler != false) {
|
||||||
throw new AMIException('Response Class ' . $_className . ' requested via responseHandler, could not be found');
|
throw new AMIException('Response Class ' . $_className . ' requested via responseHandler, could not be found');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if ($this->_logger->isDebugEnabled()) $this->_logger->debug('Created: ' . $responseclass . "\n");
|
// if ($this->_logger->isDebugEnabled()) $this->_logger->debug('Created: ' . $responseclass . "\n");
|
||||||
print_r($responseclass);
|
print_r($responseclass);
|
||||||
die();
|
die();
|
||||||
return new $responseclass($message);
|
return new $responseclass($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// protected function findResponse(IncomingMessage $message) {
|
// protected function findResponse(IncomingMessage $message) {
|
||||||
protected function findResponse($message) {
|
protected function findResponse($message)
|
||||||
|
{
|
||||||
$actionId = $message->getActionId();
|
$actionId = $message->getActionId();
|
||||||
if (isset($this->_incomingQueue[$actionId])) {
|
if (isset($this->_incomingQueue[$actionId])) {
|
||||||
return $this->_incomingQueue[$actionId];
|
return $this->_incomingQueue[$actionId];
|
||||||
|
@ -376,7 +399,8 @@ class aminterface {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function dispatch($message) {
|
protected function dispatch($message)
|
||||||
|
{
|
||||||
print_r("<br>------------dispatch----------<br>");
|
print_r("<br>------------dispatch----------<br>");
|
||||||
print_r($message);
|
print_r($message);
|
||||||
return false;
|
return false;
|
||||||
|
@ -391,25 +415,26 @@ class aminterface {
|
||||||
}
|
}
|
||||||
if ($listener instanceof \Closure) {
|
if ($listener instanceof \Closure) {
|
||||||
$listener($message);
|
$listener($message);
|
||||||
} else if (is_array($listener)) {
|
} elseif (is_array($listener)) {
|
||||||
$listener[0]->$listener[1]($message);
|
$listener[0]->$listener[1]($message);
|
||||||
} else {
|
} else {
|
||||||
$listener->handle($message);
|
$listener->handle($message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print_r("<br>------------E dispatch----------<br>");
|
print_r("<br>------------E dispatch----------<br>");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
function core_list_all_exten($keyfld = '', $filter = array()) {
|
function core_list_all_exten($keyfld = '', $filter = array())
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------Adaptive Function ------------------------------------------------------------
|
//-------------------Adaptive Function ------------------------------------------------------------
|
||||||
|
|
||||||
function core_list_hints() {
|
function core_list_hints()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
if ($this->_connect_state) {
|
if ($this->_connect_state) {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\ExtensionStateListAction();
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\ExtensionStateListAction();
|
||||||
|
@ -424,7 +449,8 @@ class aminterface {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function core_list_all_hints() {
|
function core_list_all_hints()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
if ($this->_connect_state) {
|
if ($this->_connect_state) {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\ExtensionStateListAction();
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\ExtensionStateListAction();
|
||||||
|
@ -439,7 +465,8 @@ class aminterface {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
// --------------------- SCCP Comands
|
// --------------------- SCCP Comands
|
||||||
function sccp_list_keysets() {
|
function sccp_list_keysets()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
if ($this->_connect_state) {
|
if ($this->_connect_state) {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPShowSoftkeySetsAction();
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPShowSoftkeySetsAction();
|
||||||
|
@ -451,7 +478,8 @@ class aminterface {
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
function sccp_get_active_device() {
|
function sccp_get_active_device()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
if ($this->_connect_state) {
|
if ($this->_connect_state) {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPShowDevicesAction();
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPShowDevicesAction();
|
||||||
|
@ -463,7 +491,8 @@ class aminterface {
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
function sccp_getdevice_info($devicename) {
|
function sccp_getdevice_info($devicename)
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
if ($this->_connect_state) {
|
if ($this->_connect_state) {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPShowDeviceAction($devicename);
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPShowDeviceAction($devicename);
|
||||||
|
@ -473,14 +502,15 @@ class aminterface {
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
function sccp_device_reset($devicename,$action = '') {
|
function sccpDeviceReset($devicename, $action = '')
|
||||||
|
{
|
||||||
if ($this->_connect_state) {
|
if ($this->_connect_state) {
|
||||||
if ($action == 'tokenack') {
|
if ($action == 'tokenack') {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPTokenAckAction($devicename);
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPTokenAckAction($devicename);
|
||||||
} else {
|
} else {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPDeviceRestartAction($devicename,$action);
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPDeviceRestartAction($devicename, $action);
|
||||||
}
|
}
|
||||||
$_response = $this->send($_action);
|
$_response = $this->send($_action);
|
||||||
$result['data'] = 'Device :'.$devicename.' Result: '.$_response->getMessage();
|
$result['data'] = 'Device :'.$devicename.' Result: '.$_response->getMessage();
|
||||||
$result['Response']=$_response->getKey('Response');
|
$result['Response']=$_response->getKey('Response');
|
||||||
// $result = $_response->getResult();
|
// $result = $_response->getResult();
|
||||||
|
@ -489,17 +519,19 @@ class aminterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------- Core Comands ----
|
//------------------- Core Comands ----
|
||||||
function core_sccp_reload() {
|
function core_sccp_reload()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
if ($this->_connect_state) {
|
if ($this->_connect_state) {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\ReloadAction('chan_sccp');
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\ReloadAction('chan_sccp');
|
||||||
// $_action = new \FreePBX\modules\Sccp_manager\aminterface\CommandAction('sccp reload force'); // No Responce Result !!
|
// $_action = new \FreePBX\modules\Sccp_manager\aminterface\CommandAction('sccp reload force'); // No Response Result !!
|
||||||
$_response = $this->send($_action);
|
$_response = $this->send($_action);
|
||||||
$result = $_response->getMessage();
|
$result = $_response->getMessage();
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
function getSCCPVersion() {
|
function getSCCPVersion()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
if ($this->_connect_state) {
|
if ($this->_connect_state) {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPConfigMetaDataAction();
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\SCCPConfigMetaDataAction();
|
||||||
|
@ -509,7 +541,8 @@ class aminterface {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRealTimeStatus() {
|
function getRealTimeStatus()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
if ($this->_connect_state) {
|
if ($this->_connect_state) {
|
||||||
$_action = new \FreePBX\modules\Sccp_manager\aminterface\CommandAction('realtime mysql status');
|
$_action = new \FreePBX\modules\Sccp_manager\aminterface\CommandAction('realtime mysql status');
|
||||||
|
@ -523,5 +556,4 @@ class aminterface {
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,18 +10,21 @@
|
||||||
|
|
||||||
namespace FreePBX\modules\Sccp_manager;
|
namespace FreePBX\modules\Sccp_manager;
|
||||||
|
|
||||||
class oldinterface {
|
class oldinterface
|
||||||
|
{
|
||||||
|
|
||||||
var $error;
|
var $error;
|
||||||
|
|
||||||
public function __construct($parent_class = null) {
|
public function __construct($parent_class = null)
|
||||||
|
{
|
||||||
$this->paren_class = $parent_class;
|
$this->paren_class = $parent_class;
|
||||||
$this->error = "";
|
$this->error = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function info() {
|
public function info()
|
||||||
|
{
|
||||||
$Ver = '13.0.4';
|
$Ver = '13.0.4';
|
||||||
return Array('Version' => $Ver,
|
return array('Version' => $Ver,
|
||||||
'about' => 'Old interface data ver: ' . $Ver);
|
'about' => 'Old interface data ver: ' . $Ver);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +37,8 @@ class oldinterface {
|
||||||
* Replace or dublicate to AMI interface
|
* Replace or dublicate to AMI interface
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function sccp_core_commands($params = array()) {
|
public function sccp_core_commands($params = array())
|
||||||
|
{
|
||||||
global $astman;
|
global $astman;
|
||||||
$cmd_list = array('get_softkey' => array('cmd' => "sccp show softkeyssets", 'param' => ''),
|
$cmd_list = array('get_softkey' => array('cmd' => "sccp show softkeyssets", 'param' => ''),
|
||||||
'get_version' => array('cmd' => "sccp show version", 'param' => ''),
|
'get_version' => array('cmd' => "sccp show version", 'param' => ''),
|
||||||
|
@ -77,7 +81,6 @@ class oldinterface {
|
||||||
if (!empty($params['name'])) {
|
if (!empty($params['name'])) {
|
||||||
$astman->Command('sccp device ' . $params['name'] . ' ' . $msg);
|
$astman->Command('sccp device ' . $params['name'] . ' ' . $msg);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -89,7 +92,8 @@ class oldinterface {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_getdevice_info($dev_id) {
|
public function sccp_getdevice_info($dev_id)
|
||||||
|
{
|
||||||
if (empty($dev_id)) {
|
if (empty($dev_id)) {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
@ -113,9 +117,9 @@ class oldinterface {
|
||||||
} else {
|
} else {
|
||||||
$res2 = '';
|
$res2 = '';
|
||||||
}
|
}
|
||||||
$res3['SCCP_Vendor'] = Array('vendor' => strtok($res1, ' '), 'model' => strtok('('), 'model_id' => strtok(')'), 'vendor_addon' => strtok($res2, ' '), 'model_addon' => strtok(' '));
|
$res3['SCCP_Vendor'] = array('vendor' => strtok($res1, ' '), 'model' => strtok('('), 'model_id' => strtok(')'), 'vendor_addon' => strtok($res2, ' '), 'model_addon' => strtok(' '));
|
||||||
if (empty($res3['SCCP_Vendor']['vendor']) || $res3['SCCP_Vendor']['vendor'] == 'Undefined') {
|
if (empty($res3['SCCP_Vendor']['vendor']) || $res3['SCCP_Vendor']['vendor'] == 'Undefined') {
|
||||||
$res3['SCCP_Vendor'] = Array('vendor' => 'Undefined', 'model' => $res4, 'model_id' => '', 'vendor_addon' => $res3['SCCP_Vendor']['vendor_addon'], 'model_addon' => $res3['SCCP_Vendor']['model_addon']);
|
$res3['SCCP_Vendor'] = array('vendor' => 'Undefined', 'model' => $res4, 'model_id' => '', 'vendor_addon' => $res3['SCCP_Vendor']['vendor_addon'], 'model_addon' => $res3['SCCP_Vendor']['model_addon']);
|
||||||
// return $res4;
|
// return $res4;
|
||||||
// return array();
|
// return array();
|
||||||
}
|
}
|
||||||
|
@ -130,7 +134,8 @@ class oldinterface {
|
||||||
* A function should be used in the form of buttons for getting all hint. Not working. I don't know how to use properly.
|
* A function should be used in the form of buttons for getting all hint. Not working. I don't know how to use properly.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function sccp_list_hints() {
|
public function sccp_list_hints()
|
||||||
|
{
|
||||||
$hint_key = array();
|
$hint_key = array();
|
||||||
$hint_all = $this->sccp_list_all_hints();
|
$hint_all = $this->sccp_list_all_hints();
|
||||||
foreach ($hint_all as $value) {
|
foreach ($hint_all as $value) {
|
||||||
|
@ -143,7 +148,8 @@ class oldinterface {
|
||||||
return $hint_key;
|
return $hint_key;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_list_all_hints() {
|
public function sccp_list_all_hints()
|
||||||
|
{
|
||||||
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_hints'));
|
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_hints'));
|
||||||
$ast_out = preg_split("/[\n]/", $ast_out['data']);
|
$ast_out = preg_split("/[\n]/", $ast_out['data']);
|
||||||
$ast_key = array();
|
$ast_key = array();
|
||||||
|
@ -171,7 +177,8 @@ class oldinterface {
|
||||||
return $ast_key;
|
return $ast_key;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_realtime_status() {
|
public function sccp_realtime_status()
|
||||||
|
{
|
||||||
$ast_res = array();
|
$ast_res = array();
|
||||||
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_realtime_status'));
|
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_realtime_status'));
|
||||||
$ast_out = preg_split("/[\n]/", $ast_out['data']);
|
$ast_out = preg_split("/[\n]/", $ast_out['data']);
|
||||||
|
@ -190,7 +197,8 @@ class oldinterface {
|
||||||
// !TODO!: -TODO-: install.php is still using the other version number. This is actually where I use another method ?
|
// !TODO!: -TODO-: install.php is still using the other version number. This is actually where I use another method ?
|
||||||
|
|
||||||
|
|
||||||
public function get_compatible_sccp() {
|
public function get_compatible_sccp()
|
||||||
|
{
|
||||||
$res = $this->getSCCPVersion();
|
$res = $this->getSCCPVersion();
|
||||||
if (empty($res)) {
|
if (empty($res)) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -220,7 +228,8 @@ class oldinterface {
|
||||||
// return $res["vCode"];
|
// return $res["vCode"];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getSCCPVersion() {
|
public function getSCCPVersion()
|
||||||
|
{
|
||||||
$res = $this->getChanSCCPVersion();
|
$res = $this->getChanSCCPVersion();
|
||||||
if (empty($res)) {
|
if (empty($res)) {
|
||||||
$res = $this->getCoreSCCPVersion();
|
$res = $this->getCoreSCCPVersion();
|
||||||
|
@ -228,7 +237,8 @@ class oldinterface {
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCoreSCCPVersion() {
|
function getCoreSCCPVersion()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
$ast_out = $this->sccp_version();
|
$ast_out = $this->sccp_version();
|
||||||
$result["Version"] = $ast_out[0];
|
$result["Version"] = $ast_out[0];
|
||||||
|
@ -252,9 +262,10 @@ class oldinterface {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function sccp_version() {
|
private function sccp_version()
|
||||||
|
{
|
||||||
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_version'));
|
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_version'));
|
||||||
if ( ($ast_out['Response'] == 'Error') || (strpos($ast_out['data'], 'No such command') != false) ) {
|
if (($ast_out['Response'] == 'Error') || (strpos($ast_out['data'], 'No such command') != false)) {
|
||||||
return array('-1');
|
return array('-1');
|
||||||
}
|
}
|
||||||
if (preg_match("/Release.*\(/", $ast_out['data'], $matches)) {
|
if (preg_match("/Release.*\(/", $ast_out['data'], $matches)) {
|
||||||
|
@ -265,7 +276,8 @@ class oldinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getChanSCCPVersion() {
|
function getChanSCCPVersion()
|
||||||
|
{
|
||||||
global $astman;
|
global $astman;
|
||||||
$result = array();
|
$result = array();
|
||||||
if (!$astman) {
|
if (!$astman) {
|
||||||
|
@ -285,11 +297,9 @@ class oldinterface {
|
||||||
$result["vCode"] = 400;
|
$result["vCode"] = 400;
|
||||||
if ($version_parts[1] == "1") {
|
if ($version_parts[1] == "1") {
|
||||||
$result["vCode"] = 410;
|
$result["vCode"] = 410;
|
||||||
} else
|
} elseif ($version_parts[1] == "2") {
|
||||||
if ($version_parts[1] == "2") {
|
|
||||||
$result["vCode"] = 420;
|
$result["vCode"] = 420;
|
||||||
} else
|
} elseif ($version_parts[1] >= "3") {
|
||||||
if ($version_parts[1] >= "3") {
|
|
||||||
$result["vCode"] = 430;
|
$result["vCode"] = 430;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -338,7 +348,8 @@ class oldinterface {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_list_keysets() {
|
public function sccp_list_keysets()
|
||||||
|
{
|
||||||
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_softkey'));
|
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_softkey'));
|
||||||
|
|
||||||
$ast_out = preg_split("/[\n]/", $ast_out['data']);
|
$ast_out = preg_split("/[\n]/", $ast_out['data']);
|
||||||
|
@ -364,7 +375,8 @@ class oldinterface {
|
||||||
return $ast_key;
|
return $ast_key;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_get_active_device() {
|
public function sccp_get_active_device()
|
||||||
|
{
|
||||||
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_device'));
|
$ast_out = $this->sccp_core_commands(array('cmd' => 'get_device'));
|
||||||
|
|
||||||
$ast_out = preg_split("/[\n]/", $ast_out['data']);
|
$ast_out = preg_split("/[\n]/", $ast_out['data']);
|
||||||
|
@ -392,20 +404,20 @@ class oldinterface {
|
||||||
$it++;
|
$it++;
|
||||||
} while ((count($line_arr) > 3) and ( $it < count($line_arr)));
|
} while ((count($line_arr) > 3) and ( $it < count($line_arr)));
|
||||||
explode(";|", implode(";|", $line_arr));
|
explode(";|", implode(";|", $line_arr));
|
||||||
list ($descr, $adress, $devname, $status, $token, $junk) = explode(";|", implode(";|", $line_arr));
|
list ($descr, $address, $devname, $status, $token, $junk) = explode(";|", implode(";|", $line_arr));
|
||||||
|
|
||||||
// list ($descr, $adress, $devname, $status, $junk) = $line_arr;
|
// list ($descr, $address, $devname, $status, $junk) = $line_arr;
|
||||||
// if (strlen($ast_key[$devname]) < 1) {
|
// if (strlen($ast_key[$devname]) < 1) {
|
||||||
if (strlen($devname) > 1) {
|
if (strlen($devname) > 1) {
|
||||||
$ast_key[$devname] = Array('name' => $devname, 'status' => $status, 'address' => $adress, 'descr' => $descr, 'token' => $token);
|
$ast_key[$devname] = array('name' => $devname, 'status' => $status, 'address' => $address, 'descr' => $descr, 'token' => $token);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
if (isset($ast_key[$devname])) {
|
if (isset($ast_key[$devname])) {
|
||||||
if (strlen($ast_key[$devname]) < 1) {
|
if (strlen($ast_key[$devname]) < 1) {
|
||||||
$ast_key[$devname] = Array('name' => $devname, 'status' => $status, 'address' => $adress, 'descr' => $descr, 'token' => $descr);
|
$ast_key[$devname] = Array('name' => $devname, 'status' => $status, 'address' => $address, 'descr' => $descr, 'token' => $descr);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$ast_key[$devname] = Array('name' => $devname, 'status' => $status, 'address' => $adress, 'descr' => $descr, 'token' => $token);
|
$ast_key[$devname] = Array('name' => $devname, 'status' => $status, 'address' => $address, 'descr' => $descr, 'token' => $token);
|
||||||
}
|
}
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -418,7 +430,8 @@ class oldinterface {
|
||||||
* Replace sccp_core_commands($params = array()) {
|
* Replace sccp_core_commands($params = array()) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private function astman_retrieveJSFromMetaData($segment = "") {
|
private function astman_retrieveJSFromMetaData($segment = "")
|
||||||
|
{
|
||||||
global $astman;
|
global $astman;
|
||||||
$params = array();
|
$params = array();
|
||||||
if ($segment != "") {
|
if ($segment != "") {
|
||||||
|
@ -434,7 +447,8 @@ class oldinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function strpos_array($haystack, $needles) {
|
private function strpos_array($haystack, $needles)
|
||||||
|
{
|
||||||
if (is_array($needles)) {
|
if (is_array($needles)) {
|
||||||
foreach ($needles as $str) {
|
foreach ($needles as $str) {
|
||||||
if (is_array($str)) {
|
if (is_array($str)) {
|
||||||
|
@ -442,22 +456,25 @@ class oldinterface {
|
||||||
} else {
|
} else {
|
||||||
$pos = strpos($haystack, $str);
|
$pos = strpos($haystack, $str);
|
||||||
}
|
}
|
||||||
if ($pos !== FALSE) {
|
if ($pos !== false) {
|
||||||
return $pos;
|
return $pos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return strpos($haystack, $needles);
|
return strpos($haystack, $needles);
|
||||||
}
|
}
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function loc_after($value, $inthat) {
|
private function loc_after($value, $inthat)
|
||||||
if (!is_bool(strpos($inthat, $value)))
|
{
|
||||||
|
if (!is_bool(strpos($inthat, $value))) {
|
||||||
return substr($inthat, strpos($inthat, $value) + strlen($value));
|
return substr($inthat, strpos($inthat, $value) + strlen($value));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getеtestChanSCC() {
|
function getеtestChanSCC()
|
||||||
|
{
|
||||||
global $astman;
|
global $astman;
|
||||||
// $action = Array('SCCPShowGlobals',);
|
// $action = Array('SCCPShowGlobals',);
|
||||||
$params = array();
|
$params = array();
|
||||||
|
@ -472,7 +489,8 @@ class oldinterface {
|
||||||
/*
|
/*
|
||||||
* [Segments] => ( [0] => general [1] => device [2] => line [3] => softkey )
|
* [Segments] => ( [0] => general [1] => device [2] => line [3] => softkey )
|
||||||
*/
|
*/
|
||||||
function getеtestChanSCCP_GlablsInfo($Segment = '') {
|
function getGlobalsFromMetaData($Segment = '')
|
||||||
|
{
|
||||||
global $astman;
|
global $astman;
|
||||||
$params = array();
|
$params = array();
|
||||||
|
|
||||||
|
@ -498,5 +516,4 @@ class oldinterface {
|
||||||
}
|
}
|
||||||
return $metadata;
|
return $metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,35 +1,39 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Core Comsnd Interface
|
* Core Comsnd Interface
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace FreePBX\modules\Sccp_manager;
|
namespace FreePBX\modules\Sccp_manager;
|
||||||
|
|
||||||
class dbinterface {
|
class dbinterface
|
||||||
|
{
|
||||||
|
|
||||||
private $val_null = 'NONE'; /// REPLACE to null Field
|
private $val_null = 'NONE'; /// REPLACE to null Field
|
||||||
|
|
||||||
public function __construct($parent_class = null) {
|
public function __construct($parent_class = null)
|
||||||
$this->paren_class = $parent_class;
|
{
|
||||||
|
$this->paren_class = $parent_class;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function info() {
|
public function info()
|
||||||
|
{
|
||||||
$Ver = '13.0.2';
|
$Ver = '13.0.2';
|
||||||
return Array('Version' => $Ver,
|
return array('Version' => $Ver,
|
||||||
'about' => 'Data access interface ver: ' . $Ver);
|
'about' => 'Data access interface ver: ' . $Ver);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Core Access Function
|
* Core Access Function
|
||||||
*/
|
*/
|
||||||
public function get_db_SccpTableByID($dataid, $data = array(), $indexField = '') {
|
public function get_db_SccpTableByID($dataid, $data = array(), $indexField = '')
|
||||||
|
{
|
||||||
$resut = array();
|
$resut = array();
|
||||||
$raw = $this->get_db_SccpTableData($dataid, $data);
|
$raw = $this->get_db_SccpTableData($dataid, $data);
|
||||||
if ( empty($raw) || empty($indexField)) {
|
if (empty($raw) || empty($indexField)) {
|
||||||
return $raw;
|
return $raw;
|
||||||
}
|
}
|
||||||
foreach ($raw as $value) {
|
foreach ($raw as $value) {
|
||||||
|
@ -39,9 +43,10 @@ class dbinterface {
|
||||||
return $resut;
|
return $resut;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_db_SccpTableData($dataid, $data = array()) {
|
public function get_db_SccpTableData($dataid, $data = array())
|
||||||
|
{
|
||||||
if ($dataid == '') {
|
if ($dataid == '') {
|
||||||
return False;
|
return false;
|
||||||
}
|
}
|
||||||
switch ($dataid) {
|
switch ($dataid) {
|
||||||
case "SccpExtension":
|
case "SccpExtension":
|
||||||
|
@ -49,7 +54,8 @@ class dbinterface {
|
||||||
$sql = "SELECT * FROM `sccpline` ORDER BY `name`";
|
$sql = "SELECT * FROM `sccpline` ORDER BY `name`";
|
||||||
$raw_settings = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
$raw_settings = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
||||||
} else {
|
} else {
|
||||||
$sql = "SELECT * FROM `sccpline` WHERE `name`='" . $data['name']. "'";;
|
$sql = "SELECT * FROM `sccpline` WHERE `name`='" . $data['name']. "'";
|
||||||
|
;
|
||||||
$raw_settings = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
$raw_settings = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -72,7 +78,8 @@ class dbinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($data['name'])) {
|
if (!empty($data['name'])) {
|
||||||
$filtred = "`name`='" . $data['name']. "'";;
|
$filtred = "`name`='" . $data['name']. "'";
|
||||||
|
;
|
||||||
$singlrow = true;
|
$singlrow = true;
|
||||||
}
|
}
|
||||||
if (!empty($data['type'])) {
|
if (!empty($data['type'])) {
|
||||||
|
@ -141,7 +148,7 @@ class dbinterface {
|
||||||
$sql = 'SELECT * FROM sccpbuttonconfig WHERE ' .$sql. 'ORDER BY `instance`;';
|
$sql = 'SELECT * FROM sccpbuttonconfig WHERE ' .$sql. 'ORDER BY `instance`;';
|
||||||
$raw_settings = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
$raw_settings = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
||||||
} else {
|
} else {
|
||||||
$raw_settings = Array();
|
$raw_settings = array();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -149,13 +156,15 @@ class dbinterface {
|
||||||
return $raw_settings;
|
return $raw_settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_db_SccpSetting() {
|
public function get_db_SccpSetting()
|
||||||
|
{
|
||||||
$sql = "SELECT `keyword`, `data`, `type`, `seq` FROM `sccpsettings` ORDER BY `type`, `seq`";
|
$sql = "SELECT `keyword`, `data`, `type`, `seq` FROM `sccpsettings` ORDER BY `type`, `seq`";
|
||||||
$raw_settings = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
$raw_settings = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
||||||
return $raw_settings;
|
return $raw_settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_db_sysvalues() {
|
public function get_db_sysvalues()
|
||||||
|
{
|
||||||
$sql = "SHOW VARIABLES LIKE '%group_concat%'";
|
$sql = "SHOW VARIABLES LIKE '%group_concat%'";
|
||||||
$raw_settings = sql($sql, "getRow", DB_FETCHMODE_ASSOC);
|
$raw_settings = sql($sql, "getRow", DB_FETCHMODE_ASSOC);
|
||||||
return $raw_settings;
|
return $raw_settings;
|
||||||
|
@ -165,7 +174,8 @@ class dbinterface {
|
||||||
* Get Sccp Device Model information
|
* Get Sccp Device Model information
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function getDb_model_info($get = "all", $format_list = "all", $filter = array()) {
|
function getDb_model_info($get = "all", $format_list = "all", $filter = array())
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
switch ($format_list) {
|
switch ($format_list) {
|
||||||
case "model":
|
case "model":
|
||||||
|
@ -230,8 +240,9 @@ class dbinterface {
|
||||||
return $raw_settings;
|
return $raw_settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
function sccp_save_db($db_name = "", $save_value = array(), $mode = 'update', $key_fld = "", $hwid = "") {
|
function write($db_name = "", $save_value = array(), $mode = 'update', $key_fld = "", $hwid = "")
|
||||||
// mode clear - Empty tabele before update
|
{
|
||||||
|
// mode clear - Empty tabele before update
|
||||||
// mode update - update / replace record
|
// mode update - update / replace record
|
||||||
global $db;
|
global $db;
|
||||||
// global $amp_conf;
|
// global $amp_conf;
|
||||||
|
@ -315,42 +326,44 @@ class dbinterface {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* My be Replace by SccpTables ??!
|
* My be Replace by SccpTables ??!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function dump_sccp_tables($data_path, $database, $user, $pass ) {
|
public function dump_sccp_tables($data_path, $database, $user, $pass)
|
||||||
|
{
|
||||||
$filename = $data_path.'/sccp_backup_'.date('G_a_m_d_y').'.sql';
|
$filename = $data_path.'/sccp_backup_'.date('G_a_m_d_y').'.sql';
|
||||||
$result = exec('mysqldump '.$database.' --password='.$pass.' --user='.$user.' --single-transaction >'.$filename ,$output);
|
$result = exec('mysqldump '.$database.' --password='.$pass.' --user='.$user.' --single-transaction >'.$filename, $output);
|
||||||
return $filename;
|
return $filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check Table structure
|
* Check Table structure
|
||||||
*/
|
*/
|
||||||
public function validate() {
|
public function validate()
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
$check_fields = array('430' => array('_hwlang' => "varchar(12)"), '431' => array('private'=> "enum('on','off')"), '433' => array('directed_pickup'=>'') );
|
$check_fields = array('430' => array('_hwlang' => "varchar(12)"), '431' => array('private'=> "enum('on','off')"), '433' => array('directed_pickup'=>'') );
|
||||||
$sql = "DESCRIBE `sccpdevice`;";
|
$sql = "DESCRIBE `sccpdevice`;";
|
||||||
$raw_result = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
$raw_result = sql($sql, "getAll", DB_FETCHMODE_ASSOC);
|
||||||
$result = 0;
|
$result = 0;
|
||||||
foreach ($raw_result as $value) {
|
foreach ($raw_result as $value) {
|
||||||
$id_result[$value['Field']] = $value['Type'];
|
$id_result[$value['Field']] = $value['Type'];
|
||||||
}
|
}
|
||||||
foreach ($check_fields as $key => $value) {
|
foreach ($check_fields as $key => $value) {
|
||||||
$sub_result = true;
|
$sub_result = true;
|
||||||
foreach($value as $skey => $svalue) {
|
foreach ($value as $skey => $svalue) {
|
||||||
if (!empty($svalue) ) {
|
if (!empty($svalue)) {
|
||||||
if (empty($id_result[$skey])) {
|
if (empty($id_result[$skey])) {
|
||||||
$sub_result = false;
|
$sub_result = false;
|
||||||
|
} else {
|
||||||
|
if (strtolower($id_result[$skey]) != strtolower($svalue)) {
|
||||||
|
$sub_result = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (strtolower($id_result[$skey]) != strtolower($svalue)) {
|
if (!empty($id_result[$skey])) {
|
||||||
$sub_result = false;
|
$sub_result = false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!empty($id_result[$skey])) {
|
|
||||||
$sub_result = false;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ($sub_result) {
|
if ($sub_result) {
|
||||||
$result = $key;
|
$result = $key;
|
||||||
|
@ -361,5 +374,4 @@ class dbinterface {
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,24 +1,28 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace FreePBX\modules\Sccp_manager;
|
namespace FreePBX\modules\Sccp_manager;
|
||||||
|
|
||||||
class extconfigs {
|
class extconfigs
|
||||||
|
{
|
||||||
|
|
||||||
public function __construct($parent_class = null) {
|
public function __construct($parent_class = null)
|
||||||
|
{
|
||||||
$this->paren_class = $parent_class;
|
$this->paren_class = $parent_class;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function info() {
|
public function info()
|
||||||
|
{
|
||||||
$Ver = '13.0.3';
|
$Ver = '13.0.3';
|
||||||
return Array('Version' => $Ver,
|
return array('Version' => $Ver,
|
||||||
'about' => 'Default Setings and Enums ver: ' . $Ver);
|
'about' => 'Default Setings and Enums ver: ' . $Ver);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getextConfig($id = '', $index = '') {
|
public function getextConfig($id = '', $index = '')
|
||||||
|
{
|
||||||
switch ($id) {
|
switch ($id) {
|
||||||
case 'keyset':
|
case 'keyset':
|
||||||
$result = $this->keysetdefault;
|
$result = $this->keysetdefault;
|
||||||
|
@ -29,7 +33,7 @@ class extconfigs {
|
||||||
case 'sccpDefaults':
|
case 'sccpDefaults':
|
||||||
$result = $this->sccpDefaults;
|
$result = $this->sccpDefaults;
|
||||||
break;
|
break;
|
||||||
case 'sccp_timezone_offset': // Sccp manafer: 1400 (+ Id) :2007 (+ Id)
|
case 'sccp_timezone_offset': // Sccp manafer: 1400 (+ Id) :2007 (+ Id)
|
||||||
if (empty($index)) {
|
if (empty($index)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -43,7 +47,7 @@ class extconfigs {
|
||||||
return $tmp_ofset / 60;
|
return $tmp_ofset / 60;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'sccp_timezone': // Sccp manafer: 1400 (+ Id) :2007 (+ Id)
|
case 'sccp_timezone': // Sccp manafer: 1400 (+ Id) :2007 (+ Id)
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
if (empty($index)) {
|
if (empty($index)) {
|
||||||
|
@ -56,10 +60,10 @@ class extconfigs {
|
||||||
|
|
||||||
$tz_tmp = array();
|
$tz_tmp = array();
|
||||||
foreach ($timezone_abbreviations as $subArray) {
|
foreach ($timezone_abbreviations as $subArray) {
|
||||||
$tf_idt = array_search($index ,array_column($subArray, 'timezone_id'));
|
$tf_idt = array_search($index, array_column($subArray, 'timezone_id'));
|
||||||
if (!empty($tf_idt)) {
|
if (!empty($tf_idt)) {
|
||||||
$tz_tmp[] = $subArray[$tf_idt];
|
$tz_tmp[] = $subArray[$tf_idt];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (empty($tz_tmp)) {
|
if (empty($tz_tmp)) {
|
||||||
return array('offset' => '00', 'daylight' => '', 'cisco_code' => 'Greenwich');
|
return array('offset' => '00', 'daylight' => '', 'cisco_code' => 'Greenwich');
|
||||||
|
@ -72,7 +76,7 @@ class extconfigs {
|
||||||
$tmp_ofset = $tmp_dt->getOffset();
|
$tmp_ofset = $tmp_dt->getOffset();
|
||||||
foreach ($tz_tmp as $subArray) {
|
foreach ($tz_tmp as $subArray) {
|
||||||
if ($subArray['offset'] == $tmp_ofset) {
|
if ($subArray['offset'] == $tmp_ofset) {
|
||||||
$time_set = $subArray;
|
$time_set = $subArray;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -103,9 +107,10 @@ class extconfigs {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function get_cisco_time_zone($tzc){
|
private function get_cisco_time_zone($tzc)
|
||||||
|
{
|
||||||
|
|
||||||
if ( (empty($tzc)) or (!array_key_exists($tzc, $this->cisco_timezone))) {
|
if ((empty($tzc)) or (!array_key_exists($tzc, $this->cisco_timezone))) {
|
||||||
// return array('offset' => '00', 'daylight' => '', 'cisco_code' => 'Greenwich');
|
// return array('offset' => '00', 'daylight' => '', 'cisco_code' => 'Greenwich');
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
@ -148,7 +153,7 @@ class extconfigs {
|
||||||
'onstealable' => 'redial,newcall,barge,intrcpt,cfwdall,pickup,gpickup,dnd',
|
'onstealable' => 'redial,newcall,barge,intrcpt,cfwdall,pickup,gpickup,dnd',
|
||||||
'holdconf' => 'resume,newcall,endcall,join',
|
'holdconf' => 'resume,newcall,endcall,join',
|
||||||
'uriaction' => 'default');
|
'uriaction' => 'default');
|
||||||
// Cisco Language Code / Directory
|
// Cisco Language Code / Directory
|
||||||
//
|
//
|
||||||
private $cisco_language = array('ar_SA' => array('code' => 'ar', 'language' => 'Arabic', 'locale' => 'Arabic_Saudi_Arabia', 'codepage' => 'ISO8859-1'),
|
private $cisco_language = array('ar_SA' => array('code' => 'ar', 'language' => 'Arabic', 'locale' => 'Arabic_Saudi_Arabia', 'codepage' => 'ISO8859-1'),
|
||||||
'bg_BG' => array('code' => 'bg', 'language' => 'Bulgarian', 'locale' => 'Bulgarian_Bulgaria', 'codepage' => 'ISO8859-1'),
|
'bg_BG' => array('code' => 'bg', 'language' => 'Bulgarian', 'locale' => 'Bulgarian_Bulgaria', 'codepage' => 'ISO8859-1'),
|
||||||
|
@ -223,7 +228,7 @@ class extconfigs {
|
||||||
'South Africa' => array('offset' => '120', 'daylight' => ''),
|
'South Africa' => array('offset' => '120', 'daylight' => ''),
|
||||||
'Jerusalem' => array('offset' => '120', 'daylight' => 'Daylight'),
|
'Jerusalem' => array('offset' => '120', 'daylight' => 'Daylight'),
|
||||||
'Saudi Arabia' => array('offset' => '180', 'daylight' => ''),
|
'Saudi Arabia' => array('offset' => '180', 'daylight' => ''),
|
||||||
/* Russion Regions */
|
/* Russian Regions */
|
||||||
'Russian/Kaliningrad' => array('offset' => '120', 'daylight' => '', 'cisco_code' => 'South Africa Standard Time'),
|
'Russian/Kaliningrad' => array('offset' => '120', 'daylight' => '', 'cisco_code' => 'South Africa Standard Time'),
|
||||||
'Russian/Moscow' => array('offset' => '180', 'daylight' => '', 'cisco_code' => 'Russian Standard Time'),
|
'Russian/Moscow' => array('offset' => '180', 'daylight' => '', 'cisco_code' => 'Russian Standard Time'),
|
||||||
'Russian/St.Peterburg' => array('offset' => '180', 'daylight' => '', 'cisco_code' => 'Russian Standard Time'),
|
'Russian/St.Peterburg' => array('offset' => '180', 'daylight' => '', 'cisco_code' => 'Russian Standard Time'),
|
||||||
|
@ -237,7 +242,7 @@ class extconfigs {
|
||||||
'Russian/Sakhalin' => array('offset' => '660', 'daylight' => '', 'cisco_code' => 'Central Pacific Standard Time'),
|
'Russian/Sakhalin' => array('offset' => '660', 'daylight' => '', 'cisco_code' => 'Central Pacific Standard Time'),
|
||||||
'Russian/Magadan' => array('offset' => '660', 'daylight' => '', 'cisco_code' => 'Central Pacific Standard Time'),
|
'Russian/Magadan' => array('offset' => '660', 'daylight' => '', 'cisco_code' => 'Central Pacific Standard Time'),
|
||||||
'Russian/Kamchatka' => array('offset' => '720', 'daylight' => '', 'cisco_code' => 'Fiji Standard Time'),
|
'Russian/Kamchatka' => array('offset' => '720', 'daylight' => '', 'cisco_code' => 'Fiji Standard Time'),
|
||||||
/* EnD - Russion Regions */
|
/* EnD - Russian Regions */
|
||||||
'Iran' => array('offset' => '210', 'daylight' => 'Daylight'),
|
'Iran' => array('offset' => '210', 'daylight' => 'Daylight'),
|
||||||
'Caucasus' => array('offset' => '240', 'daylight' => 'Daylight'),
|
'Caucasus' => array('offset' => '240', 'daylight' => 'Daylight'),
|
||||||
'Arabian' => array('offset' => '240', 'daylight' => ''),
|
'Arabian' => array('offset' => '240', 'daylight' => ''),
|
||||||
|
@ -260,35 +265,36 @@ class extconfigs {
|
||||||
'New Zealand' => array('offset' => '720', 'daylight' => 'Daylight')
|
'New Zealand' => array('offset' => '720', 'daylight' => 'Daylight')
|
||||||
);
|
);
|
||||||
|
|
||||||
public function validate_init_path($confDir = '', $db_vars, $sccp_driver_replace = '') {
|
public function validate_init_path($confDir = '', $db_vars, $sccp_driver_replace = '')
|
||||||
|
{
|
||||||
// global $db;
|
// global $db;
|
||||||
// global $amp_conf;
|
// global $amp_conf;
|
||||||
// *** Setings for Provision Sccp
|
// *** Setings for Provision Sccp
|
||||||
$adv_config = Array('tftproot' => '', 'firmware' => 'firmware', 'settings' => 'settings',
|
$adv_config = array('tftproot' => '', 'firmware' => 'firmware', 'settings' => 'settings',
|
||||||
'locales' => 'locales', 'languages' => 'languages', 'templates' => 'templates', 'dialplan' => 'dialplan', 'softkey' => 'softkey');
|
'locales' => 'locales', 'languages' => 'languages', 'templates' => 'templates', 'dialplan' => 'dialplan', 'softkey' => 'softkey');
|
||||||
// 'pro' /tftpboot - root dir
|
// 'pro' /tftpboot - root dir
|
||||||
// /tftpboot/locales/locales/%Languge_name%
|
// /tftpboot/locales/locales/%Languge_name%
|
||||||
// /tftpboot/settings/XMLdefault.cnf.xml
|
// /tftpboot/settings/XMLdefault.cnf.xml
|
||||||
// /tftpboot/settings/SEP[MAC].cnf.xml
|
// /tftpboot/settings/SEP[MAC].cnf.xml
|
||||||
// /tftpboot/firmware/79xx/SCCPxxxx.loads
|
// /tftpboot/firmware/79xx/SCCPxxxx.loads
|
||||||
$adv_tree['pro'] = Array('templates' => 'tftproot', 'settings' => 'tftproot', 'locales' => 'tftproot', 'firmware' => 'tftproot', 'languages' => 'locales', 'dialplan' => 'tftproot', 'softkey' => 'tftproot');
|
$adv_tree['pro'] = array('templates' => 'tftproot', 'settings' => 'tftproot', 'locales' => 'tftproot', 'firmware' => 'tftproot', 'languages' => 'locales', 'dialplan' => 'tftproot', 'softkey' => 'tftproot');
|
||||||
|
|
||||||
// 'def' /tftpboot - root dir
|
// 'def' /tftpboot - root dir
|
||||||
// /tftpboot/languages/%Languge_name%
|
// /tftpboot/languages/%Languge_name%
|
||||||
// /tftpboot/XMLdefault.cnf.xml
|
// /tftpboot/XMLdefault.cnf.xml
|
||||||
// /tftpboot/SEP[MAC].cnf.xml
|
// /tftpboot/SEP[MAC].cnf.xml
|
||||||
// /tftpboot/SCCPxxxx.loads
|
// /tftpboot/SCCPxxxx.loads
|
||||||
$adv_tree['def'] = Array('templates' => 'tftproot', 'settings' => '', 'locales' => '', 'firmware' => '', 'languages' => 'tftproot', 'dialplan' => '', 'softkey' => '');
|
$adv_tree['def'] = array('templates' => 'tftproot', 'settings' => '', 'locales' => '', 'firmware' => '', 'languages' => 'tftproot', 'dialplan' => '', 'softkey' => '');
|
||||||
// $adv_tree['def'] = Array('templates' => 'tftproot', 'settings' => '', 'locales' => 'tftproot', 'firmware' => 'tftproot', 'languages' => '');
|
// $adv_tree['def'] = Array('templates' => 'tftproot', 'settings' => '', 'locales' => 'tftproot', 'firmware' => 'tftproot', 'languages' => '');
|
||||||
// $adv_tree['def'] = Array('templates' => 'tftproot', 'settings' => '', 'locales' => 'tftproot', 'firmware' => 'tftproot', 'languages' => 'tftproot');
|
// $adv_tree['def'] = Array('templates' => 'tftproot', 'settings' => '', 'locales' => 'tftproot', 'firmware' => 'tftproot', 'languages' => 'tftproot');
|
||||||
//* **************------ ****
|
//* **************------ ****
|
||||||
$base_tree = Array('tftp_templates' => 'templates', 'tftp_path_store' => 'settings', 'tftp_lang_path' => 'languages', 'tftp_firmware_path' => 'firmware', 'tftp_dialplan' => 'dialplan', 'tftp_softkey' => 'softkey');
|
$base_tree = array('tftp_templates' => 'templates', 'tftp_path_store' => 'settings', 'tftp_lang_path' => 'languages', 'tftp_firmware_path' => 'firmware', 'tftp_dialplan' => 'dialplan', 'tftp_softkey' => 'softkey');
|
||||||
|
|
||||||
if (empty($confDir)) {
|
if (empty($confDir)) {
|
||||||
return array('error' => 'empty СonfDir');
|
return array('error' => 'empty СonfDir');
|
||||||
}
|
}
|
||||||
|
|
||||||
$base_config = Array('asterisk' => $confDir, 'sccp_conf' => $confDir . '/sccp.conf', 'tftp_path' => '');
|
$base_config = array('asterisk' => $confDir, 'sccp_conf' => $confDir . '/sccp.conf', 'tftp_path' => '');
|
||||||
|
|
||||||
// Test Base dir (/tftproot)
|
// Test Base dir (/tftproot)
|
||||||
if (!empty($db_vars["tftp_path"])) {
|
if (!empty($db_vars["tftp_path"])) {
|
||||||
|
@ -309,9 +315,9 @@ class extconfigs {
|
||||||
}
|
}
|
||||||
if (!is_writeable($base_config["tftp_path"])) {
|
if (!is_writeable($base_config["tftp_path"])) {
|
||||||
if (!empty($this->paren_class)) {
|
if (!empty($this->paren_class)) {
|
||||||
$this->paren_class->class_error['tftp_path'] = 'No write permision on tftp DIR';
|
$this->paren_class->class_error['tftp_path'] = 'No write permission on tftp DIR';
|
||||||
}
|
}
|
||||||
return array('error' => 'No write permision on tftp DIR');
|
return array('error' => 'No write permission on tftp DIR');
|
||||||
}
|
}
|
||||||
// END Test Base dir (/tftproot)
|
// END Test Base dir (/tftproot)
|
||||||
|
|
||||||
|
@ -372,7 +378,7 @@ class extconfigs {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
// TFTP -REWrite double model
|
// TFTP -REWrite double model
|
||||||
if (empty($_SERVER['DOCUMENT_ROOT'])) {
|
if (empty($_SERVER['DOCUMENT_ROOT'])) {
|
||||||
if (!empty($this->paren_class)) {
|
if (!empty($this->paren_class)) {
|
||||||
$this->paren_class->class_error['DOCUMENT_ROOT'] = 'Empty DOCUMENT_ROOT';
|
$this->paren_class->class_error['DOCUMENT_ROOT'] = 'Empty DOCUMENT_ROOT';
|
||||||
|
@ -401,7 +407,7 @@ class extconfigs {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!file_exists($base_config["sccp_conf"])) { // System re Config
|
if (!file_exists($base_config["sccp_conf"])) { // System re Config
|
||||||
$sccpfile = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/admin/modules/sccp_manager/conf/sccp.conf');
|
$sccpfile = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/admin/modules/sccp_manager/conf/sccp.conf');
|
||||||
file_put_contents($base_config["sccp_conf"], $sccpfile);
|
file_put_contents($base_config["sccp_conf"], $sccpfile);
|
||||||
}
|
}
|
||||||
|
@ -409,9 +415,10 @@ class extconfigs {
|
||||||
return $base_config;
|
return $base_config;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function validate_RealTime($realm = '') {
|
public function validate_RealTime($realm = '')
|
||||||
|
{
|
||||||
global $amp_conf;
|
global $amp_conf;
|
||||||
$res = Array();
|
$res = array();
|
||||||
if (empty($realm)) {
|
if (empty($realm)) {
|
||||||
$realm = 'sccp';
|
$realm = 'sccp';
|
||||||
}
|
}
|
||||||
|
@ -505,5 +512,4 @@ class extconfigs {
|
||||||
}
|
}
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,31 +1,35 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace FreePBX\modules\Sccp_manager;
|
namespace FreePBX\modules\Sccp_manager;
|
||||||
|
|
||||||
class sipconfigs {
|
class sipconfigs
|
||||||
|
{
|
||||||
// protected $database;
|
// protected $database;
|
||||||
// protected $freepbx;
|
// protected $freepbx;
|
||||||
|
|
||||||
public function __construct($parent_class = null) {
|
public function __construct($parent_class = null)
|
||||||
|
{
|
||||||
$this->paren_class = $parent_class;
|
$this->paren_class = $parent_class;
|
||||||
// $freepbx
|
// $freepbx
|
||||||
// $this->database = $freepbx->Database;
|
// $this->database = $freepbx->Database;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function info() {
|
public function info()
|
||||||
|
{
|
||||||
$Ver = '13.0.4';
|
$Ver = '13.0.4';
|
||||||
return Array('Version' => $Ver,
|
return array('Version' => $Ver,
|
||||||
'about' => 'Sip Setings ver: ' . $Ver);
|
'about' => 'Sip Setings ver: ' . $Ver);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_db_sip_TableData($dataid, $data = array()) {
|
public function get_db_sip_TableData($dataid, $data = array())
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
if ($dataid == '') {
|
if ($dataid == '') {
|
||||||
return False;
|
return false;
|
||||||
}
|
}
|
||||||
switch ($dataid) {
|
switch ($dataid) {
|
||||||
case "Device":
|
case "Device":
|
||||||
|
@ -40,7 +44,6 @@ class sipconfigs {
|
||||||
$tech[$value['id']][$value['keyword']]=$value['data'];
|
$tech[$value['id']][$value['keyword']]=$value['data'];
|
||||||
}
|
}
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
return $tech;
|
return $tech;
|
||||||
case "DeviceById":
|
case "DeviceById":
|
||||||
|
@ -55,14 +58,13 @@ class sipconfigs {
|
||||||
$value = $value[0];
|
$value = $value[0];
|
||||||
}
|
}
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
return $tech;
|
return $tech;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getSipConfig() {
|
public function getSipConfig()
|
||||||
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
// $def_sip_proto = 'sip';
|
// $def_sip_proto = 'sip';
|
||||||
// $def_proto = 'tcp';
|
// $def_proto = 'tcp';
|
||||||
|
@ -72,19 +74,19 @@ class sipconfigs {
|
||||||
// $result['tlsport'] = \FreePBX::Sipsettings()->getConfig('tlsbindport');
|
// $result['tlsport'] = \FreePBX::Sipsettings()->getConfig('tlsbindport');
|
||||||
// $tmp_sipsetigs = \FreePBX::Sipsettings()->getChanSipSettings();
|
// $tmp_sipsetigs = \FreePBX::Sipsettings()->getChanSipSettings();
|
||||||
$tmp_binds = \FreePBX::Sipsettings()->getBinds();
|
$tmp_binds = \FreePBX::Sipsettings()->getBinds();
|
||||||
$if_list = $this->paren_class ->getIP_information2('ip4');
|
$if_list = $this->paren_class ->getIpInformation('ip4');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
$tmp_bind_ip = !empty($tmp_sipsetigs['externhost_val']) ? $tmp_sipsetigs['externhost_val'] : '';
|
$tmp_bind_ip = !empty($tmp_sipsetigs['externhost_val']) ? $tmp_sipsetigs['externhost_val'] : '';
|
||||||
$tmp_bind_ip = !empty($tmp_sipsetigs['externip_val']) ? $tmp_sipsetigs['externip_val'] : $tmp_bind_ip;
|
$tmp_bind_ip = !empty($tmp_sipsetigs['externip_val']) ? $tmp_sipsetigs['externip_val'] : $tmp_bind_ip;
|
||||||
$tmp_bind_ip = !empty($tmp_sipsetigs['bindaddr']) ? $tmp_sipsetigs['bindaddr'] : $tmp_bind_ip;
|
$tmp_bind_ip = !empty($tmp_sipsetigs['bindaddr']) ? $tmp_sipsetigs['bindaddr'] : $tmp_bind_ip;
|
||||||
*/
|
*/
|
||||||
$tmp_binds = is_array($tmp_binds) ? $tmp_binds: array();
|
$tmp_binds = is_array($tmp_binds) ? $tmp_binds: array();
|
||||||
$result = array();
|
$result = array();
|
||||||
foreach($tmp_binds as $f_protocol => $f_bind) {
|
foreach ($tmp_binds as $f_protocol => $f_bind) {
|
||||||
foreach($f_bind as $f_ip => $f_port) {
|
foreach ($f_bind as $f_ip => $f_port) {
|
||||||
if (($f_ip == '0.0.0.0') || ($f_ip == '[::]')) {
|
if (($f_ip == '0.0.0.0') || ($f_ip == '[::]')) {
|
||||||
foreach($if_list as $f_if => $f_data) {
|
foreach ($if_list as $f_if => $f_data) {
|
||||||
if ($f_data['ip'] == "127.0.0.1") {
|
if ($f_data['ip'] == "127.0.0.1") {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -104,7 +106,7 @@ class sipconfigs {
|
||||||
$def_proto = 'pjsip';
|
$def_proto = 'pjsip';
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
|
|
||||||
foreach ($tmp_sip_binds[$def_sip_proto] as $key => $value) {
|
foreach ($tmp_sip_binds[$def_sip_proto] as $key => $value) {
|
||||||
if (empty($value[$def_proto])) {
|
if (empty($value[$def_proto])) {
|
||||||
$def_proto = 'udp';
|
$def_proto = 'udp';
|
||||||
|
@ -119,10 +121,10 @@ class sipconfigs {
|
||||||
$tmp_bind_ip = $key;
|
$tmp_bind_ip = $key;
|
||||||
}
|
}
|
||||||
$result['sipbindport'] = $value[$def_proto];
|
$result['sipbindport'] = $value[$def_proto];
|
||||||
}
|
}
|
||||||
$result['sipbind'] = $tmp_bind_ip;
|
$result['sipbind'] = $tmp_bind_ip;
|
||||||
$result['sipsuportproto'] = $supp_proto;
|
$result['sipsuportproto'] = $supp_proto;
|
||||||
|
|
||||||
$binds= array();
|
$binds= array();
|
||||||
$driver = \FreePBX::Config()->get_conf_setting('ASTSIPDRIVER');
|
$driver = \FreePBX::Config()->get_conf_setting('ASTSIPDRIVER');
|
||||||
if ($driver == "both" || $driver == "chan_pjsip") {
|
if ($driver == "both" || $driver == "chan_pjsip") {
|
||||||
|
@ -145,13 +147,13 @@ class sipconfigs {
|
||||||
} else {
|
} else {
|
||||||
$binds['pjsip'] = array("0.0.0.0" => array());
|
$binds['pjsip'] = array("0.0.0.0" => array());
|
||||||
}
|
}
|
||||||
|
|
||||||
$result['nd'] = $driver;
|
$result['nd'] = $driver;
|
||||||
|
|
||||||
$result['nb'] = $binds;
|
$result['nb'] = $binds;
|
||||||
$result['nb2'] = $b;
|
$result['nb2'] = $b;
|
||||||
return $result;
|
return $result;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,13 +10,15 @@
|
||||||
|
|
||||||
namespace FreePBX\modules\Sccp_manager;
|
namespace FreePBX\modules\Sccp_manager;
|
||||||
|
|
||||||
class srvinterface {
|
class srvinterface
|
||||||
|
{
|
||||||
|
|
||||||
var $error;
|
var $error;
|
||||||
var $_info;
|
var $_info;
|
||||||
var $ami_mode;
|
var $ami_mode;
|
||||||
|
|
||||||
public function __construct($parent_class = null) {
|
public function __construct($parent_class = null)
|
||||||
|
{
|
||||||
$this->paren_class = $parent_class;
|
$this->paren_class = $parent_class;
|
||||||
if ($this->paren_class == null) {
|
if ($this->paren_class == null) {
|
||||||
$this->paren_class = $this;
|
$this->paren_class = $this;
|
||||||
|
@ -49,58 +51,65 @@ class srvinterface {
|
||||||
$this->ami_mode = $this->aminterface->status();
|
$this->ami_mode = $this->aminterface->status();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function info() {
|
public function info()
|
||||||
|
{
|
||||||
$Ver = '14.0.1';
|
$Ver = '14.0.1';
|
||||||
$info = '';
|
$info = '';
|
||||||
foreach ($this->_info as $key => $value) {
|
foreach ($this->_info as $key => $value) {
|
||||||
$info .= $value['about'] . "\n ";
|
$info .= $value['about'] . "\n ";
|
||||||
}
|
}
|
||||||
return Array('Version' => $Ver,
|
return array('Version' => $Ver,
|
||||||
'about' => 'Server interface data ver: ' . $Ver . "\n " . $info);
|
'about' => 'Server interface data ver: ' . $Ver . "\n " . $info);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_device_reset($id = '') {
|
public function sccpDeviceReset($id = '')
|
||||||
|
{
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->aminterface->sccp_device_reset($id, 'reset');
|
return $this->aminterface->sccpDeviceReset($id, 'reset');
|
||||||
} else {
|
} else {
|
||||||
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reset_phone', 'name' => $id));
|
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reset_phone', 'name' => $id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_device_restart($id = '') {
|
public function sccpDeviceRestart($id = '')
|
||||||
|
{
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->aminterface->sccp_device_reset($id, 'restart');
|
return $this->aminterface->sccpDeviceReset($id, 'restart');
|
||||||
} else {
|
} else {
|
||||||
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reset_phone', 'name' => $id));
|
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reset_phone', 'name' => $id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_device_reload($id = '') {
|
public function sccp_device_reload($id = '')
|
||||||
|
{
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->aminterface->sccp_device_reset($id, 'full');
|
return $this->aminterface->sccpDeviceReset($id, 'full');
|
||||||
} else {
|
} else {
|
||||||
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reload_phone', 'name' => $id));
|
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reload_phone', 'name' => $id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_reset_token($id = '') {
|
public function sccp_reset_token($id = '')
|
||||||
|
{
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->aminterface->sccp_device_reset($id, 'tokenack');
|
return $this->aminterface->sccpDeviceReset($id, 'tokenack');
|
||||||
} else {
|
} else {
|
||||||
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reset_token', 'name' => $id));
|
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reset_token', 'name' => $id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_reload() {
|
public function sccp_reload()
|
||||||
|
{
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->aminterface->core_sccp_reload();
|
return $this->aminterface->core_sccp_reload();
|
||||||
// return $this->oldinterface->sccp_core_commands(array('cmd' => 'sccp_reload')); // !!!!!!!!!!!!!!!!!!!!!!!!!--------------------------- Remove
|
// return $this->oldinterface->sccp_core_commands(array('cmd' => 'sccp_reload')); // !!!!!!!!!!!!!!!!!!!!!!!!!--------------------------- Remove
|
||||||
} else {
|
} else {
|
||||||
return $this->oldinterface->sccp_core_commands(array('cmd' => 'sccp_reload'));
|
return $this->oldinterface->sccp_core_commands(array('cmd' => 'sccp_reload'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_line_reload($id = '') {
|
public function sccp_line_reload($id = '')
|
||||||
|
{
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reload_line', 'name' => $id));
|
return $this->oldinterface->sccp_core_commands(array('cmd' => 'reload_line', 'name' => $id));
|
||||||
} else {
|
} else {
|
||||||
|
@ -108,32 +117,33 @@ class srvinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function sccp_core_commands($params = array()) {
|
private function sccp_core_commands($params = array())
|
||||||
|
{
|
||||||
|
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
if (!empty($params['cmd'])) {
|
if (!empty($params['cmd'])) {
|
||||||
switch ($params['cmd']) {
|
switch ($params['cmd']) {
|
||||||
case 'reset_phone':
|
case 'reset_phone':
|
||||||
return $this->aminterface->sccp_device_reset($params['name'], 'reset');
|
return $this->aminterface->sccpDeviceReset($params['name'], 'reset');
|
||||||
break;
|
break;
|
||||||
case 'restart_phone':
|
case 'restart_phone':
|
||||||
return $this->aminterface->sccp_device_reset($params['name'], 'restart');
|
return $this->aminterface->sccpDeviceReset($params['name'], 'restart');
|
||||||
break;
|
break;
|
||||||
case 'reload_phone':
|
case 'reload_phone':
|
||||||
return $this->aminterface->sccp_device_reset($params['name'], 'full');
|
return $this->aminterface->sccpDeviceReset($params['name'], 'full');
|
||||||
break;
|
break;
|
||||||
case 'reset_token':
|
case 'reset_token':
|
||||||
return $this->aminterface->sccp_device_reset($params['name'], 'tokenack');
|
return $this->aminterface->sccpDeviceReset($params['name'], 'tokenack');
|
||||||
break;
|
break;
|
||||||
case 'reload_line':
|
case 'reload_line':
|
||||||
// return $this->aminterface->sccp_device_reset($params['name'], 'full');
|
// return $this->aminterface->sccpDeviceReset($params['name'], 'full');
|
||||||
break;
|
break;
|
||||||
// case 'get_version':
|
// case 'get_version':
|
||||||
// case 'sccp_reload':
|
// case 'sccp_reload':
|
||||||
// break;
|
// break;
|
||||||
// case 'get_realtime_status':
|
// case 'get_realtime_status':
|
||||||
// break;
|
// break;
|
||||||
// case 'phone_call':
|
// case 'phone_call':
|
||||||
// case 'phone_message':
|
// case 'phone_message':
|
||||||
|
|
||||||
case 'get_softkey':
|
case 'get_softkey':
|
||||||
|
@ -154,7 +164,8 @@ class srvinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_getdevice_info($dev_id) {
|
public function sccp_getdevice_info($dev_id)
|
||||||
|
{
|
||||||
if (empty($dev_id)) {
|
if (empty($dev_id)) {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
@ -165,7 +176,8 @@ class srvinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_list_hints() {
|
public function sccp_list_hints()
|
||||||
|
{
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->aminterface->core_list_hints();
|
return $this->aminterface->core_list_hints();
|
||||||
} else {
|
} else {
|
||||||
|
@ -173,7 +185,8 @@ class srvinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_list_all_hints() {
|
public function sccp_list_all_hints()
|
||||||
|
{
|
||||||
|
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->aminterface->core_list_all_hints();
|
return $this->aminterface->core_list_all_hints();
|
||||||
|
@ -182,7 +195,8 @@ class srvinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_realtime_status() {
|
public function sccp_realtime_status()
|
||||||
|
{
|
||||||
if (!$this->ami_mode) {
|
if (!$this->ami_mode) {
|
||||||
return $this->oldinterface->sccp_realtime_status();
|
return $this->oldinterface->sccp_realtime_status();
|
||||||
} else {
|
} else {
|
||||||
|
@ -199,7 +213,8 @@ class srvinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_compatible_sccp() {
|
public function get_compatible_sccp()
|
||||||
|
{
|
||||||
|
|
||||||
$res = $this->getSCCPVersion();
|
$res = $this->getSCCPVersion();
|
||||||
if (empty($res)) {
|
if (empty($res)) {
|
||||||
|
@ -230,7 +245,8 @@ class srvinterface {
|
||||||
// return $res["vCode"];
|
// return $res["vCode"];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getSCCPVersion() {
|
public function getSCCPVersion()
|
||||||
|
{
|
||||||
$res = $this->getChanSCCPVersion();
|
$res = $this->getChanSCCPVersion();
|
||||||
if (empty($res)) {
|
if (empty($res)) {
|
||||||
$res = $this->oldinterface->getCoreSCCPVersion();
|
$res = $this->oldinterface->getCoreSCCPVersion();
|
||||||
|
@ -238,7 +254,8 @@ class srvinterface {
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_list_keysets() {
|
public function sccp_list_keysets()
|
||||||
|
{
|
||||||
|
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->aminterface->sccp_list_keysets();
|
return $this->aminterface->sccp_list_keysets();
|
||||||
|
@ -247,7 +264,8 @@ class srvinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sccp_get_active_device() {
|
public function sccp_get_active_device()
|
||||||
|
{
|
||||||
if ($this->ami_mode) {
|
if ($this->ami_mode) {
|
||||||
return $this->aminterface->sccp_get_active_device();
|
return $this->aminterface->sccp_get_active_device();
|
||||||
} else {
|
} else {
|
||||||
|
@ -255,7 +273,8 @@ class srvinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getChanSCCPVersion() {
|
function getChanSCCPVersion()
|
||||||
|
{
|
||||||
if (!$this->ami_mode) {
|
if (!$this->ami_mode) {
|
||||||
return $this->oldinterface->getChanSCCPVersion();
|
return $this->oldinterface->getChanSCCPVersion();
|
||||||
} else {
|
} else {
|
||||||
|
@ -274,7 +293,7 @@ class srvinterface {
|
||||||
case "2":
|
case "2":
|
||||||
$result["vCode"] = 420;
|
$result["vCode"] = 420;
|
||||||
break;
|
break;
|
||||||
case 3. . .5 :
|
case 3. . .5:
|
||||||
$result["vCode"] = 430;
|
$result["vCode"] = 430;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -318,7 +337,8 @@ class srvinterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------- Debug Data -------------------------------------------
|
// ---------------------------- Debug Data -------------------------------------------
|
||||||
function t_get_ami_data() {
|
function t_get_ami_data()
|
||||||
|
{
|
||||||
global $amp_conf;
|
global $amp_conf;
|
||||||
$fp = fsockopen("127.0.0.1", "5038", $errno, $errstr, 10);
|
$fp = fsockopen("127.0.0.1", "5038", $errno, $errstr, 10);
|
||||||
if (!$fp) {
|
if (!$fp) {
|
||||||
|
@ -336,12 +356,12 @@ class srvinterface {
|
||||||
// fputs($fp,"DeviceName: SEP00070E36555C\r\n");
|
// fputs($fp,"DeviceName: SEP00070E36555C\r\n");
|
||||||
|
|
||||||
// fputs ($fp,"Action: DeviceStateList\r\n");
|
// fputs ($fp,"Action: DeviceStateList\r\n");
|
||||||
fputs ($fp,"Action: SCCPShowDevices\r\n");
|
fputs($fp, "Action: SCCPShowDevices\r\n");
|
||||||
fputs($fp,"Segment: general\r\n");
|
fputs($fp, "Segment: general\r\n");
|
||||||
|
|
||||||
// fputs ($fp,"Action: SCCPShowDevice\r\n");
|
// fputs ($fp,"Action: SCCPShowDevice\r\n");
|
||||||
// fputs ($fp,"DeviceName: SEP00070E36555C\r\n");
|
// fputs ($fp,"DeviceName: SEP00070E36555C\r\n");
|
||||||
//
|
//
|
||||||
// fputs($fp, "Action: ExtensionStateList\r\n");
|
// fputs($fp, "Action: ExtensionStateList\r\n");
|
||||||
// fputs($fp, "Action: ExtensionStateList\r\n");
|
// fputs($fp, "Action: ExtensionStateList\r\n");
|
||||||
// fputs($fp, "Command: sccp show version\r\n");
|
// fputs($fp, "Command: sccp show version\r\n");
|
||||||
|
@ -383,7 +403,7 @@ class srvinterface {
|
||||||
$resp .= fgets($fp);
|
$resp .= fgets($fp);
|
||||||
}
|
}
|
||||||
$time_resp = microtime_float();
|
$time_resp = microtime_float();
|
||||||
$resp .= "\r\n\r\n Connect :".($time_send - $time_connect). " Logoff :".($time_logoff- $time_send). " Responce :".($time_resp-$time_logoff)."\r\n\r\n ";
|
$resp .= "\r\n\r\n Connect :".($time_send - $time_connect). " Logoff :".($time_logoff- $time_send). " Response :".($time_resp-$time_logoff)."\r\n\r\n ";
|
||||||
// print_r(fgets($fp));
|
// print_r(fgets($fp));
|
||||||
// print_r('<br>');
|
// print_r('<br>');
|
||||||
// echo fgets($fp, 128);
|
// echo fgets($fp, 128);
|
||||||
|
@ -391,5 +411,4 @@ class srvinterface {
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
return $resp;
|
return $resp;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,37 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Core Comsnd Interface
|
* Core Comsnd Interface
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
/* !TODO!: -TODO-: Would you like to use my XSD file to check if the provided template file is a correct cisco cnf.xml file ?
|
/* !TODO!: -TODO-: Would you like to use my XSD file to check if the provided template file is a correct cisco cnf.xml file ?
|
||||||
* !TODO!: -TODO-: I just don't understand how to use it here.. To check the incoming pattern ? To check the result of my script ?
|
* !TODO!: -TODO-: I just don't understand how to use it here.. To check the incoming pattern ? To check the result of my script ?
|
||||||
* !TODO!: -TODO-: The most correct variant is to generate xml based on XSD template.
|
* !TODO!: -TODO-: The most correct variant is to generate xml based on XSD template.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace FreePBX\modules\Sccp_manager;
|
namespace FreePBX\modules\Sccp_manager;
|
||||||
|
|
||||||
class xmlinterface {
|
class xmlinterface
|
||||||
|
{
|
||||||
|
|
||||||
private $val_null = 'NONE'; /// REPLACE to null Field
|
private $val_null = 'NONE'; /// REPLACE to null Field
|
||||||
|
|
||||||
public function __construct($parent_class = null) {
|
public function __construct($parent_class = null)
|
||||||
|
{
|
||||||
$this->paren_class = $parent_class;
|
$this->paren_class = $parent_class;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function info() {
|
public function info()
|
||||||
|
{
|
||||||
$Ver = '13.0.4';
|
$Ver = '13.0.4';
|
||||||
return Array('Version' => $Ver,
|
return array('Version' => $Ver,
|
||||||
'about' => 'Create XML data interface ver: ' . $Ver);
|
'about' => 'Create XML data interface ver: ' . $Ver);
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_default_XML($store_path = '', $data_values = array(), $model_information = array(), $lang_info = array()) {
|
function create_default_XML($store_path = '', $data_values = array(), $model_information = array(), $lang_info = array())
|
||||||
|
{
|
||||||
$data_path = $data_values['tftp_path'];
|
$data_path = $data_values['tftp_path'];
|
||||||
if (empty($store_path) || empty($data_path) || empty($data_values)) {
|
if (empty($store_path) || empty($data_path) || empty($data_values)) {
|
||||||
return;
|
return;
|
||||||
|
@ -39,10 +43,9 @@ class xmlinterface {
|
||||||
|
|
||||||
if (file_exists($xml_template)) {
|
if (file_exists($xml_template)) {
|
||||||
$xml_work = simplexml_load_file($xml_template);
|
$xml_work = simplexml_load_file($xml_template);
|
||||||
|
|
||||||
|
|
||||||
$xnode = &$xml_work->callManagerGroup->members;
|
$xnode = &$xml_work->callManagerGroup->members;
|
||||||
$bind_tmp = $this->get_server_sccp_bind($data_values);
|
$bind_tmp = $this->get_server_sccp_bind($data_values);
|
||||||
|
//error_log("bind_tmp:".print_r($bind_tmp, true), 0);
|
||||||
$ifc = 0;
|
$ifc = 0;
|
||||||
foreach ($bind_tmp as $bind_value) {
|
foreach ($bind_tmp as $bind_value) {
|
||||||
$xnode_obj = clone $xnode->member;
|
$xnode_obj = clone $xnode->member;
|
||||||
|
@ -88,7 +91,7 @@ class xmlinterface {
|
||||||
$xnode->name = '';
|
$xnode->name = '';
|
||||||
$xnode->langCode = '';
|
$xnode->langCode = '';
|
||||||
}
|
}
|
||||||
// $this -> replaceSimpleXmlNode($xml_work->$key,$xnode);
|
// $this -> replaceSimpleXmlNode($xml_work->$key,$xnode);
|
||||||
break;
|
break;
|
||||||
case 'networkLocale':
|
case 'networkLocale':
|
||||||
$lang = $data_values['netlang'];
|
$lang = $data_values['netlang'];
|
||||||
|
@ -99,7 +102,7 @@ class xmlinterface {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//$this-> replaceSimpleXmlNode($xml_work->$value, $xnode );
|
//$this-> replaceSimpleXmlNode($xml_work->$value, $xnode );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +116,8 @@ class xmlinterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_SEP_XML($store_path = '', $data_values = array(), $dev_config = array(), $dev_id = '', $lang_info = array()) {
|
function create_SEP_XML($store_path = '', $data_values = array(), $dev_config = array(), $dev_id = '', $lang_info = array())
|
||||||
|
{
|
||||||
|
|
||||||
$var_xml_general_fields = array('authenticationURL' => 'dev_authenticationURL', 'informationURL' => 'dev_informationURL', 'messagesURL' => 'dev_messagesURL',
|
$var_xml_general_fields = array('authenticationURL' => 'dev_authenticationURL', 'informationURL' => 'dev_informationURL', 'messagesURL' => 'dev_messagesURL',
|
||||||
'servicesURL' => 'dev_servicesURL', 'directoryURL' => 'dev_directoryURL', 'proxyServerURL' => 'dev_proxyServerURL', 'idleTimeout' => 'dev_idleTimeout',
|
'servicesURL' => 'dev_servicesURL', 'directoryURL' => 'dev_directoryURL', 'proxyServerURL' => 'dev_proxyServerURL', 'idleTimeout' => 'dev_idleTimeout',
|
||||||
|
@ -282,7 +286,7 @@ class xmlinterface {
|
||||||
$xnode_obj->processNodeName = $data_values['bindaddr'];
|
$xnode_obj->processNodeName = $data_values['bindaddr'];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,7 +296,7 @@ class xmlinterface {
|
||||||
$xml_work->$key = time();
|
$xml_work->$key = time();
|
||||||
break;
|
break;
|
||||||
case 'loadInformation':
|
case 'loadInformation':
|
||||||
// Set Path Image ????
|
// Set Path Image ????
|
||||||
if (isset($dev_config["tftp_firmware"])) {
|
if (isset($dev_config["tftp_firmware"])) {
|
||||||
$xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["tftp_firmware"] . $dev_config["loadimage"] : '';
|
$xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["tftp_firmware"] . $dev_config["loadimage"] : '';
|
||||||
} else {
|
} else {
|
||||||
|
@ -365,17 +369,20 @@ class xmlinterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
// print_r($xml_work);
|
// print_r($xml_work);
|
||||||
$xml_work->asXml($xml_name); // Save
|
$xml_work->asXml($xml_name); // Save
|
||||||
} else {
|
} else {
|
||||||
die('Error Hardware template :' . $xml_template . ' not found');
|
die('Error Hardware template :' . $xml_template . ' not found');
|
||||||
}
|
}
|
||||||
return time();
|
return time();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function get_server_sccp_bind($data_values = array()) {
|
private function get_server_sccp_bind($data_values = array())
|
||||||
|
{
|
||||||
$res = array();
|
$res = array();
|
||||||
if ($data_values['bindaddr'] !== '0.0.0.0') {
|
if ($data_values['bindaddr'] !== '0.0.0.0') {
|
||||||
return array('ip' => $data_values['bindaddr'], 'port' => $data_values['port']);
|
$rkey = $data_values['bindaddr'];
|
||||||
|
$res[$rkey] = array('ip' => $data_values['bindaddr'], 'port' => $data_values['port']);
|
||||||
|
return $res;
|
||||||
}
|
}
|
||||||
$ip_fill = true;
|
$ip_fill = true;
|
||||||
if (!empty($data_values['ccm_address'])) {
|
if (!empty($data_values['ccm_address'])) {
|
||||||
|
@ -450,10 +457,11 @@ class xmlinterface {
|
||||||
}
|
}
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function create_SEP_SIP_XML($store_path = '', $data_values = array(), $dev_config = array(), $dev_id = '', $lang_info = array()) {
|
function create_SEP_SIP_XML($store_path = '', $data_values = array(), $dev_config = array(), $dev_id = '', $lang_info = array())
|
||||||
|
{
|
||||||
|
|
||||||
$var_xml_general_fields = array('authenticationURL' => 'dev_authenticationURL', 'informationURL' => 'dev_informationURL', 'messagesURL' => 'dev_messagesURL',
|
$var_xml_general_fields = array('authenticationURL' => 'dev_authenticationURL', 'informationURL' => 'dev_informationURL', 'messagesURL' => 'dev_messagesURL',
|
||||||
'servicesURL' => 'dev_servicesURL', 'directoryURL' => 'dev_directoryURL', 'proxyServerURL' => 'dev_proxyServerURL', 'idleTimeout' => 'dev_idleTimeout',
|
'servicesURL' => 'dev_servicesURL', 'directoryURL' => 'dev_directoryURL', 'proxyServerURL' => 'dev_proxyServerURL', 'idleTimeout' => 'dev_idleTimeout',
|
||||||
|
@ -669,7 +677,7 @@ class xmlinterface {
|
||||||
//$xnode = null;
|
//$xnode = null;
|
||||||
break;
|
break;
|
||||||
case 'softKeyFile':
|
case 'softKeyFile':
|
||||||
case 'dialTemplate': // Доработать !
|
case 'dialTemplate': // Доработать !
|
||||||
$xml_ext_file = '';
|
$xml_ext_file = '';
|
||||||
$templet_path = (($dkey == 'softKeyFile') ? $dev_config['tftp_softkey'] : $dev_config['tftp_dialplan']);
|
$templet_path = (($dkey == 'softKeyFile') ? $dev_config['tftp_softkey'] : $dev_config['tftp_dialplan']);
|
||||||
$tmp_key = ($dkey == 'softKeyFile') ? 'softkeyset' : '_dialrules';
|
$tmp_key = ($dkey == 'softKeyFile') ? 'softkeyset' : '_dialrules';
|
||||||
|
@ -696,7 +704,7 @@ class xmlinterface {
|
||||||
$xml_work->$key = time();
|
$xml_work->$key = time();
|
||||||
break;
|
break;
|
||||||
case 'loadInformation':
|
case 'loadInformation':
|
||||||
// Set Path Image ????
|
// Set Path Image ????
|
||||||
if (isset($dev_config["tftp_firmware"])) {
|
if (isset($dev_config["tftp_firmware"])) {
|
||||||
$xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["tftp_firmware"] . $dev_config["loadimage"] : '';
|
$xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["tftp_firmware"] . $dev_config["loadimage"] : '';
|
||||||
} else {
|
} else {
|
||||||
|
@ -764,17 +772,18 @@ class xmlinterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
// print_r($xml_work);
|
// print_r($xml_work);
|
||||||
$xml_work->asXml($xml_name); // Save
|
$xml_work->asXml($xml_name); // Save
|
||||||
} else {
|
} else {
|
||||||
die('Error Hardware template :' . $xml_template . ' not found');
|
die('Error Hardware template :' . $xml_template . ' not found');
|
||||||
}
|
}
|
||||||
return time();
|
return time();
|
||||||
}
|
}
|
||||||
|
|
||||||
function save_DialPlan($confDir, $get_settings) {
|
function saveDialPlan($confDir, $get_settings)
|
||||||
|
{
|
||||||
$xmlstr = "<DIALTEMPLATE>\n";
|
$xmlstr = "<DIALTEMPLATE>\n";
|
||||||
$xmlstr .= "<versionStamp>" . time() . "</versionStamp>\n";
|
$xmlstr .= "<versionStamp>" . time() . "</versionStamp>\n";
|
||||||
$dialFelds = array('match', 'timeout', 'rewrite', 'tone'); //str -to lo !
|
$dialFelds = array('match', 'timeout', 'rewrite', 'tone'); //str -to lo !
|
||||||
|
|
||||||
$hdr_prefix = 'sccp_dial_';
|
$hdr_prefix = 'sccp_dial_';
|
||||||
$hdr_arprefix = 'sccp_dial-ar_';
|
$hdr_arprefix = 'sccp_dial-ar_';
|
||||||
|
@ -787,7 +796,7 @@ class xmlinterface {
|
||||||
foreach ($dialFelds as $fld) {
|
foreach ($dialFelds as $fld) {
|
||||||
if (isset($value[$fld])) {
|
if (isset($value[$fld])) {
|
||||||
if ($value[$fld] == 'empty' || $value[$fld] == '') {
|
if ($value[$fld] == 'empty' || $value[$fld] == '') {
|
||||||
//
|
//
|
||||||
} else {
|
} else {
|
||||||
$xmlstr .= ' ' . $fld . '="' . (string) $value[$fld] . '"';
|
$xmlstr .= ' ' . $fld . '="' . (string) $value[$fld] . '"';
|
||||||
}
|
}
|
||||||
|
@ -806,8 +815,9 @@ class xmlinterface {
|
||||||
} else {
|
} else {
|
||||||
$errors = array('Fields Dial Plan Name is requered !!');
|
$errors = array('Fields Dial Plan Name is requered !!');
|
||||||
}
|
}
|
||||||
} else
|
} else {
|
||||||
$put_file = (string) $get_settings['idtemplate'];
|
$put_file = (string) $get_settings['idtemplate'];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$errors = array('Fields Dial Plan Name is requered !!');
|
$errors = array('Fields Dial Plan Name is requered !!');
|
||||||
}
|
}
|
||||||
|
@ -822,7 +832,8 @@ class xmlinterface {
|
||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_xmlSoftkeyset($config, $confDir, $name) {
|
function create_xmlSoftkeyset($config, $confDir, $name)
|
||||||
|
{
|
||||||
if (empty($config[$name])) {
|
if (empty($config[$name])) {
|
||||||
if ($name == 'default') {
|
if ($name == 'default') {
|
||||||
$typeSoft = $confDir["tftp_templates"] . '/SIPDefaultSoftKey.xml_template';
|
$typeSoft = $confDir["tftp_templates"] . '/SIPDefaultSoftKey.xml_template';
|
||||||
|
@ -872,22 +883,25 @@ class xmlinterface {
|
||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function replaceSimpleXmlNode($xml, $element = SimpleXMLElement) {
|
private function replaceSimpleXmlNode($xml, $element = SimpleXMLElement)
|
||||||
|
{
|
||||||
$dom = dom_import_simplexml($xml);
|
$dom = dom_import_simplexml($xml);
|
||||||
$import = $dom->ownerDocument->importNode(
|
$import = $dom->ownerDocument->importNode(
|
||||||
dom_import_simplexml($element), TRUE
|
dom_import_simplexml($element),
|
||||||
|
true
|
||||||
);
|
);
|
||||||
$dom->parentNode->replaceChild($import, $dom);
|
$dom->parentNode->replaceChild($import, $dom);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function appendSimpleXmlNode($xml, $element = SimpleXMLElement) {
|
private function appendSimpleXmlNode($xml, $element = SimpleXMLElement)
|
||||||
|
{
|
||||||
|
|
||||||
$dom = dom_import_simplexml($xml);
|
$dom = dom_import_simplexml($xml);
|
||||||
$import = $dom->ownerDocument->importNode(
|
$import = $dom->ownerDocument->importNode(
|
||||||
dom_import_simplexml($element), TRUE
|
dom_import_simplexml($element),
|
||||||
|
true
|
||||||
);
|
);
|
||||||
// $dom->parentNode->appendChild($import, $dom);
|
// $dom->parentNode->appendChild($import, $dom);
|
||||||
$dom->parentNode->appendChild($import->cloneNode(true));
|
$dom->parentNode->appendChild($import->cloneNode(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ param default description
|
||||||
conf_allow yes Allow the use of conference
|
conf_allow yes Allow the use of conference
|
||||||
conf_play_general_announce yes Playback General Announcements (like: 'You are Entering/Leaving the conference')
|
conf_play_general_announce yes Playback General Announcements (like: 'You are Entering/Leaving the conference')
|
||||||
conf_play_part_announce yes Playback Personal/Participant Announcements, (like: 'You have been muted / You have been kicked')
|
conf_play_part_announce yes Playback Personal/Participant Announcements, (like: 'You have been muted / You have been kicked')
|
||||||
conf_mute_on_entry no Mute new participants from the start, when they enter the conference (Preventing them to talk amongst one another). The Moderator will have to UnMute a participant manually to allow them to speak. Usefull in a classroom setting.
|
conf_mute_on_entry no Mute new participants from the start, when they enter the conference (Preventing them to talk amongst one another). The Moderator will have to UnMute a participant manually to allow them to speak. Useful in a classroom setting.
|
||||||
conf_music_on_hold_class 'default' Play music on hold of this class when no moderator is listening on the conference. If set to an empty string, no music on hold will be played.
|
conf_music_on_hold_class 'default' Play music on hold of this class when no moderator is listening on the conference. If set to an empty string, no music on hold will be played.
|
||||||
conf_show_conflist yes Automatically show conference list to the moderator
|
conf_show_conflist yes Automatically show conference list to the moderator
|
||||||
Creating a New Conference (Conf Softkey)
|
Creating a New Conference (Conf Softkey)
|
||||||
|
|
|
@ -308,7 +308,7 @@
|
||||||
For example, if you want to enter 411, 511, and 911 as special numbers, enter 411,511,911 in the field without spaces.
|
For example, if you want to enter 411, 511, and 911 as special numbers, enter 411,511,911 in the field without spaces.
|
||||||
string
|
string
|
||||||
length = 16
|
length = 16
|
||||||
comma seperated
|
comma separated
|
||||||
-->
|
-->
|
||||||
<PushToTalkURL></PushToTalkURL>
|
<PushToTalkURL></PushToTalkURL>
|
||||||
<!--
|
<!--
|
||||||
|
|
|
@ -30,7 +30,7 @@ permit = internal
|
||||||
; This General rule is valid for all incoming connections. It's the 1st filter.
|
; This General rule is valid for all incoming connections. It's the 1st filter.
|
||||||
; using 'internal' will allow the 10.0.0.0, 172.16.0.0 and 192.168.0.0 networks
|
; using 'internal' will allow the 10.0.0.0, 172.16.0.0 and 192.168.0.0 networks
|
||||||
;localnet = internal ; (MULTI-ENTRY) All RFC 1918 addresses are local networks, example '192.168.1.0/255.255.255.0'
|
;localnet = internal ; (MULTI-ENTRY) All RFC 1918 addresses are local networks, example '192.168.1.0/255.255.255.0'
|
||||||
;externip = 0.0.0.0 ; External IP Address of the firewall, required in case the PBX is running on a seperate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address.
|
;externip = 0.0.0.0 ; External IP Address of the firewall, required in case the PBX is running on a separate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address.
|
||||||
;firstdigittimeout = 16 ; Dialing timeout for the 1st digit
|
;firstdigittimeout = 16 ; Dialing timeout for the 1st digit
|
||||||
;digittimeout = 8 ; More digits
|
;digittimeout = 8 ; More digits
|
||||||
;digittimeoutchar = # ; You can force the channel to dial with this char in the dialing state
|
;digittimeoutchar = # ; You can force the channel to dial with this char in the dialing state
|
||||||
|
@ -44,7 +44,7 @@ permit = internal
|
||||||
;transfer_tone = 0 ; Confirmation tone on transfer. Works only between SCCP devices
|
;transfer_tone = 0 ; Confirmation tone on transfer. Works only between SCCP devices
|
||||||
;transfer_on_hangup = no ; Complete transfer on hangup, without pressing transfer a second time.
|
;transfer_on_hangup = no ; Complete transfer on hangup, without pressing transfer a second time.
|
||||||
; Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached.
|
; Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached.
|
||||||
; To cancel the transfer, either press resume on the transfered channel, press the 'endcall' softkey, or have the receiving party hangup first.
|
; To cancel the transfer, either press resume on the transferred channel, press the 'endcall' softkey, or have the receiving party hangup first.
|
||||||
;dnd_tone = 0x0 ; Use 0x2D, 0x31, 0x32, 0x33 to activate dnd incoming call indication when dnd silent is active
|
;dnd_tone = 0x0 ; Use 0x2D, 0x31, 0x32, 0x33 to activate dnd incoming call indication when dnd silent is active
|
||||||
;callwaiting_tone = 0x2d ; Sets to 0 to disable the callwaiting tone
|
;callwaiting_tone = 0x2d ; Sets to 0 to disable the callwaiting tone
|
||||||
;callwaiting_interval = 0 ; Callwaiting ring interval in seconds. Set to 0 to disable the callwaiting ringing interval.
|
;callwaiting_interval = 0 ; Callwaiting ring interval in seconds. Set to 0 to disable the callwaiting ringing interval.
|
||||||
|
@ -79,7 +79,7 @@ permit = internal
|
||||||
;nat = auto ; Global NAT support.
|
;nat = auto ; Global NAT support.
|
||||||
; (POSSIBLE VALUES: ["Auto","Off","(Auto)Off","On","(Auto)On"])
|
; (POSSIBLE VALUES: ["Auto","Off","(Auto)Off","On","(Auto)On"])
|
||||||
;directrtp = no ; This option allow devices to do direct RTP sessions.
|
;directrtp = no ; This option allow devices to do direct RTP sessions.
|
||||||
;allowoverlap = no ; Enable overlap dialing support. If enabled, starts dialing immediately and sends remaing digits as DTMF/inband.
|
;allowoverlap = no ; Enable overlap dialing support. If enabled, starts dialing immediately and sends remaining digits as DTMF/inband.
|
||||||
; Use with extreme caution as it is very dialplan and provider dependent.
|
; Use with extreme caution as it is very dialplan and provider dependent.
|
||||||
callgroup = "" ; We are in caller groups 1,3,4. Valid for all lines
|
callgroup = "" ; We are in caller groups 1,3,4. Valid for all lines
|
||||||
pickupgroup = "" ; We can do call pick-p for call group 1,3,4,5. Valid for all lines
|
pickupgroup = "" ; We can do call pick-p for call group 1,3,4,5. Valid for all lines
|
||||||
|
|
|
@ -3,7 +3,7 @@ To change this license header, choose License Headers in Project Properties.
|
||||||
To change this template file, choose Tools | Templates
|
To change this template file, choose Tools | Templates
|
||||||
and open the template in the editor.
|
and open the template in the editor.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
Created on : 03.05.2017, 16:13:49
|
Created on : 03.05.2017, 16:13:49
|
||||||
Author : Alex
|
Author : Alex
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,11 +1,4 @@
|
||||||
/**
|
(function ($) {
|
||||||
* jQuery.SelectListActions
|
|
||||||
* https://github.com/esausilva/jquery.selectlistactions.js
|
|
||||||
*
|
|
||||||
* (c) http://esausilva.com
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function ($) {
|
|
||||||
//Moves selected item(s) from sourceList to destinationList
|
//Moves selected item(s) from sourceList to destinationList
|
||||||
$.fn.moveToList = function (sourceList, destinationList) {
|
$.fn.moveToList = function (sourceList, destinationList) {
|
||||||
var opts = $(sourceList + ' option:selected');
|
var opts = $(sourceList + ' option:selected');
|
||||||
|
|
|
@ -26,13 +26,13 @@ $(document).ready(function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
$('#ajaxbackup').on('click', function (e) {
|
$('#ajaxbackup').on('click', function (e) {
|
||||||
var vdata = '';
|
var vdata = '';
|
||||||
var snd_command = 'backupsettings';
|
var snd_command = 'backupsettings';
|
||||||
$('.fpbx-submit').each(function () {
|
$('.fpbx-submit').each(function () {
|
||||||
vdata = vdata + $(this).serialize() + '&';
|
vdata = vdata + $(this).serialize() + '&';
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: 'ajax.php?module=sccp_manager&command=' + snd_command,
|
url: 'ajax.php?module=sccp_manager&command=' + snd_command,
|
||||||
|
@ -42,7 +42,7 @@ $(document).ready(function () {
|
||||||
if (data.message) {
|
if (data.message) {
|
||||||
alert(data.message);
|
alert(data.message);
|
||||||
} else {
|
} else {
|
||||||
alert('Data Save');
|
alert('Data Save');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (Array.isArray(data.message)) {
|
if (Array.isArray(data.message)) {
|
||||||
|
@ -53,7 +53,7 @@ $(document).ready(function () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
$('#ajaxsubmit2').on('click', function (e) {
|
$('#ajaxsubmit2').on('click', function (e) {
|
||||||
|
@ -140,7 +140,6 @@ $(document).ready(function () {
|
||||||
if (data.reload === true && old_style ===true ) {
|
if (data.reload === true && old_style ===true ) {
|
||||||
location.reload();
|
location.reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
bs_alert(data.message,data.status);
|
bs_alert(data.message,data.status);
|
||||||
}
|
}
|
||||||
|
@ -248,7 +247,7 @@ $(document).ready(function () {
|
||||||
var kid = $(this).data('id');
|
var kid = $(this).data('id');
|
||||||
var kval = $(this).val();
|
var kval = $(this).val();
|
||||||
$('.lineid_' + kid).each(function () {
|
$('.lineid_' + kid).each(function () {
|
||||||
var lval = $(this).data('type');
|
var lval = $(this).data('type');
|
||||||
if (lval == 'featurep') {
|
if (lval == 'featurep') {
|
||||||
if ( kval == 'parkinglot') {
|
if ( kval == 'parkinglot') {
|
||||||
$(this).removeClass('hidden');
|
$(this).removeClass('hidden');
|
||||||
|
@ -264,7 +263,7 @@ $(document).ready(function () {
|
||||||
var kid = $(this).data('id');
|
var kid = $(this).data('id');
|
||||||
var kval = $(this).val();
|
var kval = $(this).val();
|
||||||
$('.lineid_' + kid).each(function () {
|
$('.lineid_' + kid).each(function () {
|
||||||
var lval = $(this).data('type');
|
var lval = $(this).data('type');
|
||||||
var class_id = [kval];
|
var class_id = [kval];
|
||||||
switch (kval) {
|
switch (kval) {
|
||||||
case 'silent':
|
case 'silent':
|
||||||
|
@ -278,9 +277,9 @@ $(document).ready(function () {
|
||||||
case 'service':
|
case 'service':
|
||||||
case 'feature':
|
case 'feature':
|
||||||
if (lval == 'featurep') {
|
if (lval == 'featurep') {
|
||||||
if ($('.futuretype').val() == 'parkinglot') {
|
if ($('.futuretype').val() == 'parkinglot') {
|
||||||
class_id = [kval,lval];
|
class_id = [kval,lval];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'speeddial':
|
case 'speeddial':
|
||||||
|
@ -311,7 +310,6 @@ $(document).ready(function () {
|
||||||
$('#sccp_hw_addon').val('NONE').change();
|
$('#sccp_hw_addon').val('NONE').change();
|
||||||
}
|
}
|
||||||
$('#sccp_hw_addon').attr("disabled", "disabled");
|
$('#sccp_hw_addon').attr("disabled", "disabled");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$('#sccp_hw_addon').removeAttr('disabled');
|
$('#sccp_hw_addon').removeAttr('disabled');
|
||||||
}
|
}
|
||||||
|
@ -328,7 +326,8 @@ $(document).ready(function () {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.sccp_button_hide').each(function () { // On page create !!
|
$('.sccp_button_hide').each(function () {
|
||||||
|
// On page create !!
|
||||||
var dev_id = $(this).data('vhide');
|
var dev_id = $(this).data('vhide');
|
||||||
var dev_class = $(this).data('clhide');
|
var dev_class = $(this).data('clhide');
|
||||||
var dev_val = $(this).val();
|
var dev_val = $(this).val();
|
||||||
|
@ -391,7 +390,8 @@ $(document).ready(function () {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.sccp_button_disabled').each(function () { // On page create !!
|
$('.sccp_button_disabled').each(function () {
|
||||||
|
// On page create !!
|
||||||
var dev_id = $(this).data('vhide');
|
var dev_id = $(this).data('vhide');
|
||||||
var dev_class = $(this).data('clhide');
|
var dev_class = $(this).data('clhide');
|
||||||
var dev_val = $(this).val();
|
var dev_val = $(this).val();
|
||||||
|
@ -466,7 +466,7 @@ $(document).ready(function () {
|
||||||
if (dev_class.includes('validate-netmask')) {
|
if (dev_class.includes('validate-netmask')) {
|
||||||
confirm(dev_id);
|
confirm(dev_id);
|
||||||
}
|
}
|
||||||
// confirm(dev_id);
|
// confirm(dev_id);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.sccp_test').on('click', function (e) {
|
$('.sccp_test').on('click', function (e) {
|
||||||
|
@ -507,7 +507,7 @@ $(document).ready(function () {
|
||||||
// console.log($(this).data('id'));
|
// console.log($(this).data('id'));
|
||||||
|
|
||||||
// ----------------------- Server.keyset form ----------------
|
// ----------------------- Server.keyset form ----------------
|
||||||
//
|
//
|
||||||
if ($(this).data('id') === 'keyset_add') {
|
if ($(this).data('id') === 'keyset_add') {
|
||||||
var dev_cmd = 'updateSoftKey';
|
var dev_cmd = 'updateSoftKey';
|
||||||
if ($(this).data('mode') === 'new') {
|
if ($(this).data('mode') === 'new') {
|
||||||
|
@ -584,7 +584,6 @@ $(document).ready(function () {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log(datas);
|
console.log(datas);
|
||||||
|
|
||||||
}
|
}
|
||||||
if ($(this).data('id') === 'delete_hardware') {
|
if ($(this).data('id') === 'delete_hardware') {
|
||||||
var dev_cmd = $(this).data('id');
|
var dev_cmd = $(this).data('id');
|
||||||
|
@ -603,7 +602,6 @@ $(document).ready(function () {
|
||||||
if (!confirm(_('Are you sure you wish to delete selected device ?'))) {
|
if (!confirm(_('Are you sure you wish to delete selected device ?'))) {
|
||||||
dev_cmd = '';
|
dev_cmd = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if ($(this).data('id') === 'reset_dev' || $(this).data('id') === 'reset_token' || $(this).data('id') === 'update_button_label') {
|
if ($(this).data('id') === 'reset_dev' || $(this).data('id') === 'reset_token' || $(this).data('id') === 'update_button_label') {
|
||||||
var dev_cmd = $(this).data('id');
|
var dev_cmd = $(this).data('id');
|
||||||
|
@ -636,11 +634,9 @@ $(document).ready(function () {
|
||||||
} else {
|
} else {
|
||||||
dev_cmd = '';
|
dev_cmd = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (dev_cmd !== '') {
|
if (dev_cmd !== '') {
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: 'ajax.php?module=sccp_manager&command=' + dev_cmd,
|
url: 'ajax.php?module=sccp_manager&command=' + dev_cmd,
|
||||||
|
@ -655,7 +651,7 @@ $(document).ready(function () {
|
||||||
$('table').bootstrapTable('refresh');
|
$('table').bootstrapTable('refresh');
|
||||||
}
|
}
|
||||||
if (data.reload === true && old_style === true) {
|
if (data.reload === true && old_style === true) {
|
||||||
location.reload();
|
location.reload();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (Array.isArray(data.message)) {
|
if (Array.isArray(data.message)) {
|
||||||
|
@ -676,7 +672,6 @@ $(document).ready(function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -690,14 +685,14 @@ $(document).ready(function () {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//$("table").on('click-cell.bs.table', function (field, value, row, $element) {
|
//$("table").on('click-cell.bs.table', function (field, value, row, $element) {
|
||||||
// var id_fld=$element['model']; Работает !
|
// var id_fld=$element['model']; Работает !
|
||||||
// console.log('Table test: '+ id_fld);
|
// console.log('Table test: '+ id_fld);
|
||||||
// $('#bt'+id_fld).removeAttr('hidden');
|
// $('#bt'+id_fld).removeAttr('hidden');
|
||||||
//});
|
//});
|
||||||
|
|
||||||
|
|
||||||
// Bootstrap table Enabled / Disabled buttons ( class="btn-tab-select")
|
// Bootstrap table Enabled / Disabled buttons ( class="btn-tab-select")
|
||||||
$("table").on('check-all.bs.table', function (rows) {
|
$("table").on('check-all.bs.table', function (rows) {
|
||||||
var id_fld = $(this).data('id');
|
var id_fld = $(this).data('id');
|
||||||
$(".btn-tab-select").each(function () {
|
$(".btn-tab-select").each(function () {
|
||||||
|
@ -738,11 +733,11 @@ $("table").on('uncheck-all.bs.table', function (rows) {
|
||||||
// console.log('Table unselect all' + id_fld);
|
// console.log('Table unselect all' + id_fld);
|
||||||
});
|
});
|
||||||
|
|
||||||
//
|
//
|
||||||
// On table Click !!!!!!
|
// On table Click !!!!!!
|
||||||
$("table").on("post-body.bs.table", function () {
|
$("table").on("post-body.bs.table", function () {
|
||||||
// console.log('Table ');
|
// console.log('Table ');
|
||||||
// delete extension
|
// delete extension
|
||||||
$(this).find(".clickable.delete").click(function () {
|
$(this).find(".clickable.delete").click(function () {
|
||||||
var id = $(this).data("id");
|
var id = $(this).data("id");
|
||||||
|
|
||||||
|
@ -763,7 +758,8 @@ $("table").on("post-body.bs.table", function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function load_oncliсk(e, data) {
|
function load_oncliсk(e, data)
|
||||||
|
{
|
||||||
|
|
||||||
// console.log('load_oncliсk');
|
// console.log('load_oncliсk');
|
||||||
var add_softkey = false;
|
var add_softkey = false;
|
||||||
|
@ -796,7 +792,7 @@ function load_oncliсk(e, data) {
|
||||||
var opts_idx = -1;
|
var opts_idx = -1;
|
||||||
for (var i = 0; i < dev_fld.length; i++) {
|
for (var i = 0; i < dev_fld.length; i++) {
|
||||||
opts = $('#destination_' + dev_fld[i] + ' option');
|
opts = $('#destination_' + dev_fld[i] + ' option');
|
||||||
if (opts.length > 0) { // Remove all
|
if (opts.length > 0) { // Remove all
|
||||||
$(opts).remove();
|
$(opts).remove();
|
||||||
$('#source_' + dev_fld[i]).append($(opts).clone());
|
$('#source_' + dev_fld[i]).append($(opts).clone());
|
||||||
}
|
}
|
||||||
|
@ -821,7 +817,8 @@ function load_oncliсk(e, data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function add_dynamic_input(pe, pclass, vdefault) {
|
function add_dynamic_input(pe, pclass, vdefault)
|
||||||
|
{
|
||||||
// We'd like a new one, please.
|
// We'd like a new one, please.
|
||||||
pcls = pe.data('for');
|
pcls = pe.data('for');
|
||||||
pname = pe.data('id');
|
pname = pe.data('id');
|
||||||
|
@ -846,7 +843,8 @@ function add_dynamic_input(pe, pclass, vdefault) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function del_dynamic_table(pe, pclass, vdefault) {
|
function del_dynamic_table(pe, pclass, vdefault)
|
||||||
|
{
|
||||||
pcls = pe.data('for');
|
pcls = pe.data('for');
|
||||||
pname = pe.data('id');
|
pname = pe.data('id');
|
||||||
|
|
||||||
|
@ -865,7 +863,8 @@ function del_dynamic_table(pe, pclass, vdefault) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_dynamic_table(pe, pclass, vdefault) {
|
function add_dynamic_table(pe, pclass, vdefault)
|
||||||
|
{
|
||||||
// We'd like a new one, please.
|
// We'd like a new one, please.
|
||||||
pcls = pe.data('for');
|
pcls = pe.data('for');
|
||||||
pname = pe.data('id');
|
pname = pe.data('id');
|
||||||
|
@ -996,33 +995,34 @@ var theForm = document.editIax;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
String.prototype.hex2bin = function()
|
String.prototype.hex2bin = function()
|
||||||
{
|
{
|
||||||
var i = 0, len = this.length, result = "";
|
var i = 0, len = this.length, result = "";
|
||||||
|
|
||||||
//Converting the hex string into an escaped string, so if the hex string is "a2b320", it will become "%a2%b3%20"
|
//Converting the hex string into an escaped string, so if the hex string is "a2b320", it will become "%a2%b3%20"
|
||||||
for(; i < len; i+=2)
|
for(; i < len; i+=2)
|
||||||
result += '%' + this.substr(i, 2);
|
result += '%' + this.substr(i, 2);
|
||||||
|
|
||||||
return unescape(result);
|
return unescape(result);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
function bs_page_reload() {
|
function bs_page_reload()
|
||||||
|
{
|
||||||
window.location.reload(false);
|
window.location.reload(false);
|
||||||
}
|
}
|
||||||
function bs_alert(data, status, reload)
|
function bs_alert(data, status, reload)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (document.getElementById('hwalert') === null) {
|
if (document.getElementById('hwalert') === null) {
|
||||||
if (Array.isArray(data)) {
|
if (Array.isArray(data)) {
|
||||||
data.forEach(function (entry) {
|
data.forEach(function (entry) {
|
||||||
alert(entry);
|
alert(entry);
|
||||||
});
|
});
|
||||||
}else {
|
} else {
|
||||||
alert(data);
|
alert(data);
|
||||||
}
|
}
|
||||||
return true; // Old style
|
return true; // Old style
|
||||||
} else {
|
} else {
|
||||||
var modal = $("#hwalert");
|
var modal = $("#hwalert");
|
||||||
if (typeof status != "undefined") {
|
if (typeof status != "undefined") {
|
||||||
if (status === true) {
|
if (status === true) {
|
||||||
modal.find('.modal-title').text('Operation result');
|
modal.find('.modal-title').text('Operation result');
|
||||||
|
@ -1034,14 +1034,14 @@ function bs_alert(data, status, reload)
|
||||||
}
|
}
|
||||||
// var modal2 = modal.find('.modal-title');
|
// var modal2 = modal.find('.modal-title');
|
||||||
// console.log(modal2);
|
// console.log(modal2);
|
||||||
// modal.find('.modal-body').text(data);
|
// modal.find('.modal-body').text(data);
|
||||||
var modal2 = modal.find('.modal-body');
|
var modal2 = modal.find('.modal-body');
|
||||||
var msg_html = '';
|
var msg_html = '';
|
||||||
if (Array.isArray(data)) {
|
if (Array.isArray(data)) {
|
||||||
data.forEach(function(entry) {
|
data.forEach(function (entry) {
|
||||||
msg_html = msg_html + '<p>'+ entry + '</p>';
|
msg_html = msg_html + '<p>'+ entry + '</p>';
|
||||||
});
|
});
|
||||||
}else {
|
} else {
|
||||||
msg_html = data;
|
msg_html = data;
|
||||||
}
|
}
|
||||||
modal2[0].innerHTML = msg_html;
|
modal2[0].innerHTML = msg_html;
|
||||||
|
@ -1059,13 +1059,15 @@ function hex2bin(hex)
|
||||||
{
|
{
|
||||||
var bytes = [], str;
|
var bytes = [], str;
|
||||||
|
|
||||||
for (var i = 0; i < hex.length - 1; i += 2)
|
for (var i = 0; i < hex.length - 1; i += 2) {
|
||||||
bytes.push(parseInt(hex.substr(i, 2), 16));
|
bytes.push(parseInt(hex.substr(i, 2), 16));
|
||||||
|
}
|
||||||
|
|
||||||
return String.fromCharCode.apply(String, bytes);
|
return String.fromCharCode.apply(String, bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
function sleep(milliseconds) {
|
function sleep(milliseconds)
|
||||||
|
{
|
||||||
var start = new Date().getTime();
|
var start = new Date().getTime();
|
||||||
for (var i = 0; i < 1e7; i++) {
|
for (var i = 0; i < 1e7; i++) {
|
||||||
if ((new Date().getTime() - start) > milliseconds) {
|
if ((new Date().getTime() - start) > milliseconds) {
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
// vim: set ai ts=4 sw=4 ft=php:
|
// vim: set ai ts=4 sw=4 ft=php:
|
||||||
// Version for SCCP Manager 13.0.X
|
// Version for SCCP Manager 13.0.X
|
||||||
//
|
//
|
||||||
// Templete for Sccp Driver
|
// Templete for Sccp Driver
|
||||||
//
|
//
|
||||||
namespace FreePBX\modules\Core\Drivers;
|
namespace FreePBX\modules\Core\Drivers;
|
||||||
class Sccp extends \FreePBX\modules\Core\Driver {
|
|
||||||
|
class Sccp extends \FreePBX\modules\Core\Driver
|
||||||
|
{
|
||||||
private $data_fld = array("pin"=>'pin', "label" => 'label', "accountcode" => 'account',
|
private $data_fld = array("pin"=>'pin', "label" => 'label', "accountcode" => 'account',
|
||||||
"context" =>'lcontext',"incominglimit"=>'incominglimit',
|
"context" =>'lcontext',"incominglimit"=>'incominglimit',
|
||||||
"callgroup"=>'callgroup',"pickupgroup"=>'pickupgroup',
|
"callgroup"=>'callgroup',"pickupgroup"=>'pickupgroup',
|
||||||
|
@ -14,22 +16,23 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
||||||
"cid_num" => 'cid_num', "cid_name" => 'label', "mailbox" => 'description',
|
"cid_num" => 'cid_num', "cid_name" => 'label', "mailbox" => 'description',
|
||||||
"musicclass" => 'musicclass',
|
"musicclass" => 'musicclass',
|
||||||
"dnd" => 'dnd', "silencesuppression" => 'silencesuppression',
|
"dnd" => 'dnd', "silencesuppression" => 'silencesuppression',
|
||||||
"secondary_dialtone_digits" => 'secondary_dialtone_digits', "secondary_dialtone_tone" => 'secondary_dialtone_tone',
|
"secondary_dialtone_digits" => 'secondary_dialtone_digits', "secondary_dialtone_tone" => 'secondary_dialtone_tone',
|
||||||
'namedcallgroup'=>'namedcallgroup', 'namedpickupgroup' => 'namedpickupgroup'
|
'namedcallgroup'=>'namedcallgroup', 'namedpickupgroup' => 'namedpickupgroup'
|
||||||
);
|
);
|
||||||
|
|
||||||
public function getInfo() {
|
public function getInfo()
|
||||||
return array(
|
{
|
||||||
"rawName" => "sccp",
|
return array(
|
||||||
"hardware" => "sccp_custom",
|
"rawName" => "sccp",
|
||||||
"prettyName" => _("Sccp Custom Driver"),
|
"hardware" => "sccp_custom",
|
||||||
"shortName" => "SCCP",
|
"prettyName" => _("Sccp Custom Driver"),
|
||||||
"description" => _("Sccp Device"),
|
"shortName" => "SCCP",
|
||||||
"Version" => "11.3",
|
"description" => _("Sccp Device"),
|
||||||
"about" => "Sccp mysql class Base ver: 11.3, Sccp ver: default"
|
"Version" => "11.3",
|
||||||
|
"about" => "Sccp mysql class Base ver: 11.3, Sccp ver: default"
|
||||||
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* public function addDevice1($id, $settings) {
|
/* public function addDevice1($id, $settings) {
|
||||||
$sql = 'INSERT INTO sccp (id, keyword, data, flags) values (?,?,?,?)';
|
$sql = 'INSERT INTO sccp (id, keyword, data, flags) values (?,?,?,?)';
|
||||||
|
@ -41,170 +44,176 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
public function addDevice($id, $settings) {
|
public function addDevice($id, $settings)
|
||||||
|
{
|
||||||
$add_fld = array ("name"=>'label',"outboundcid"=>'cid_num',"langcode"=>'language',"extdisplay"=>'description');
|
$add_fld = array ("name"=>'label',"outboundcid"=>'cid_num',"langcode"=>'language',"extdisplay"=>'description');
|
||||||
// print_r($_REQUEST);
|
// print_r($_REQUEST);
|
||||||
// echo '<br><br>';
|
// echo '<br><br>';
|
||||||
// die(print_r($settings));
|
// die(print_r($settings));
|
||||||
$settings['cid_num']['value']='';
|
$settings['cid_num']['value']='';
|
||||||
if (isset($_REQUEST)){
|
if (isset($_REQUEST)) {
|
||||||
foreach($add_fld as $key => $val) {
|
foreach ($add_fld as $key => $val) {
|
||||||
if (!empty($_REQUEST[$key])){
|
if (!empty($_REQUEST[$key])) {
|
||||||
$settings[$val]['value'] = $_REQUEST[$key];
|
$settings[$val]['value'] = $_REQUEST[$key];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (empty($settings['cid_num']['value'])) {
|
}
|
||||||
$settings['cid_num']['value']= $id;
|
if (empty($settings['cid_num']['value'])) {
|
||||||
}
|
$settings['cid_num']['value']= $id;
|
||||||
|
}
|
||||||
$sql = 'INSERT INTO sccpline (name';
|
$sql = 'INSERT INTO sccpline (name';
|
||||||
$sqlv = 'values ("'.$id.'"';
|
$sqlv = 'values ("'.$id.'"';
|
||||||
foreach($this->data_fld as $key => $val) {
|
foreach ($this->data_fld as $key => $val) {
|
||||||
if (!empty($settings[$val]) ) {
|
if (!empty($settings[$val])) {
|
||||||
if (!empty($settings[$val]['value'])){
|
if (!empty($settings[$val]['value'])) {
|
||||||
$sql .= ', '.$key;
|
$sql .= ', '.$key;
|
||||||
$sqlv .= ", '".$settings[$val]['value']."' ";
|
$sqlv .= ", '".$settings[$val]['value']."' ";
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sql .= ") ".$sqlv.");";
|
}
|
||||||
$sth = $this->database->prepare($sql);
|
$sql .= ") ".$sqlv.");";
|
||||||
|
$sth = $this->database->prepare($sql);
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delDevice($id) {
|
public function delDevice($id)
|
||||||
$sql = "DELETE FROM sccpline WHERE name = ?";
|
{
|
||||||
$sth = $this->database->prepare($sql);
|
$sql = "DELETE FROM sccpline WHERE name = ?";
|
||||||
$sth->execute(array($id));
|
$sth = $this->database->prepare($sql);
|
||||||
return true;
|
$sth->execute(array($id));
|
||||||
}
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getDevice($id) {
|
public function getDevice($id)
|
||||||
|
{
|
||||||
$sccp_line = array();
|
$sccp_line = array();
|
||||||
// $sql = "SELECT name as id, name as name";
|
// $sql = "SELECT name as id, name as name";
|
||||||
$sql = "SELECT name as id, name as name ";
|
$sql = "SELECT name as id, name as name ";
|
||||||
foreach($this->data_fld as $key => $val) {
|
foreach ($this->data_fld as $key => $val) {
|
||||||
$sql .= ',`'. $key .'` as '.$val;
|
$sql .= ',`'. $key .'` as '.$val;
|
||||||
}
|
}
|
||||||
$sql .= " FROM sccpline WHERE name = ?";
|
$sql .= " FROM sccpline WHERE name = ?";
|
||||||
$sth = $this->database->prepare($sql);
|
$sth = $this->database->prepare($sql);
|
||||||
$result = array();
|
$result = array();
|
||||||
$tech = array();
|
$tech = array();
|
||||||
try {
|
try {
|
||||||
$sth->execute(array($id));
|
$sth->execute(array($id));
|
||||||
$result = $sth->fetch(\PDO::FETCH_ASSOC);
|
$result = $sth->fetch(\PDO::FETCH_ASSOC);
|
||||||
$tech = $result;
|
$tech = $result;
|
||||||
$tech['dial']='SCCP/'.$id;
|
$tech['dial']='SCCP/'.$id;
|
||||||
} catch(\Exception $e) {}
|
} catch (\Exception $e) {
|
||||||
|
}
|
||||||
|
|
||||||
return $tech;
|
return $tech;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDefaultDeviceSettings($id, $displayname, &$flag) {
|
public function getDefaultDeviceSettings($id, $displayname, &$flag)
|
||||||
$dial = 'SCCP';
|
{
|
||||||
$settings = array(
|
$dial = 'SCCP';
|
||||||
"pin" => array(
|
$settings = array(
|
||||||
"value" => "",
|
"pin" => array(
|
||||||
"flag" => $flag++
|
"value" => "",
|
||||||
),
|
"flag" => $flag++
|
||||||
"incominglimit" => array(
|
),
|
||||||
"value" => "",
|
"incominglimit" => array(
|
||||||
"flag" => $flag++
|
"value" => "",
|
||||||
),
|
"flag" => $flag++
|
||||||
"lcontext" => array(
|
),
|
||||||
"value" => "from-internal",
|
"lcontext" => array(
|
||||||
"flag" => $flag++
|
"value" => "from-internal",
|
||||||
),
|
"flag" => $flag++
|
||||||
"callgroup" => array(
|
),
|
||||||
"value" => "",
|
"callgroup" => array(
|
||||||
"flag" => $flag++
|
"value" => "",
|
||||||
),
|
"flag" => $flag++
|
||||||
"namedcallgroup" => array(
|
),
|
||||||
"value" => "",
|
"namedcallgroup" => array(
|
||||||
"flag" => $flag++
|
"value" => "",
|
||||||
),
|
"flag" => $flag++
|
||||||
"pickupgroup" => array(
|
),
|
||||||
"value" => "",
|
"pickupgroup" => array(
|
||||||
"flag" => $flag++
|
"value" => "",
|
||||||
),
|
"flag" => $flag++
|
||||||
"namedpickupgroup" => array(
|
),
|
||||||
"value" => "",
|
"namedpickupgroup" => array(
|
||||||
"flag" => $flag++
|
"value" => "",
|
||||||
),
|
"flag" => $flag++
|
||||||
"transfer" => array(
|
),
|
||||||
"value" => "yes",
|
"transfer" => array(
|
||||||
"flag" => $flag++
|
"value" => "yes",
|
||||||
),
|
"flag" => $flag++
|
||||||
"adhocNumber" => array(
|
),
|
||||||
"value" => "",
|
"adhocNumber" => array(
|
||||||
"flag" => $flag++
|
"value" => "",
|
||||||
),
|
"flag" => $flag++
|
||||||
"echocancel" => array(
|
),
|
||||||
"value" => "no",
|
"echocancel" => array(
|
||||||
"flag" => $flag++
|
"value" => "no",
|
||||||
),
|
"flag" => $flag++
|
||||||
"dnd" => array(
|
),
|
||||||
"value" => "UserDefined",
|
"dnd" => array(
|
||||||
"flag" => $flag++
|
"value" => "UserDefined",
|
||||||
),
|
"flag" => $flag++
|
||||||
"silencesuppression" => array(
|
),
|
||||||
"value" => "no",
|
"silencesuppression" => array(
|
||||||
"flag" => $flag++
|
"value" => "no",
|
||||||
),
|
"flag" => $flag++
|
||||||
"secondary_dialtone_digits" => array(
|
),
|
||||||
"value" => "9",
|
"secondary_dialtone_digits" => array(
|
||||||
"flag" => $flag++
|
"value" => "9",
|
||||||
),
|
"flag" => $flag++
|
||||||
"secondary_dialtone_tone" => array(
|
),
|
||||||
"value" => "0x22",
|
"secondary_dialtone_tone" => array(
|
||||||
"flag" => $flag++
|
"value" => "0x22",
|
||||||
),
|
"flag" => $flag++
|
||||||
"musicclass" => array(
|
),
|
||||||
"value" => "default",
|
"musicclass" => array(
|
||||||
"flag" => $flag++
|
"value" => "default",
|
||||||
),
|
"flag" => $flag++
|
||||||
);
|
),
|
||||||
return array(
|
);
|
||||||
"dial" => $dial,
|
return array(
|
||||||
"settings" => $settings
|
"dial" => $dial,
|
||||||
);
|
"settings" => $settings
|
||||||
}
|
);
|
||||||
|
}
|
||||||
|
|
||||||
# !TODO!: -TODO-: Would it not be better to put this part in the view directory (MVC) ? No, This is a template for Freepbx.
|
# !TODO!: -TODO-: Would it not be better to put this part in the view directory (MVC) ? No, This is a template for Freepbx.
|
||||||
public function getDeviceDisplay($display, $deviceInfo, $currentcomponent, $primarySection) {
|
public function getDeviceDisplay($display, $deviceInfo, $currentcomponent, $primarySection)
|
||||||
$section = _("Settings");
|
{
|
||||||
$category = "general";
|
$section = _("Settings");
|
||||||
$tmparr = array();
|
$category = "general";
|
||||||
$tt = _("The maximum number of incoming calls on this line.");
|
$tmparr = array();
|
||||||
// $tmparr['incominglimit'] = array('prompttext' => _('Incoming Call Limit'), 'value' => '2', 'tt' => $tt, 'level' => 0, 'jsvalidation' => 'isEmpty()', 'failvalidationmsg' => $msgInvalidChannel);
|
$tt = _("The maximum number of incoming calls on this line.");
|
||||||
// !TODO!: Please change the default value for incominglimit to '6' or higher
|
// $tmparr['incominglimit'] = array('prompttext' => _('Incoming Call Limit'), 'value' => '2', 'tt' => $tt, 'level' => 0, 'jsvalidation' => 'isEmpty()', 'failvalidationmsg' => $msgInvalidChannel);
|
||||||
$tmparr['incominglimit'] = array('prompttext' => _('Incoming Call Limit'), 'value' => '2', 'tt' => $tt, 'level' => 1);
|
// !TODO!: Please change the default value for incominglimit to '6' or higher
|
||||||
|
$tmparr['incominglimit'] = array('prompttext' => _('Incoming Call Limit'), 'value' => '2', 'tt' => $tt, 'level' => 1);
|
||||||
|
|
||||||
$tt = _("Asterisk context which this line will use to send and receive calls (Note: Only change this is you know what you are doing).");
|
$tt = _("Asterisk context which this line will use to send and receive calls (Note: Only change this is you know what you are doing).");
|
||||||
$tmparr['lcontext'] = array('prompttext' => _('Line context'), 'value' => 'from-internal', 'tt' => $tt, 'level' => 1);
|
$tmparr['lcontext'] = array('prompttext' => _('Line context'), 'value' => 'from-internal', 'tt' => $tt, 'level' => 1);
|
||||||
|
|
||||||
// !TODO!: -TODO-: Maybe completely remove support for old numberic callgroup/pickupgroup in favor of the named version ? See Sccp.class.php.v431
|
// !TODO!: -TODO-: Maybe completely remove support for old numberic callgroup/pickupgroup in favor of the named version ? See Sccp.class.php.v431
|
||||||
$tt = _("Phone call group (numeric only, example:1,3-4)");
|
$tt = _("Phone call group (numeric only, example:1,3-4)");
|
||||||
$tmparr['callgroup'] = array('prompttext' => _('Call group id'),'value' => '', 'tt' => $tt, 'level' => 1);
|
$tmparr['callgroup'] = array('prompttext' => _('Call group id'),'value' => '', 'tt' => $tt, 'level' => 1);
|
||||||
|
|
||||||
// !TODO!: -TODO-: multiple allowed (not sure if that is implemented here). See Sccp.class.php.v431
|
// !TODO!: -TODO-: multiple allowed (not sure if that is implemented here). See Sccp.class.php.v431
|
||||||
$tt = _("Phone named call group (>asterisk-11)");
|
$tt = _("Phone named call group (>asterisk-11)");
|
||||||
$tmparr['namedcallgroup'] = array('prompttext' => _('Named Call Group'),'value' => '', 'tt' => $tt, 'level' => 1);
|
$tmparr['namedcallgroup'] = array('prompttext' => _('Named Call Group'),'value' => '', 'tt' => $tt, 'level' => 1);
|
||||||
|
|
||||||
$tt = _("Sets the pickup group (numeric only, example:1,3-4) this line is a member of. Allows this line to pickup calls from remote phones which are in this callhroup.");
|
$tt = _("Sets the pickup group (numeric only, example:1,3-4) this line is a member of. Allows this line to pickup calls from remote phones which are in this callhroup.");
|
||||||
$tmparr['pickupgroup'] = array('prompttext' => _('Pickup group id'),'value' => '', 'tt' => $tt, 'level' => 1);
|
$tmparr['pickupgroup'] = array('prompttext' => _('Pickup group id'),'value' => '', 'tt' => $tt, 'level' => 1);
|
||||||
|
|
||||||
// !TODO!: -TODO-: multiple allowed (not sure if that is implemented here). See Sccp.class.php.v431
|
// !TODO!: -TODO-: multiple allowed (not sure if that is implemented here). See Sccp.class.php.v431
|
||||||
$tt = _("Sets the named pickup name group this line is a member of. Allows this line to pickup calls from remote phones which are in this name callgroup (>asterisk-11).");
|
$tt = _("Sets the named pickup name group this line is a member of. Allows this line to pickup calls from remote phones which are in this name callgroup (>asterisk-11).");
|
||||||
$tmparr['namedpickupgroup'] = array('prompttext' => _('Named Pickup Group'),'value' => '', 'tt' => $tt, 'level' => 1);
|
$tmparr['namedpickupgroup'] = array('prompttext' => _('Named Pickup Group'),'value' => '', 'tt' => $tt, 'level' => 1);
|
||||||
|
|
||||||
$tt = _("Phone pincode (Note used)");
|
$tt = _("Phone pincode (Note used)");
|
||||||
$tmparr['pin'] = array('value' => '', 'tt' => $tt, 'level' => 1);
|
$tmparr['pin'] = array('value' => '', 'tt' => $tt, 'level' => 1);
|
||||||
|
|
||||||
$tt = _("Digits to indicate an external line to user (secondary dialtone) Sample 9 or 8 (max 9 digits)");
|
$tt = _("Digits to indicate an external line to user (secondary dialtone) Sample 9 or 8 (max 9 digits)");
|
||||||
$tmparr['secondary_dialtone_digits'] = array('prompttext' => _('Secondary dialtone digits'), 'value' => '', 'tt' => $tt, 'level' => 1);
|
$tmparr['secondary_dialtone_digits'] = array('prompttext' => _('Secondary dialtone digits'), 'value' => '', 'tt' => $tt, 'level' => 1);
|
||||||
|
|
||||||
unset($select);
|
unset($select);
|
||||||
$select[] = array( 'value' => '0x21', 'text' => 'Inside Dial Tone');
|
$select[] = array( 'value' => '0x21', 'text' => 'Inside Dial Tone');
|
||||||
|
@ -249,8 +258,8 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
||||||
$select[] = array( 'value' => '0x7A', 'text' => 'MLPP Bpa');
|
$select[] = array( 'value' => '0x7A', 'text' => 'MLPP Bpa');
|
||||||
$select[] = array( 'value' => '0x7B', 'text' => 'MLPP Bnea');
|
$select[] = array( 'value' => '0x7B', 'text' => 'MLPP Bnea');
|
||||||
$select[] = array( 'value' => '0x7C', 'text' => 'MLPP Upa');
|
$select[] = array( 'value' => '0x7C', 'text' => 'MLPP Upa');
|
||||||
/* !TODO!: +TODO+: I would remove the values below this line, except for 'No Tone' */
|
/* !TODO!: +TODO+: I would remove the values below this line, except for 'No Tone' */
|
||||||
// $select[] = array( 'value' => '0x7F', 'text' => 'No Tone');
|
// $select[] = array( 'value' => '0x7F', 'text' => 'No Tone');
|
||||||
$select[] = array( 'value' => '0x80', 'text' => 'Meetme Greeting Tone');
|
$select[] = array( 'value' => '0x80', 'text' => 'Meetme Greeting Tone');
|
||||||
$select[] = array( 'value' => '0x81', 'text' => 'Meetme Number Invalid Tone');
|
$select[] = array( 'value' => '0x81', 'text' => 'Meetme Number Invalid Tone');
|
||||||
$select[] = array( 'value' => '0x82', 'text' => 'Meetme Number Failed Tone');
|
$select[] = array( 'value' => '0x82', 'text' => 'Meetme Number Failed Tone');
|
||||||
|
@ -267,7 +276,7 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
||||||
$tt = _("Outside dialtone frequency (defaul 0x22)");
|
$tt = _("Outside dialtone frequency (defaul 0x22)");
|
||||||
$tmparr['secondary_dialtone_tone'] = array('prompttext' => _('Secondary dialtone'), 'value' => '0x22', 'tt' => $tt, 'select' => $select, 'level' => 1, 'type' => 'select');
|
$tmparr['secondary_dialtone_tone'] = array('prompttext' => _('Secondary dialtone'), 'value' => '0x22', 'tt' => $tt, 'select' => $select, 'level' => 1, 'type' => 'select');
|
||||||
|
|
||||||
# !TODO!: -TODO-: is there no easier way to specify a boolean radio group ? No.
|
# !TODO!: -TODO-: is there no easier way to specify a boolean radio group ? No.
|
||||||
unset($select);
|
unset($select);
|
||||||
$select[] = array('value' => 'yes', 'text' => 'Yes');
|
$select[] = array('value' => 'yes', 'text' => 'Yes');
|
||||||
$select[] = array('value' => 'no', 'text' => 'No');
|
$select[] = array('value' => 'no', 'text' => 'No');
|
||||||
|
@ -285,8 +294,8 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
||||||
$select[] = array('value' => 'reject', 'text' => 'Reject');
|
$select[] = array('value' => 'reject', 'text' => 'Reject');
|
||||||
$select[] = array('value' => 'silent', 'text' => 'Silent');
|
$select[] = array('value' => 'silent', 'text' => 'Silent');
|
||||||
$select[] = array('value' => 'UserDefined', 'text' => 'UserDefined');
|
$select[] = array('value' => 'UserDefined', 'text' => 'UserDefined');
|
||||||
# !TODO!: -TODO-: The next entry should be "null/empty" (not UserDefined) -> to indicate the trie-state behaviour
|
# !TODO!: -TODO-: The next entry should be "null/empty" (not UserDefined) -> to indicate the trie-state behaviour
|
||||||
# !TODO!: -TODO-: Userdefined is also a possible state, but it is not used or implemented (and it should not be implemented here, i think). See Sccp.class.php.v431, See Sccp.class.php - Old Style
|
# !TODO!: -TODO-: Userdefined is also a possible state, but it is not used or implemented (and it should not be implemented here, i think). See Sccp.class.php.v431, See Sccp.class.php - Old Style
|
||||||
$tt = _("DND: How will dnd react when it is set on the device level dnd can have three states: off / busy(reject) / silent / UserDefined").'<br>'.
|
$tt = _("DND: How will dnd react when it is set on the device level dnd can have three states: off / busy(reject) / silent / UserDefined").'<br>'.
|
||||||
_("UserDefined - dnd that cycles through all three states off -> reject -> silent -> off (this is the normal behaviour)").'<br>'.
|
_("UserDefined - dnd that cycles through all three states off -> reject -> silent -> off (this is the normal behaviour)").'<br>'.
|
||||||
_("Reject - Usesr can only switch off and on (in reject/busy mode)").'<br>'.
|
_("Reject - Usesr can only switch off and on (in reject/busy mode)").'<br>'.
|
||||||
|
@ -296,24 +305,24 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
||||||
unset($select);
|
unset($select);
|
||||||
$select[] = array('value' => 'yes', 'text' => 'Yes');
|
$select[] = array('value' => 'yes', 'text' => 'Yes');
|
||||||
$select[] = array('value' => 'no', 'text' => 'No');
|
$select[] = array('value' => 'no', 'text' => 'No');
|
||||||
$tt = _("Silence Suppression. Asterisk Not suported");
|
$tt = _("Silence Suppression. Asterisk Not supported");
|
||||||
$tmparr['silencesuppression'] = array('prompttext' => _('Silence Suppression'), 'value' => 'no', 'tt' => $tt, 'select' => $select, 'level' => 1, 'type' => 'radio');
|
$tmparr['silencesuppression'] = array('prompttext' => _('Silence Suppression'), 'value' => 'no', 'tt' => $tt, 'select' => $select, 'level' => 1, 'type' => 'radio');
|
||||||
|
|
||||||
unset($select);
|
unset($select);
|
||||||
$select[] = array('value' => 'default', 'text' => _('default'));
|
$select[] = array('value' => 'default', 'text' => _('default'));
|
||||||
if (function_exists('music_list')){
|
if (function_exists('music_list')) {
|
||||||
$moh_list = music_list();
|
$moh_list = music_list();
|
||||||
} else {
|
} else {
|
||||||
$moh_list = array('default');
|
$moh_list = array('default');
|
||||||
}
|
}
|
||||||
foreach ($moh_list as $value) {
|
foreach ($moh_list as $value) {
|
||||||
$select[] = array('value' => $value, 'text' => _($value));
|
$select[] = array('value' => $value, 'text' => _($value));
|
||||||
}
|
}
|
||||||
|
|
||||||
$tt = _("Music on hold");
|
$tt = _("Music on hold");
|
||||||
$tmparr['musicclass'] = array('prompttext' => _('Music on hold'), 'value' => 'no', 'tt' => $tt, 'select' => $select, 'level' => 1);
|
$tmparr['musicclass'] = array('prompttext' => _('Music on hold'), 'value' => 'no', 'tt' => $tt, 'select' => $select, 'level' => 1);
|
||||||
|
|
||||||
$devopts = $tmparr;
|
$devopts = $tmparr;
|
||||||
return $devopts;
|
return $devopts;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -385,7 +385,7 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
||||||
unset($select);
|
unset($select);
|
||||||
$select[] = array('value' => 'on', 'text' => 'Yes');
|
$select[] = array('value' => 'on', 'text' => 'Yes');
|
||||||
$select[] = array('value' => 'off', 'text' => 'No');
|
$select[] = array('value' => 'off', 'text' => 'No');
|
||||||
$tt = _("Silence Suppression. Asterisk Not suported");
|
$tt = _("Silence Suppression. Asterisk Not supported");
|
||||||
$tmparr['silencesuppression'] = array('prompttext' => _('Silence Suppression'), 'value' => 'off', 'tt' => $tt, 'select' => $select, 'level' => 1, 'type' => 'radio', 'section' => $section);
|
$tmparr['silencesuppression'] = array('prompttext' => _('Silence Suppression'), 'value' => 'off', 'tt' => $tt, 'select' => $select, 'level' => 1, 'type' => 'radio', 'section' => $section);
|
||||||
|
|
||||||
unset($select);
|
unset($select);
|
||||||
|
|
|
@ -301,7 +301,7 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
||||||
$currentcomponent->addTabTranslation('sccp',_('SCCP'));
|
$currentcomponent->addTabTranslation('sccp',_('SCCP'));
|
||||||
// $currentcomponent->addTabTranslation('Codec',_('Codec'));
|
// $currentcomponent->addTabTranslation('Codec',_('Codec'));
|
||||||
|
|
||||||
//Fill Codecs Informations
|
//Fill Codecs Information
|
||||||
|
|
||||||
$Sccp_Codec = array('gsm','slin16','alaw','ulaw','g722','g723','g726','g728','g729','ilibc','opus','h264','h263','h265','h261');
|
$Sccp_Codec = array('gsm','slin16','alaw','ulaw','g722','g723','g726','g728','g729','ilibc','opus','h264','h263','h265','h261');
|
||||||
$allCodecs = $this->freepbx->Codecs->getAudio(true);
|
$allCodecs = $this->freepbx->Codecs->getAudio(true);
|
||||||
|
@ -501,7 +501,7 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
||||||
unset($select);
|
unset($select);
|
||||||
$select[] = array('value' => 'on', 'text' => 'Yes');
|
$select[] = array('value' => 'on', 'text' => 'Yes');
|
||||||
$select[] = array('value' => 'off', 'text' => 'No');
|
$select[] = array('value' => 'off', 'text' => 'No');
|
||||||
$tt = _("Silence Suppression. Asterisk Not suported");
|
$tt = _("Silence Suppression. Asterisk Not supported");
|
||||||
$tmparr['silencesuppression'] = array('prompttext' => _('Silence Suppression'), 'value' => 'off', 'tt' => $tt, 'select' => $select, 'level' => 1, 'type' => 'radio', 'section' => $section,'category' => $gn_category);
|
$tmparr['silencesuppression'] = array('prompttext' => _('Silence Suppression'), 'value' => 'off', 'tt' => $tt, 'select' => $select, 'level' => 1, 'type' => 'radio', 'section' => $section,'category' => $gn_category);
|
||||||
|
|
||||||
unset($select);
|
unset($select);
|
||||||
|
|
|
@ -283,7 +283,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<button value="broadcast">Broadcast</button>
|
<button value="broadcast">Broadcast</button>
|
||||||
<button value="multicast">Multicast</button>
|
<button value="multicast">Multicast</button>
|
||||||
<button value="manycast">Manycast</button>
|
<button value="manycast">Manycast</button>
|
||||||
<help>Configure NTP Server protocol time syncronization</help>
|
<help>Configure NTP Server protocol time synchronization</help>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
</page_group>
|
</page_group>
|
||||||
|
|
|
@ -104,7 +104,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<class>sccp-custom</class>
|
<class>sccp-custom</class>
|
||||||
<options placeholder="Provider IP"></options>
|
<options placeholder="Provider IP"></options>
|
||||||
</input>
|
</input>
|
||||||
<help>External IP Address of the firewall, required in case the PBX is running on a seperate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address.</help>
|
<help>External IP Address of the firewall, required in case the PBX is running on a separate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address.</help>
|
||||||
<nameseparator> / </nameseparator>
|
<nameseparator> / </nameseparator>
|
||||||
</item>
|
</item>
|
||||||
<item type="IE" id="5">
|
<item type="IE" id="5">
|
||||||
|
@ -346,7 +346,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<default>off</default>
|
<default>off</default>
|
||||||
<button value="on">On</button>
|
<button value="on">On</button>
|
||||||
<button value="off">Off</button>
|
<button value="off">Off</button>
|
||||||
<help>Complete transfer on hangup, without pressing transfer a second time. Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached. To cancel the transfer, either press resume on the transfered channel, press the 'endcall' softkey, or have the receiving party hangup first.</help>
|
<help>Complete transfer on hangup, without pressing transfer a second time. Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached. To cancel the transfer, either press resume on the transferred channel, press the 'endcall' softkey, or have the receiving party hangup first.</help>
|
||||||
</item>
|
</item>
|
||||||
<item type="IS" id="13">
|
<item type="IS" id="13">
|
||||||
<name>callanswerorder</name>
|
<name>callanswerorder</name>
|
||||||
|
@ -472,7 +472,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<button value="broadcast">Broadcast</button>
|
<button value="broadcast">Broadcast</button>
|
||||||
<button value="multicast">Multicast</button>
|
<button value="multicast">Multicast</button>
|
||||||
<button value="manycast">Manycast</button>
|
<button value="manycast">Manycast</button>
|
||||||
<help>Configure NTP Server protocol time syncronization</help>
|
<help>Configure NTP Server protocol time synchronization</help>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
</page_group>
|
</page_group>
|
||||||
|
|
|
@ -111,7 +111,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<options placeholder="Host Name"></options>
|
<options placeholder="Host Name"></options>
|
||||||
</input>
|
</input>
|
||||||
|
|
||||||
<help>External IP Address of the firewall, required in case the PBX is running on a seperate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address. Resolve Hostname (if dynamic) that we're going to resolve when setting up the RTP media stream (only active if externip=0.0.0.0 and host is natted.)</help>
|
<help>External IP Address of the firewall, required in case the PBX is running on a separate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address. Resolve Hostname (if dynamic) that we're going to resolve when setting up the RTP media stream (only active if externip=0.0.0.0 and host is natted.)</help>
|
||||||
<meta_help>1</meta_help>
|
<meta_help>1</meta_help>
|
||||||
<nameseparator> / </nameseparator>
|
<nameseparator> / </nameseparator>
|
||||||
externhost
|
externhost
|
||||||
|
@ -511,7 +511,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<button value="broadcast">Broadcast</button>
|
<button value="broadcast">Broadcast</button>
|
||||||
<button value="multicast">Multicast</button>
|
<button value="multicast">Multicast</button>
|
||||||
<button value="manycast">Manycast</button>
|
<button value="manycast">Manycast</button>
|
||||||
<help>Configure NTP Server protocol time syncronization</help>
|
<help>Configure NTP Server protocol time synchronization</help>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
</page_group>
|
</page_group>
|
||||||
|
@ -883,7 +883,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<default>off</default>
|
<default>off</default>
|
||||||
<button value="on">Enabled</button>
|
<button value="on">Enabled</button>
|
||||||
<button value="off">Disabled</button>
|
<button value="off">Disabled</button>
|
||||||
<help>Complete transfer on hangup, without pressing transfer a second time. Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached. To cancel the transfer, either press resume on the transfered channel, press the 'endcall' softkey, or have the receiving party hangup first.</help>
|
<help>Complete transfer on hangup, without pressing transfer a second time. Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached. To cancel the transfer, either press resume on the transferred channel, press the 'endcall' softkey, or have the receiving party hangup first.</help>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
<item type="SLA-disabled" id="6">
|
<item type="SLA-disabled" id="6">
|
||||||
|
@ -1038,11 +1038,11 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
|
|
||||||
<item type="IS" id="4" seq="90">
|
<item type="IS" id="4" seq="90">
|
||||||
<name>system_rouminguser</name>
|
<name>system_rouminguser</name>
|
||||||
<label>User Rouming</label>
|
<label>User Roaming</label>
|
||||||
<default>no</default>
|
<default>no</default>
|
||||||
<button value="yes">Yes</button>
|
<button value="yes">Yes</button>
|
||||||
<button value="no">No</button>
|
<button value="no">No</button>
|
||||||
<help>Experemental Function Rouming Users</help>
|
<help>Experemental Function Roaming Users</help>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
</page_group>
|
</page_group>
|
||||||
|
@ -1609,10 +1609,10 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
|
|
||||||
</page_group>
|
</page_group>
|
||||||
<!--
|
<!--
|
||||||
Rouming User Pages
|
Roaming User Pages
|
||||||
-->
|
-->
|
||||||
<page_group name="sccp_ruser">
|
<page_group name="sccp_ruser">
|
||||||
<label>Rouming User configuration</label>
|
<label>Roaming User configuration</label>
|
||||||
<item type="IE" id="1" seq="99">
|
<item type="IE" id="1" seq="99">
|
||||||
<label>User ID</label>
|
<label>User ID</label>
|
||||||
<input>
|
<input>
|
||||||
|
@ -1650,7 +1650,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
</item>
|
</item>
|
||||||
<item type="IS" id="13" seq="99">
|
<item type="IS" id="13" seq="99">
|
||||||
<name>roaminglogin</name>
|
<name>roaminglogin</name>
|
||||||
<label>Rouming</label>
|
<label>Roaming</label>
|
||||||
<default>off</default>
|
<default>off</default>
|
||||||
<button value="off">Disabled</button>
|
<button value="off">Disabled</button>
|
||||||
<button value="on">Enable Single</button>
|
<button value="on">Enable Single</button>
|
||||||
|
@ -1676,7 +1676,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
</item>
|
</item>
|
||||||
</page_group>
|
</page_group>
|
||||||
<!--
|
<!--
|
||||||
Rouming User Pages
|
Roaming User Pages
|
||||||
-->
|
-->
|
||||||
<page_group name="sccp_ruser_time">
|
<page_group name="sccp_ruser_time">
|
||||||
<label>Time Work configuration</label>
|
<label>Time Work configuration</label>
|
||||||
|
|
|
@ -222,7 +222,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<class>sccp-custom</class>
|
<class>sccp-custom</class>
|
||||||
<options placeholder="Provider IP"></options>
|
<options placeholder="Provider IP"></options>
|
||||||
</input>
|
</input>
|
||||||
<help>External IP Address of the firewall, required in case the PBX is running on a seperate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address.</help>
|
<help>External IP Address of the firewall, required in case the PBX is running on a separate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address.</help>
|
||||||
<nameseparator> / </nameseparator>
|
<nameseparator> / </nameseparator>
|
||||||
</item>
|
</item>
|
||||||
<item type="IE" id="5">
|
<item type="IE" id="5">
|
||||||
|
@ -428,7 +428,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<default>off</default>
|
<default>off</default>
|
||||||
<button value="on">On</button>
|
<button value="on">On</button>
|
||||||
<button value="off">Off</button>
|
<button value="off">Off</button>
|
||||||
<help>Complete transfer on hangup, without pressing transfer a second time. Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached. To cancel the transfer, either press resume on the transfered channel, press the 'endcall' softkey, or have the receiving party hangup first.</help>
|
<help>Complete transfer on hangup, without pressing transfer a second time. Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached. To cancel the transfer, either press resume on the transferred channel, press the 'endcall' softkey, or have the receiving party hangup first.</help>
|
||||||
</item>
|
</item>
|
||||||
<item type="IS" id="12">
|
<item type="IS" id="12">
|
||||||
<name>callanswerorder</name>
|
<name>callanswerorder</name>
|
||||||
|
@ -545,7 +545,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<button value="broadcast">Broadcast</button>
|
<button value="broadcast">Broadcast</button>
|
||||||
<button value="multicast">Multicast</button>
|
<button value="multicast">Multicast</button>
|
||||||
<button value="manycast">Manycast</button>
|
<button value="manycast">Manycast</button>
|
||||||
<help>Configure NTP Server protocol time syncronization</help>
|
<help>Configure NTP Server protocol time synchronization</help>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
</page_group>
|
</page_group>
|
||||||
|
|
|
@ -224,7 +224,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<class>sccp-custom</class>
|
<class>sccp-custom</class>
|
||||||
<options placeholder="Provider IP"></options>
|
<options placeholder="Provider IP"></options>
|
||||||
</input>
|
</input>
|
||||||
<help>External IP Address of the firewall, required in case the PBX is running on a seperate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address.</help>
|
<help>External IP Address of the firewall, required in case the PBX is running on a separate host behind it. IP Address that we're going to notify in RTP media stream as the pbx source address.</help>
|
||||||
<nameseparator> / </nameseparator>
|
<nameseparator> / </nameseparator>
|
||||||
</item>
|
</item>
|
||||||
<item type="IE" id="5">
|
<item type="IE" id="5">
|
||||||
|
@ -489,7 +489,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<default>off</default>
|
<default>off</default>
|
||||||
<button value="on">Enabled</button>
|
<button value="on">Enabled</button>
|
||||||
<button value="off">Disabled</button>
|
<button value="off">Disabled</button>
|
||||||
<help>Complete transfer on hangup, without pressing transfer a second time. Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached. To cancel the transfer, either press resume on the transfered channel, press the 'endcall' softkey, or have the receiving party hangup first.</help>
|
<help>Complete transfer on hangup, without pressing transfer a second time. Will complete transfer, when the transferer puts the receiver on hook, after the destination has been reached. To cancel the transfer, either press resume on the transferred channel, press the 'endcall' softkey, or have the receiving party hangup first.</help>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
<item type="SLA-disabled" id="6">
|
<item type="SLA-disabled" id="6">
|
||||||
|
@ -658,7 +658,7 @@ and open the template in the editor. Base Version before all crash :-)
|
||||||
<button value="broadcast">Broadcast</button>
|
<button value="broadcast">Broadcast</button>
|
||||||
<button value="multicast">Multicast</button>
|
<button value="multicast">Multicast</button>
|
||||||
<button value="manycast">Manycast</button>
|
<button value="manycast">Manycast</button>
|
||||||
<help>Configure NTP Server protocol time syncronization</help>
|
<help>Configure NTP Server protocol time synchronization</help>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
</page_group>
|
</page_group>
|
||||||
|
|
|
@ -22,41 +22,52 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function after($this, $inthat) {
|
function after($this, $inthat)
|
||||||
if (!is_bool(strpos($inthat, $this)))
|
{
|
||||||
|
if (!is_bool(strpos($inthat, $this))) {
|
||||||
return substr($inthat, strpos($inthat, $this) + strlen($this));
|
return substr($inthat, strpos($inthat, $this) + strlen($this));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function after_last($this, $inthat) {
|
function after_last($this, $inthat)
|
||||||
if (!is_bool(strrevpos($inthat, $this)))
|
{
|
||||||
|
if (!is_bool(strrevpos($inthat, $this))) {
|
||||||
return substr($inthat, strrevpos($inthat, $this) + strlen($this));
|
return substr($inthat, strrevpos($inthat, $this) + strlen($this));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function before($this, $inthat) {
|
function before($this, $inthat)
|
||||||
|
{
|
||||||
return substr($inthat, 0, strpos($inthat, $this));
|
return substr($inthat, 0, strpos($inthat, $this));
|
||||||
}
|
}
|
||||||
|
|
||||||
function before_last($this, $inthat) {
|
function before_last($this, $inthat)
|
||||||
|
{
|
||||||
return substr($inthat, 0, strrevpos($inthat, $this));
|
return substr($inthat, 0, strrevpos($inthat, $this));
|
||||||
}
|
}
|
||||||
|
|
||||||
function between($this, $that, $inthat) {
|
function between($this, $that, $inthat)
|
||||||
|
{
|
||||||
return before($that, after($this, $inthat));
|
return before($that, after($this, $inthat));
|
||||||
}
|
}
|
||||||
|
|
||||||
function between_last($this, $that, $inthat) {
|
function between_last($this, $that, $inthat)
|
||||||
|
{
|
||||||
return after_last($this, before_last($that, $inthat));
|
return after_last($this, before_last($that, $inthat));
|
||||||
}
|
}
|
||||||
|
|
||||||
function strrevpos($instr, $needle) {
|
function strrevpos($instr, $needle)
|
||||||
|
{
|
||||||
$rev_pos = strpos(strrev($instr), strrev($needle));
|
$rev_pos = strpos(strrev($instr), strrev($needle));
|
||||||
if ($rev_pos === false)
|
if ($rev_pos === false) {
|
||||||
return false;
|
return false;
|
||||||
else
|
} else {
|
||||||
return strlen($instr) - $rev_pos - strlen($needle);
|
return strlen($instr) - $rev_pos - strlen($needle);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function strpos_array($haystack, $needles) {
|
function strpos_array($haystack, $needles)
|
||||||
|
{
|
||||||
if (is_array($needles)) {
|
if (is_array($needles)) {
|
||||||
foreach ($needles as $str) {
|
foreach ($needles as $str) {
|
||||||
if (is_array($str)) {
|
if (is_array($str)) {
|
||||||
|
@ -64,14 +75,12 @@ function strpos_array($haystack, $needles) {
|
||||||
} else {
|
} else {
|
||||||
$pos = strpos($haystack, $str);
|
$pos = strpos($haystack, $str);
|
||||||
}
|
}
|
||||||
if ($pos !== FALSE) {
|
if ($pos !== false) {
|
||||||
return $pos;
|
return $pos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return strpos($haystack, $needles);
|
return strpos($haystack, $needles);
|
||||||
}
|
}
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
|
|
@ -143,7 +143,7 @@ msgid "External Ip"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/sccpgeneral.xml:
|
#: views/sccpgeneral.xml:
|
||||||
msgid "External IP Address of the firewall, required in case the PBX is running on a seperatehost behind it. IP Address that we're going to notify in RTP media stream as the pbx source address."
|
msgid "External IP Address of the firewall, required in case the PBX is running on a separatehost behind it. IP Address that we're going to notify in RTP media stream as the pbx source address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/sccpgeneral.xml:
|
#: views/sccpgeneral.xml:
|
||||||
|
@ -395,7 +395,7 @@ msgid "NTP Server name or IP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/sccpgeneral.xml:
|
#: views/sccpgeneral.xml:
|
||||||
msgid "Configure NTP Server protocol time syncronization"
|
msgid "Configure NTP Server protocol time synchronization"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/sccpgeneral.xml:
|
#: views/sccpgeneral.xml:
|
||||||
|
@ -967,7 +967,7 @@ msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/server.model:
|
#: views/server.model:
|
||||||
msgid "Add New model whithout Enabled"
|
msgid "Add New model without Enabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/server.model:
|
#: views/server.model:
|
||||||
|
|
123
install.php
123
install.php
|
@ -3,8 +3,8 @@
|
||||||
* Hand DB Change :
|
* Hand DB Change :
|
||||||
ALTER TABLE `asterisk`.`sccpline` CHANGE COLUMN `transfer` `transfer` ENUM('on','off') NULL DEFAULT NULL ;
|
ALTER TABLE `asterisk`.`sccpline` CHANGE COLUMN `transfer` `transfer` ENUM('on','off') NULL DEFAULT NULL ;
|
||||||
ALTER TABLE `asterisk`.`sccpdevice` CHANGE COLUMN `transfer` `transfer` ENUM('on','off') NULL DEFAULT NULL;
|
ALTER TABLE `asterisk`.`sccpdevice` CHANGE COLUMN `transfer` `transfer` ENUM('on','off') NULL DEFAULT NULL;
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('FREEPBX_IS_AUTH')) {
|
if (!defined('FREEPBX_IS_AUTH')) {
|
||||||
|
@ -27,7 +27,8 @@ if (class_exists($class, false)) {
|
||||||
$srvinterface = new $class();
|
$srvinterface = new $class();
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get_DB_config($sccp_compatible) {
|
function Get_DB_config($sccp_compatible)
|
||||||
|
{
|
||||||
global $mobile_hw;
|
global $mobile_hw;
|
||||||
$db_config_v0 = array(
|
$db_config_v0 = array(
|
||||||
'sccpdevmodel' => array(
|
'sccpdevmodel' => array(
|
||||||
|
@ -98,7 +99,7 @@ function Get_DB_config($sccp_compatible) {
|
||||||
'useRedialMenu' => array('create' => "VARCHAR(5) NULL DEFAULT 'no' AFTER `_hwlang`"),
|
'useRedialMenu' => array('create' => "VARCHAR(5) NULL DEFAULT 'no' AFTER `_hwlang`"),
|
||||||
//'dtmfmode' => array('create' => "VARCHAR(10) default 'outofband'", 'modify' => "VARCHAR(10)", 'def_modify'=> 'outofband'),
|
//'dtmfmode' => array('create' => "VARCHAR(10) default 'outofband'", 'modify' => "VARCHAR(10)", 'def_modify'=> 'outofband'),
|
||||||
'dtmfmode' => array('drop' => "yes"),
|
'dtmfmode' => array('drop' => "yes"),
|
||||||
// 'force_dtmfmode' => array('create' => "ENUM('auto','rfc2833','skinny') NOT NULL default 'auto'", 'modify' => "ENUM('auto','rfc2833','skinny')", 'def_modify'=> 'auto'),
|
// 'force_dtmfmode' => array('create' => "ENUM('auto','rfc2833','skinny') NOT NULL default 'auto'", 'modify' => "ENUM('auto','rfc2833','skinny')", 'def_modify'=> 'auto'),
|
||||||
'deny' => array('create' => 'VARCHAR(100) NULL DEFAULT NULL', 'modify' => "VARCHAR(100)"),
|
'deny' => array('create' => 'VARCHAR(100) NULL DEFAULT NULL', 'modify' => "VARCHAR(100)"),
|
||||||
'permit' => array('create' => 'VARCHAR(100) NULL DEFAULT NULL', 'modify' => "VARCHAR(100)"),
|
'permit' => array('create' => 'VARCHAR(100) NULL DEFAULT NULL', 'modify' => "VARCHAR(100)"),
|
||||||
'backgroundImage' => array('create' => 'VARCHAR(255) NULL DEFAULT NULL', 'modify' => "VARCHAR(255)"),
|
'backgroundImage' => array('create' => 'VARCHAR(255) NULL DEFAULT NULL', 'modify' => "VARCHAR(255)"),
|
||||||
|
@ -185,8 +186,8 @@ function Get_DB_config($sccp_compatible) {
|
||||||
'trustphoneip' => array('drop' => "yes"),
|
'trustphoneip' => array('drop' => "yes"),
|
||||||
'mwilamp' => array('create' => "enum('on','off','wink','flash','blink') NULL default 'on'", 'modify' => "enum('on','off','wink','flash','blink')"),
|
'mwilamp' => array('create' => "enum('on','off','wink','flash','blink') NULL default 'on'", 'modify' => "enum('on','off','wink','flash','blink')"),
|
||||||
'mwioncall' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
'mwioncall' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
'private' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"), // Что-то лишенне
|
'private' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"), // Что-то лишенне
|
||||||
'privacy' => array('create' => "enum('full','on','off') NOT NULL default 'full'", 'modify' => "enum('full','on','off')"), // Что-то лишенне
|
'privacy' => array('create' => "enum('full','on','off') NOT NULL default 'full'", 'modify' => "enum('full','on','off')"), // Что-то лишенне
|
||||||
'nat' => array('create' => "enum('on','off','auto') NULL default NULL", 'modify' => "enum('on','off','auto')"),
|
'nat' => array('create' => "enum('on','off','auto') NULL default NULL", 'modify' => "enum('on','off','auto')"),
|
||||||
'conf_allow' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
|
'conf_allow' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
'conf_play_part_announce' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
|
'conf_play_part_announce' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
|
@ -222,7 +223,7 @@ function Get_DB_config($sccp_compatible) {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Software mobile
|
// Software mobile
|
||||||
$db_config_v4 = array(
|
$db_config_v4 = array(
|
||||||
'sccpdevmodel' => array(
|
'sccpdevmodel' => array(
|
||||||
'enabled' => array('create' => "INT(2) NULL DEFAULT '0'"),
|
'enabled' => array('create' => "INT(2) NULL DEFAULT '0'"),
|
||||||
|
@ -260,7 +261,7 @@ function Get_DB_config($sccp_compatible) {
|
||||||
'cfwdall' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
'cfwdall' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
'cfwdbusy' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
'cfwdbusy' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
'cfwdnoanswer' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
'cfwdnoanswer' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
'park' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
'park' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
'directrtp' => array('create' => "enum('on','off') NULL default NULL", 'modify' => "enum('on','off')"),
|
'directrtp' => array('create' => "enum('on','off') NULL default NULL", 'modify' => "enum('on','off')"),
|
||||||
'dndFeature' => array('create' => "enum('on','off') NULL default NULL", 'modify' => "enum('on','off')"),
|
'dndFeature' => array('create' => "enum('on','off') NULL default NULL", 'modify' => "enum('on','off')"),
|
||||||
'earlyrtp' => array('create' => "ENUM('immediate','offHook','dialing','ringout','progress','none') NULL default NULL", 'modify' => "ENUM('immediate','offHook','dialing','ringout','progress','none')"),
|
'earlyrtp' => array('create' => "ENUM('immediate','offHook','dialing','ringout','progress','none') NULL default NULL", 'modify' => "ENUM('immediate','offHook','dialing','ringout','progress','none')"),
|
||||||
|
@ -274,8 +275,8 @@ function Get_DB_config($sccp_compatible) {
|
||||||
'phonecodepage' => array('create' => 'VARCHAR(50) NULL DEFAULT NULL', 'modify' => "VARCHAR(50)"),
|
'phonecodepage' => array('create' => 'VARCHAR(50) NULL DEFAULT NULL', 'modify' => "VARCHAR(50)"),
|
||||||
'mwilamp' => array('create' => "enum('on','off','wink','flash','blink') NULL default 'on'", 'modify' => "enum('on','off','wink','flash','blink')"),
|
'mwilamp' => array('create' => "enum('on','off','wink','flash','blink') NULL default 'on'", 'modify' => "enum('on','off','wink','flash','blink')"),
|
||||||
'mwioncall' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
'mwioncall' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
'private' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"), // Что-то лишенне
|
'private' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"), // Что-то лишенне
|
||||||
'privacy' => array('create' => "enum('full','on','off') NOT NULL default 'full'", 'modify' => "enum('full','on','off')"), // Что-то лишенне
|
'privacy' => array('create' => "enum('full','on','off') NOT NULL default 'full'", 'modify' => "enum('full','on','off')"), // Что-то лишенне
|
||||||
'nat' => array('create' => "enum('on','off','auto') NULL default NULL", 'modify' => "enum('on','off','auto')"),
|
'nat' => array('create' => "enum('on','off','auto') NULL default NULL", 'modify' => "enum('on','off','auto')"),
|
||||||
'conf_allow' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
|
'conf_allow' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
'conf_play_part_announce' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
|
'conf_play_part_announce' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||||
|
@ -353,7 +354,7 @@ function Get_DB_config($sccp_compatible) {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($sccp_compatible >= 433 ) {
|
if ($sccp_compatible >= 433) {
|
||||||
if ($mobile_hw == '1') {
|
if ($mobile_hw == '1') {
|
||||||
return $db_config_v4M;
|
return $db_config_v4M;
|
||||||
}
|
}
|
||||||
|
@ -375,10 +376,11 @@ $sccp_compatible = 0;
|
||||||
//$db_config = $db_config_v0;
|
//$db_config = $db_config_v0;
|
||||||
$db_config = '';
|
$db_config = '';
|
||||||
|
|
||||||
function CheckSCCPManagerDBTables($table_req) {
|
function CheckSCCPManagerDBTables($table_req)
|
||||||
global $amp_conf;
|
{
|
||||||
global $astman;
|
global $amp_conf;
|
||||||
global $db;
|
global $astman;
|
||||||
|
global $db;
|
||||||
outn("<li>" . _("Checking for Sccp_manager database tables..") . "</li>");
|
outn("<li>" . _("Checking for Sccp_manager database tables..") . "</li>");
|
||||||
foreach ($table_req as $value) {
|
foreach ($table_req as $value) {
|
||||||
$check = $db->getRow("SELECT 1 FROM `$value` LIMIT 0", DB_FETCHMODE_ASSOC);
|
$check = $db->getRow("SELECT 1 FROM `$value` LIMIT 0", DB_FETCHMODE_ASSOC);
|
||||||
|
@ -391,25 +393,27 @@ global $astman;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function CheckSCCPManagerDBVersion() {
|
function CheckSCCPManagerDBVersion()
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("Checking for previw version Sccp_manager..") . "</li>");
|
outn("<li>" . _("Checking for previw version Sccp_manager..") . "</li>");
|
||||||
$check = $db->getRow("SELECT data FROM `sccpsettings` where keyword ='sccp_compatible'", DB_FETCHMODE_ASSOC);
|
$check = $db->getRow("SELECT data FROM `sccpsettings` where keyword ='sccp_compatible'", DB_FETCHMODE_ASSOC);
|
||||||
if (DB::IsError($check)) {
|
if (DB::IsError($check)) {
|
||||||
outn(_("Can't find previw version : "));
|
outn(_("Can't find previw version : "));
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
if (!empty($check['data'])) {
|
if (!empty($check['data'])) {
|
||||||
outn(_("Find DB Schema : " . $check['data']));
|
outn(_("Find DB Schema : " . $check['data']));
|
||||||
return $check['data'];
|
return $check['data'];
|
||||||
} else {
|
} else {
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* notused */
|
/* notused */
|
||||||
|
|
||||||
function CheckPermissions() {
|
function CheckPermissions()
|
||||||
|
{
|
||||||
outn("<li>" . _("Checking Filesystem Permissions") . "</li>");
|
outn("<li>" . _("Checking Filesystem Permissions") . "</li>");
|
||||||
$dst = $_SERVER['DOCUMENT_ROOT'] . '/admin/modules/sccp_manager/views';
|
$dst = $_SERVER['DOCUMENT_ROOT'] . '/admin/modules/sccp_manager/views';
|
||||||
if (fileowner($_SERVER['DOCUMENT_ROOT']) != fileowner($dst)) {
|
if (fileowner($_SERVER['DOCUMENT_ROOT']) != fileowner($dst)) {
|
||||||
|
@ -417,7 +421,8 @@ function CheckPermissions() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function CheckAsteriskVersion() {
|
function CheckAsteriskVersion()
|
||||||
|
{
|
||||||
outn("<li>" . _("Checking Asterisk Version : ") . $version . "</li>");
|
outn("<li>" . _("Checking Asterisk Version : ") . $version . "</li>");
|
||||||
$version = FreePBX::Config()->get('ASTVERSION');
|
$version = FreePBX::Config()->get('ASTVERSION');
|
||||||
if (!empty($version)) {
|
if (!empty($version)) {
|
||||||
|
@ -436,7 +441,8 @@ function CheckAsteriskVersion() {
|
||||||
return $ver_compatible;
|
return $ver_compatible;
|
||||||
}
|
}
|
||||||
|
|
||||||
function CheckChanSCCPCompatible() {
|
function CheckChanSCCPCompatible()
|
||||||
|
{
|
||||||
global $srvinterface, $astman;
|
global $srvinterface, $astman;
|
||||||
if (!$astman) {
|
if (!$astman) {
|
||||||
ie_freepbx('No asterisk manager connection provided!. Installation Failed');
|
ie_freepbx('No asterisk manager connection provided!. Installation Failed');
|
||||||
|
@ -446,7 +452,8 @@ function CheckChanSCCPCompatible() {
|
||||||
return $sccp_compatible;
|
return $sccp_compatible;
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDB_Buttons() {
|
function InstallDB_Buttons()
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("Creating buttons table...") . "</li>");
|
outn("<li>" . _("Creating buttons table...") . "</li>");
|
||||||
// $check = $db->getRow("SELECT 1 FROM buttonconfig LIMIT 0", DB_FETCHMODE_ASSOC);
|
// $check = $db->getRow("SELECT 1 FROM buttonconfig LIMIT 0", DB_FETCHMODE_ASSOC);
|
||||||
|
@ -467,10 +474,10 @@ function InstallDB_Buttons() {
|
||||||
die_freepbx("Can not create sccpbuttonconfig table, error:$check\n");
|
die_freepbx("Can not create sccpbuttonconfig table, error:$check\n");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDB_sccpsettings() {
|
function InstallDB_sccpsettings()
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("Creating sccpsettings table...") . "</li>");
|
outn("<li>" . _("Creating sccpsettings table...") . "</li>");
|
||||||
$sql = "CREATE TABLE IF NOT EXISTS `sccpsettings` (
|
$sql = "CREATE TABLE IF NOT EXISTS `sccpsettings` (
|
||||||
|
@ -487,7 +494,8 @@ function InstallDB_sccpsettings() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDB_sccpdevmodel() {
|
function InstallDB_sccpdevmodel()
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("Creating sccpdevmodel table...") . "</li>");
|
outn("<li>" . _("Creating sccpdevmodel table...") . "</li>");
|
||||||
$sql = "CREATE TABLE IF NOT EXISTS `sccpdevmodel` (
|
$sql = "CREATE TABLE IF NOT EXISTS `sccpdevmodel` (
|
||||||
|
@ -509,7 +517,8 @@ function InstallDB_sccpdevmodel() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDB_sccpuser() {
|
function InstallDB_sccpuser()
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("Creating sccpuser table...") . "</li>");
|
outn("<li>" . _("Creating sccpuser table...") . "</li>");
|
||||||
$sql = "CREATE TABLE IF NOT EXISTS `sccpuser` (
|
$sql = "CREATE TABLE IF NOT EXISTS `sccpuser` (
|
||||||
|
@ -531,7 +540,8 @@ function InstallDB_sccpuser() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDB_updateSchema($db_config) {
|
function InstallDB_updateSchema($db_config)
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
if (!$db_config) {
|
if (!$db_config) {
|
||||||
die_freepbx("No db_config provided");
|
die_freepbx("No db_config provided");
|
||||||
|
@ -543,7 +553,7 @@ function InstallDB_updateSchema($db_config) {
|
||||||
$sql = "DESCRIBE " . $tabl_name . "";
|
$sql = "DESCRIBE " . $tabl_name . "";
|
||||||
$db_result = $db->getAll($sql);
|
$db_result = $db->getAll($sql);
|
||||||
if (DB::IsError($db_result)) {
|
if (DB::IsError($db_result)) {
|
||||||
die_freepbx("Can not add get informations from " . $tabl_name . " table\n");
|
die_freepbx("Can not add get information from " . $tabl_name . " table\n");
|
||||||
}
|
}
|
||||||
foreach ($db_result as $tabl_data) {
|
foreach ($db_result as $tabl_data) {
|
||||||
$fld_id = $tabl_data[0];
|
$fld_id = $tabl_data[0];
|
||||||
|
@ -655,7 +665,8 @@ function InstallDB_updateSchema($db_config) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDB_fillsccpdevmodel() {
|
function InstallDB_fillsccpdevmodel()
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("Fill sccpdevmodel") . "</li>");
|
outn("<li>" . _("Fill sccpdevmodel") . "</li>");
|
||||||
$sql = "REPLACE INTO `sccpdevmodel` (`model`, `vendor`, `dns`, `buttons`, `loadimage`, `loadinformationid`, `enabled`, `nametemplate`) VALUES ('12 SP', 'CISCO', 1, 1, '', 'loadInformation3', 0, NULL)," .
|
$sql = "REPLACE INTO `sccpdevmodel` (`model`, `vendor`, `dns`, `buttons`, `loadimage`, `loadinformationid`, `enabled`, `nametemplate`) VALUES ('12 SP', 'CISCO', 1, 1, '', 'loadInformation3', 0, NULL)," .
|
||||||
|
@ -664,7 +675,7 @@ function InstallDB_fillsccpdevmodel() {
|
||||||
"('7916;7916', 'CISCO', 0, 48, 'B016-1-0-4-2', 'loadInformation230', 1, NULL), ('7920', 'CISCO', 1, 1, 'cmterm_7920.4.0-03-02', 'loadInformation30002', 0, NULL), ('7921', 'CISCO', 1, 1, 'CP7921G-1.4.6.3', 'loadInformation365', 0, NULL),('7925', 'CISCO', 1, 6, 'CP7925G-1.4.1SR1', 'loadInformation484', 0, NULL), ('7926', 'CISCO', 1, 1, 'CP7926G-1.4.1SR1', 'loadInformation557', 0, NULL), ('7931', 'CISCO', 1, 34, 'SCCP31.9-2-1S', 'loadInformation348', 0, NULL), ('7935', 'CISCO', 1, 2, 'P00503021900', 'loadInformation9', 0, NULL), ('7936', 'CISCO', 1, 1, 'cmterm_7936.3-3-21-0', 'loadInformation30019', 0, NULL), ('7937', 'CISCO', 1, 1, 'apps37sccp.1-4-5-7', 'loadInformation431', 0, 'SEP0000000000.cnf.xml_7937_template'), ('7940', 'CISCO', 1, 2, 'P0030801SR02', 'loadInformation8', 1, 'SEP0000000000.cnf.xml_7940_template'), " .
|
"('7916;7916', 'CISCO', 0, 48, 'B016-1-0-4-2', 'loadInformation230', 1, NULL), ('7920', 'CISCO', 1, 1, 'cmterm_7920.4.0-03-02', 'loadInformation30002', 0, NULL), ('7921', 'CISCO', 1, 1, 'CP7921G-1.4.6.3', 'loadInformation365', 0, NULL),('7925', 'CISCO', 1, 6, 'CP7925G-1.4.1SR1', 'loadInformation484', 0, NULL), ('7926', 'CISCO', 1, 1, 'CP7926G-1.4.1SR1', 'loadInformation557', 0, NULL), ('7931', 'CISCO', 1, 34, 'SCCP31.9-2-1S', 'loadInformation348', 0, NULL), ('7935', 'CISCO', 1, 2, 'P00503021900', 'loadInformation9', 0, NULL), ('7936', 'CISCO', 1, 1, 'cmterm_7936.3-3-21-0', 'loadInformation30019', 0, NULL), ('7937', 'CISCO', 1, 1, 'apps37sccp.1-4-5-7', 'loadInformation431', 0, 'SEP0000000000.cnf.xml_7937_template'), ('7940', 'CISCO', 1, 2, 'P0030801SR02', 'loadInformation8', 1, 'SEP0000000000.cnf.xml_7940_template'), " .
|
||||||
"('7941', 'CISCO', 1, 2, 'SCCP41.9-4-2SR3-1S', 'loadInformation115', 0, 'SEP0000000000.cnf.xml_796x_template'),('7941G-GE', 'CISCO', 1, 2, 'SCCP41.9-4-2SR3-1S', 'loadInformation309', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7942', 'CISCO', 1, 2, 'SCCP42.9-4-2SR3-1S', 'loadInformation434', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7945', 'CISCO', 1, 2, 'SCCP45.9-3-1SR1-1S', 'loadInformation435', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7960', 'CISCO', 3, 6, 'P0030801SR02', 'loadInformation7', 1, 'SEP0000000000.cnf.xml_796x_template'), ('7961', 'CISCO', 3, 6, 'SCCP41.9-4-2SR3-1S', 'loadInformation30018', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7961G-GE', 'CISCO', 3, 6, 'SCCP41.9-4-2SR3-1S', 'loadInformation308', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7962', 'CISCO', 3, 6, 'SCCP42.9-4-2SR3-1S', 'loadInformation404', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7965', 'CISCO', 3, 6, 'SCCP45.9-3-1SR1-1S', 'loadInformation436', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7970', 'CISCO', 3, 8, 'SCCP70.9-4-2SR3-1S', 'loadInformation30006', 0, NULL), ('7971', 'CISCO', 1, 2, 'SCCP70.9-4-2SR3-1S', 'loadInformation119', 0, NULL), ('7975', 'CISCO', 3, 8, 'SCCP75.9-4-2SR3-1S', 'loadInformation437', 0, NULL), ('7985', 'CISCO', 3, 8, 'cmterm_7985.4-1-7-0', 'loadInformation302', 0, NULL), ('8941', 'CISCO', 1, 0, 'SCCP894x.9-2-2-0', 'loadInformation586', 0, NULL), ('8945', 'CISCO', 1, 0, 'SCCP894x.9-2-2-0', 'loadInformation585', 0, NULL), ('ATA 186', 'CISCO', 1, 1, 'ATA030204SCCP090202A', 'loadInformation12', 0, 'SEP0000000000.cnf.xml_ATA_template'), ('ATA 187', 'CISCO', 1, 1, 'ATA187.9-2-3-1', 'loadInformation550', 0, 'SEP0000000000.cnf.xml_ATA_template'), ('CN622', 'MOTOROLA', 1, 1, '', 'loadInformation335', 0, NULL), ('Digital Access', 'CISCO', 1, 1, 'D001M022', 'loadInformation40', 0, NULL), ('Digital Access+', 'CISCO', 1, 1, 'D00303010033', 'loadInformation42', 0, NULL), ('E-Series', 'NOKIA', 1, 1, '', '', 0, NULL), ('ICC', 'NOKIA', 1, 1, '', '', 0, NULL), " .
|
"('7941', 'CISCO', 1, 2, 'SCCP41.9-4-2SR3-1S', 'loadInformation115', 0, 'SEP0000000000.cnf.xml_796x_template'),('7941G-GE', 'CISCO', 1, 2, 'SCCP41.9-4-2SR3-1S', 'loadInformation309', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7942', 'CISCO', 1, 2, 'SCCP42.9-4-2SR3-1S', 'loadInformation434', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7945', 'CISCO', 1, 2, 'SCCP45.9-3-1SR1-1S', 'loadInformation435', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7960', 'CISCO', 3, 6, 'P0030801SR02', 'loadInformation7', 1, 'SEP0000000000.cnf.xml_796x_template'), ('7961', 'CISCO', 3, 6, 'SCCP41.9-4-2SR3-1S', 'loadInformation30018', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7961G-GE', 'CISCO', 3, 6, 'SCCP41.9-4-2SR3-1S', 'loadInformation308', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7962', 'CISCO', 3, 6, 'SCCP42.9-4-2SR3-1S', 'loadInformation404', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7965', 'CISCO', 3, 6, 'SCCP45.9-3-1SR1-1S', 'loadInformation436', 0, 'SEP0000000000.cnf.xml_796x_template'), ('7970', 'CISCO', 3, 8, 'SCCP70.9-4-2SR3-1S', 'loadInformation30006', 0, NULL), ('7971', 'CISCO', 1, 2, 'SCCP70.9-4-2SR3-1S', 'loadInformation119', 0, NULL), ('7975', 'CISCO', 3, 8, 'SCCP75.9-4-2SR3-1S', 'loadInformation437', 0, NULL), ('7985', 'CISCO', 3, 8, 'cmterm_7985.4-1-7-0', 'loadInformation302', 0, NULL), ('8941', 'CISCO', 1, 0, 'SCCP894x.9-2-2-0', 'loadInformation586', 0, NULL), ('8945', 'CISCO', 1, 0, 'SCCP894x.9-2-2-0', 'loadInformation585', 0, NULL), ('ATA 186', 'CISCO', 1, 1, 'ATA030204SCCP090202A', 'loadInformation12', 0, 'SEP0000000000.cnf.xml_ATA_template'), ('ATA 187', 'CISCO', 1, 1, 'ATA187.9-2-3-1', 'loadInformation550', 0, 'SEP0000000000.cnf.xml_ATA_template'), ('CN622', 'MOTOROLA', 1, 1, '', 'loadInformation335', 0, NULL), ('Digital Access', 'CISCO', 1, 1, 'D001M022', 'loadInformation40', 0, NULL), ('Digital Access+', 'CISCO', 1, 1, 'D00303010033', 'loadInformation42', 0, NULL), ('E-Series', 'NOKIA', 1, 1, '', '', 0, NULL), ('ICC', 'NOKIA', 1, 1, '', '', 0, NULL), " .
|
||||||
"('Analog Access', 'CISCO', 1, 1, 'A001C030', 'loadInformation30', 0, ''),('WS-X6608', 'CISCO', 1, 1, 'D00404000032', 'loadInformation43', 0, ''), ('WS-X6624', 'CISCO', 1, 1, 'A00204000013', 'loadInformation43', 0, ''), ('WS-X6608', 'CISCO', 1, 1, 'C00104000003', 'loadInformation51', 0, ''), ('H.323 Phone', 'CISCO', 1, 1, '', 'loadInformation61', 0, ''), ('Simulator', 'CISCO', 1, 1, '', 'loadInformation100', 0, ''), ('MTP', 'CISCO', 1, 1, '', 'loadInformation111', 0, ''), ('MGCP Station', 'CISCO', 1, 1, '', 'loadInformation120', 0, ''), ('MGCP Trunk', 'CISCO', 1, 1, '', 'loadInformation121', 0, ''), ('UPC', 'CISCO', 1, 1, '', 'loadInformation358', 0, ''), ".
|
"('Analog Access', 'CISCO', 1, 1, 'A001C030', 'loadInformation30', 0, ''),('WS-X6608', 'CISCO', 1, 1, 'D00404000032', 'loadInformation43', 0, ''), ('WS-X6624', 'CISCO', 1, 1, 'A00204000013', 'loadInformation43', 0, ''), ('WS-X6608', 'CISCO', 1, 1, 'C00104000003', 'loadInformation51', 0, ''), ('H.323 Phone', 'CISCO', 1, 1, '', 'loadInformation61', 0, ''), ('Simulator', 'CISCO', 1, 1, '', 'loadInformation100', 0, ''), ('MTP', 'CISCO', 1, 1, '', 'loadInformation111', 0, ''), ('MGCP Station', 'CISCO', 1, 1, '', 'loadInformation120', 0, ''), ('MGCP Trunk', 'CISCO', 1, 1, '', 'loadInformation121', 0, ''), ('UPC', 'CISCO', 1, 1, '', 'loadInformation358', 0, ''), ".
|
||||||
"('TelePresence', 'TELEPRESENCE', 1, 1, '', 'loadInformation375', 0, ''), ('1000', 'TELEPRESENCE', 1, 1, '', 'loadInformation478', 0, ''), ('3000', 'TELEPRESENCE', 1, 1, '', 'loadInformation479', 0, ''), ('3200', 'TELEPRESENCE', 1, 1, '', 'loadInformation480', 0, ''), ('500-37', 'TELEPRESENCE', 1, 1, '', 'loadInformation481', 0, ''), ('1300-65', 'TELEPRESENCE', 1, 1, '', 'loadInformation505', 0, ''), ('1100', 'TELEPRESENCE', 1, 1, '', 'loadInformation520', 0, ''), ('200', 'TELEPRESENCE', 1, 1, '', 'loadInformation557', 0, ''), ('400', 'TELEPRESENCE', 1, 1, '', 'loadInformation558', 0, ''), ('EX90', 'TELEPRESENCE', 1, 1, '', 'loadInformation584', 0, ''), ('500-32', 'TELEPRESENCE', 1, 1, '', 'loadInformation590', 0, ''), ('1300-47', 'TELEPRESENCE', 1, 1, '', 'loadInformation591', 0, ''), ('TX1310-65', 'TELEPRESENCE', 1, 1, '', 'loadInformation596', 0, ''), ('EX60', 'TELEPRESENCE', 1, 1, '', 'loadInformation604', 0, ''), ('C90', 'TELEPRESENCE', 1, 1, '', 'loadInformation606', 0, ''), ('C60', 'TELEPRESENCE', 1, 1, '', 'loadInformation607', 0, ''), ('C40', 'TELEPRESENCE', 1, 1, '', 'loadInformation608', 0, ''), ('C20', 'TELEPRESENCE', 1, 1, '', 'loadInformation609', 0, ''), ('C20-42', 'TELEPRESENCE', 1, 1, '', 'loadInformation610', 0, ''), ('C60-42', 'TELEPRESENCE', 1, 1, '', 'loadInformation611', 0, ''), ('C40-52', 'TELEPRESENCE', 1, 1, '', 'loadInformation612', 0, ''), ('C60-52', 'TELEPRESENCE', 1, 1, '', 'loadInformation613', 0, ''), ('C60-52D', 'TELEPRESENCE', 1, 1, '', 'loadInformation614', 0, ''),('C60-65', 'TELEPRESENCE', 1, 1, '', 'loadInformation615', 0, ''), ('C90-65', 'TELEPRESENCE', 1, 1, '', 'loadInformation616', 0, ''), ('MX200', 'TELEPRESENCE', 1, 1, '', 'loadInformation617', 0, ''), ('TX9000', 'TELEPRESENCE', 1, 1, '', 'loadInformation619', 0, ''), ('TX9200', 'TELEPRESENCE', 1, 1, '', 'loadInformation620', 0, ''), ('SX20', 'TELEPRESENCE', 1, 1, '', 'loadInformation626', 0, ''), ('MX300', 'TELEPRESENCE', 1, 1, '', 'loadInformation627', 0, ''), ('C40-42', 'TELEPRESENCE', 1, 1, '', 'loadInformation633', 0, ''), ('Jabber', 'CISCO', 1, 1, '', 'loadInformation652', 0, ''), ".
|
"('TelePresence', 'TELEPRESENCE', 1, 1, '', 'loadInformation375', 0, ''), ('1000', 'TELEPRESENCE', 1, 1, '', 'loadInformation478', 0, ''), ('3000', 'TELEPRESENCE', 1, 1, '', 'loadInformation479', 0, ''), ('3200', 'TELEPRESENCE', 1, 1, '', 'loadInformation480', 0, ''), ('500-37', 'TELEPRESENCE', 1, 1, '', 'loadInformation481', 0, ''), ('1300-65', 'TELEPRESENCE', 1, 1, '', 'loadInformation505', 0, ''), ('1100', 'TELEPRESENCE', 1, 1, '', 'loadInformation520', 0, ''), ('200', 'TELEPRESENCE', 1, 1, '', 'loadInformation557', 0, ''), ('400', 'TELEPRESENCE', 1, 1, '', 'loadInformation558', 0, ''), ('EX90', 'TELEPRESENCE', 1, 1, '', 'loadInformation584', 0, ''), ('500-32', 'TELEPRESENCE', 1, 1, '', 'loadInformation590', 0, ''), ('1300-47', 'TELEPRESENCE', 1, 1, '', 'loadInformation591', 0, ''), ('TX1310-65', 'TELEPRESENCE', 1, 1, '', 'loadInformation596', 0, ''), ('EX60', 'TELEPRESENCE', 1, 1, '', 'loadInformation604', 0, ''), ('C90', 'TELEPRESENCE', 1, 1, '', 'loadInformation606', 0, ''), ('C60', 'TELEPRESENCE', 1, 1, '', 'loadInformation607', 0, ''), ('C40', 'TELEPRESENCE', 1, 1, '', 'loadInformation608', 0, ''), ('C20', 'TELEPRESENCE', 1, 1, '', 'loadInformation609', 0, ''), ('C20-42', 'TELEPRESENCE', 1, 1, '', 'loadInformation610', 0, ''), ('C60-42', 'TELEPRESENCE', 1, 1, '', 'loadInformation611', 0, ''), ('C40-52', 'TELEPRESENCE', 1, 1, '', 'loadInformation612', 0, ''), ('C60-52', 'TELEPRESENCE', 1, 1, '', 'loadInformation613', 0, ''), ('C60-52D', 'TELEPRESENCE', 1, 1, '', 'loadInformation614', 0, ''),('C60-65', 'TELEPRESENCE', 1, 1, '', 'loadInformation615', 0, ''), ('C90-65', 'TELEPRESENCE', 1, 1, '', 'loadInformation616', 0, ''), ('MX200', 'TELEPRESENCE', 1, 1, '', 'loadInformation617', 0, ''), ('TX9000', 'TELEPRESENCE', 1, 1, '', 'loadInformation619', 0, ''), ('TX9200', 'TELEPRESENCE', 1, 1, '', 'loadInformation620', 0, ''), ('SX20', 'TELEPRESENCE', 1, 1, '', 'loadInformation626', 0, ''), ('MX300', 'TELEPRESENCE', 1, 1, '', 'loadInformation627', 0, ''), ('C40-42', 'TELEPRESENCE', 1, 1, '', 'loadInformation633', 0, ''), ('Jabber', 'CISCO', 1, 1, '', 'loadInformation652', 0, ''), ".
|
||||||
"('S60', 'NOKIA', 0, 1, '', 'loadInformation376', 0, ''), ('9971', 'CISCO', 1, 1, '', 'loadInformation493', 0, ''), ('9951', 'CISCO', 1, 1, '', 'loadInformation537', 0, ''), ('8961', 'CISCO', 1, 1, '', 'loadInformation540', 0, ''), ('Iphone', 'APPLE', 0, 1, '', 'loadInformation562', 0, ''), ('Android', 'ANDROID', 0, 1, '', 'loadInformation575', 0, ''), ('7926', 'CISCO', 1, 1, 'CP7926G-1.4.5.3', 'loadInformation577', 0, ''), ('7821', 'CISCO', 1, 1, '', 'loadInformation621', 0, ''), ('7841', 'CISCO', 1, 1, '', 'loadInformation622', 0, ''), ('7861', 'CISCO', 1, 1, '', 'loadInformation623', 0, ''), ('VXC 6215', 'CISCO', 1, 1, '', 'loadInformation634', 0, ''), ('8831', 'CISCO', 1, 1, '', 'loadInformation659', 0, ''), ('8841', 'CISCO', 1, 1, '', 'loadInformation683', 0, ''), ('8851', 'CISCO', 1, 1, '', 'loadInformation684', 0, ''), ('8861', 'CISCO', 1, 1, '', 'loadInformation685', 0, ''), ".
|
"('S60', 'NOKIA', 0, 1, '', 'loadInformation376', 0, ''), ('9971', 'CISCO', 1, 1, '', 'loadInformation493', 0, ''), ('9951', 'CISCO', 1, 1, '', 'loadInformation537', 0, ''), ('8961', 'CISCO', 1, 1, '', 'loadInformation540', 0, ''), ('Iphone', 'APPLE', 0, 1, '', 'loadInformation562', 0, ''), ('Android', 'ANDROID', 0, 1, '', 'loadInformation575', 0, ''), ('7926', 'CISCO', 1, 1, 'CP7926G-1.4.5.3', 'loadInformation577', 0, ''), ('7821', 'CISCO', 1, 1, '', 'loadInformation621', 0, ''), ('7841', 'CISCO', 1, 1, '', 'loadInformation622', 0, ''), ('7861', 'CISCO', 1, 1, '', 'loadInformation623', 0, ''), ('VXC 6215', 'CISCO', 1, 1, '', 'loadInformation634', 0, ''), ('8831', 'CISCO', 1, 1, '', 'loadInformation659', 0, ''), ('8841', 'CISCO', 1, 1, '', 'loadInformation683', 0, ''), ('8851', 'CISCO', 1, 1, '', 'loadInformation684', 0, ''), ('8861', 'CISCO', 1, 1, '', 'loadInformation685', 0, ''), ".
|
||||||
"('Analog', 'CISCO', 1, 1, '', 'loadInformation30027', 0, ''), ('ISDN', 'CISCO', 1, 1, '', 'loadInformation30028', 0, ''), ('SCCP GW', 'CISCO', 1, 1, '', 'loadInformation30032', 0, ''), ('IP-STE', 'CISCO', 1, 1, '', 'loadInformation30035', 0, ''), ".
|
"('Analog', 'CISCO', 1, 1, '', 'loadInformation30027', 0, ''), ('ISDN', 'CISCO', 1, 1, '', 'loadInformation30028', 0, ''), ('SCCP GW', 'CISCO', 1, 1, '', 'loadInformation30032', 0, ''), ('IP-STE', 'CISCO', 1, 1, '', 'loadInformation30035', 0, ''), ".
|
||||||
"('SPA 521S', 'CISCO', 1, 1, '', 'loadInformation80000', 0, ''), ('SPA 502G', 'CISCO', 1, 1, '', 'loadInformation80003', 0, ''), ('SPA 504G', 'CISCO', 1, 1, '', 'loadInformation80004', 0, ''), ('SPA 525G', 'CISCO', 1, 1, '', 'loadInformation80005', 0, ''), ('SPA 525G2', 'CISCO', 1, 1, '', 'loadInformation80009', 0, ''), ('SPA 303G', 'CISCO', 1, 1, '', 'loadInformation80011', 0, ''),".
|
"('SPA 521S', 'CISCO', 1, 1, '', 'loadInformation80000', 0, ''), ('SPA 502G', 'CISCO', 1, 1, '', 'loadInformation80003', 0, ''), ('SPA 504G', 'CISCO', 1, 1, '', 'loadInformation80004', 0, ''), ('SPA 525G', 'CISCO', 1, 1, '', 'loadInformation80005', 0, ''), ('SPA 525G2', 'CISCO', 1, 1, '', 'loadInformation80009', 0, ''), ('SPA 303G', 'CISCO', 1, 1, '', 'loadInformation80011', 0, ''),".
|
||||||
|
@ -678,7 +689,8 @@ function InstallDB_fillsccpdevmodel() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDB_updateSccpDevice() {
|
function InstallDB_updateSccpDevice()
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("Update sccpdevice") . "</li>");
|
outn("<li>" . _("Update sccpdevice") . "</li>");
|
||||||
$sql = "UPDATE `sccpdevice` set audio_tos='0xB8',audio_cos='6',video_tos='0x88',video_cos='5' where audio_tos=NULL or audio_tos='';";
|
$sql = "UPDATE `sccpdevice` set audio_tos='0xB8',audio_cos='6',video_tos='0x88',video_cos='5' where audio_tos=NULL or audio_tos='';";
|
||||||
|
@ -688,7 +700,8 @@ function InstallDB_updateSccpDevice() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDB_createButtonConfigTrigger() {
|
function InstallDB_createButtonConfigTrigger()
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("(Re)Create buttonconfig trigger") . "</li>");
|
outn("<li>" . _("(Re)Create buttonconfig trigger") . "</li>");
|
||||||
$sql = "DROP TRIGGER IF EXISTS sccp_trg_buttonconfig;";
|
$sql = "DROP TRIGGER IF EXISTS sccp_trg_buttonconfig;";
|
||||||
|
@ -722,7 +735,8 @@ function InstallDB_createButtonConfigTrigger() {
|
||||||
// outn("<li>" . $sql . "</li>");
|
// outn("<li>" . $sql . "</li>");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
function InstallDB_updateDBVer($sccp_compatible) {
|
function InstallDB_updateDBVer($sccp_compatible)
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("Update DB Ver") . "</li>");
|
outn("<li>" . _("Update DB Ver") . "</li>");
|
||||||
$sql = "REPLACE INTO `sccpsettings` (`keyword`, `data`, `seq`, `type`), VALUES ('SccpDBmodel', '"+$sccp_compatible+ "','30','0');";
|
$sql = "REPLACE INTO `sccpsettings` (`keyword`, `data`, `seq`, `type`), VALUES ('SccpDBmodel', '"+$sccp_compatible+ "','30','0');";
|
||||||
|
@ -730,10 +744,11 @@ function InstallDB_updateDBVer($sccp_compatible) {
|
||||||
if (DB::IsError($check)) {
|
if (DB::IsError($check)) {
|
||||||
die_freepbx(sprintf(_("Error updating sccpdeviceconfig view. Command was: %s; error was: %s "), $sql, $results->getMessage()));
|
die_freepbx(sprintf(_("Error updating sccpdeviceconfig view. Command was: %s; error was: %s "), $sql, $results->getMessage()));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDB_CreateSccpDeviceConfigView($sccp_compatible) {
|
function InstallDB_CreateSccpDeviceConfigView($sccp_compatible)
|
||||||
|
{
|
||||||
global $db;
|
global $db;
|
||||||
outn("<li>" . _("(Re)Create sccpdeviceconfig view") . "</li>");
|
outn("<li>" . _("(Re)Create sccpdeviceconfig view") . "</li>");
|
||||||
$sql = "";
|
$sql = "";
|
||||||
|
@ -762,11 +777,11 @@ function InstallDB_CreateSccpDeviceConfigView($sccp_compatible) {
|
||||||
GROUP BY sccpdevice.name;";
|
GROUP BY sccpdevice.name;";
|
||||||
} else {
|
} else {
|
||||||
/* $sql = "
|
/* $sql = "
|
||||||
CREATE OR REPLACE
|
CREATE OR REPLACE
|
||||||
ALGORITHM = MERGE
|
ALGORITHM = MERGE
|
||||||
VIEW sccpdeviceconfig AS
|
VIEW sccpdeviceconfig AS
|
||||||
SELECT IF(sccpdevice._profileid = 0,
|
SELECT IF(sccpdevice._profileid = 0,
|
||||||
GROUP_CONCAT(CONCAT_WS( ',', defbutton.buttontype, defbutton.name, defbutton.options ) ORDER BY defbutton.instance ASC SEPARATOR ';' ),
|
GROUP_CONCAT(CONCAT_WS( ',', defbutton.buttontype, defbutton.name, defbutton.options ) ORDER BY defbutton.instance ASC SEPARATOR ';' ),
|
||||||
GROUP_CONCAT( CONCAT_WS( ',', userbutton.buttontype, userbutton.name, userbutton.options ) ORDER BY userbutton.instance ASC SEPARATOR ';' )
|
GROUP_CONCAT( CONCAT_WS( ',', userbutton.buttontype, userbutton.name, userbutton.options ) ORDER BY userbutton.instance ASC SEPARATOR ';' )
|
||||||
) AS button,
|
) AS button,
|
||||||
sccpdevice.*
|
sccpdevice.*
|
||||||
|
@ -775,28 +790,27 @@ function InstallDB_CreateSccpDeviceConfigView($sccp_compatible) {
|
||||||
LEFT JOIN sccpbuttonconfig userbutton ON ( userbutton.ref = sccpdevice._loginname )
|
LEFT JOIN sccpbuttonconfig userbutton ON ( userbutton.ref = sccpdevice._loginname )
|
||||||
LEFT JOIN sccpline ON ( sccpline.name = sccpdevice._loginname)
|
LEFT JOIN sccpline ON ( sccpline.name = sccpdevice._loginname)
|
||||||
GROUP BY sccpdevice.name;";
|
GROUP BY sccpdevice.name;";
|
||||||
*/
|
*/
|
||||||
$sql = "DROP VIEW IF EXISTS `sccpdeviceconfig`;
|
$sql = "DROP VIEW IF EXISTS `sccpdeviceconfig`;
|
||||||
DROP VIEW IF EXISTS `sccpuserconfig`;";
|
DROP VIEW IF EXISTS `sccpuserconfig`;";
|
||||||
/// global $hw_mobil;
|
/// global $hw_mobil;
|
||||||
|
|
||||||
global $mobile_hw;
|
global $mobile_hw;
|
||||||
if ($mobile_hw == '1') {
|
if ($mobile_hw == '1') {
|
||||||
$sql .= "CREATE OR REPLACE ALGORITHM = MERGE VIEW sccpdeviceconfig AS
|
$sql .= "CREATE OR REPLACE ALGORITHM = MERGE VIEW sccpdeviceconfig AS
|
||||||
SELECT GROUP_CONCAT( CONCAT_WS( ',', sccpbuttonconfig.buttontype, sccpbuttonconfig.name, sccpbuttonconfig.options )
|
SELECT GROUP_CONCAT( CONCAT_WS( ',', sccpbuttonconfig.buttontype, sccpbuttonconfig.name, sccpbuttonconfig.options )
|
||||||
ORDER BY instance ASC SEPARATOR ';' ) AS sccpbutton, sccpdevice.*
|
ORDER BY instance ASC SEPARATOR ';' ) AS sccpbutton, sccpdevice.*
|
||||||
FROM sccpdevice
|
FROM sccpdevice
|
||||||
LEFT JOIN sccpbuttonconfig ON (sccpbuttonconfig.reftype = 'sccpdevice' AND sccpbuttonconfig.ref = sccpdevice.name )
|
LEFT JOIN sccpbuttonconfig ON (sccpbuttonconfig.reftype = 'sccpdevice' AND sccpbuttonconfig.ref = sccpdevice.name )
|
||||||
GROUP BY sccpdevice.name; ";
|
GROUP BY sccpdevice.name; ";
|
||||||
$sql .= "CREATE OR REPLACE ALGORITHM = MERGE VIEW sccpuserconfig AS
|
$sql .= "CREATE OR REPLACE ALGORITHM = MERGE VIEW sccpuserconfig AS
|
||||||
SELECT GROUP_CONCAT( CONCAT_WS( ',', sccpbuttonconfig.buttontype, sccpbuttonconfig.name, sccpbuttonconfig.options )
|
SELECT GROUP_CONCAT( CONCAT_WS( ',', sccpbuttonconfig.buttontype, sccpbuttonconfig.name, sccpbuttonconfig.options )
|
||||||
ORDER BY instance ASC SEPARATOR ';' ) AS button, sccpuser.*
|
ORDER BY instance ASC SEPARATOR ';' ) AS button, sccpuser.*
|
||||||
FROM sccpuser
|
FROM sccpuser
|
||||||
LEFT JOIN sccpbuttonconfig ON ( sccpbuttonconfig.reftype = 'sccpuser' AND sccpbuttonconfig.ref = sccpuser.id)
|
LEFT JOIN sccpbuttonconfig ON ( sccpbuttonconfig.reftype = 'sccpuser' AND sccpbuttonconfig.ref = sccpuser.id)
|
||||||
GROUP BY sccpuser.name; ";
|
GROUP BY sccpuser.name; ";
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$sql .= "CREATE OR REPLACE
|
$sql .= "CREATE OR REPLACE
|
||||||
ALGORITHM = MERGE
|
ALGORITHM = MERGE
|
||||||
VIEW sccpdeviceconfig AS
|
VIEW sccpdeviceconfig AS
|
||||||
SELECT case sccpdevice._profileid
|
SELECT case sccpdevice._profileid
|
||||||
|
@ -810,7 +824,7 @@ function InstallDB_CreateSccpDeviceConfigView($sccp_compatible) {
|
||||||
FROM sccpdevice
|
FROM sccpdevice
|
||||||
LEFT JOIN sccpuser sccpuser ON ( sccpuser.name = sccpdevice._loginname )
|
LEFT JOIN sccpuser sccpuser ON ( sccpuser.name = sccpdevice._loginname )
|
||||||
GROUP BY sccpdevice.name;";
|
GROUP BY sccpdevice.name;";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$results = $db->query($sql);
|
$results = $db->query($sql);
|
||||||
if (DB::IsError($check)) {
|
if (DB::IsError($check)) {
|
||||||
|
@ -818,7 +832,8 @@ function InstallDB_CreateSccpDeviceConfigView($sccp_compatible) {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
function CreateBackUpConfig() {
|
function CreateBackUpConfig()
|
||||||
|
{
|
||||||
global $amp_conf;
|
global $amp_conf;
|
||||||
outn("<li>" . _("Create Config BackUp") . "</li>");
|
outn("<li>" . _("Create Config BackUp") . "</li>");
|
||||||
$cnf_int = \FreePBX::Config();
|
$cnf_int = \FreePBX::Config();
|
||||||
|
@ -827,7 +842,7 @@ function CreateBackUpConfig() {
|
||||||
$dir = $cnf_int->get('ASTETCDIR');
|
$dir = $cnf_int->get('ASTETCDIR');
|
||||||
|
|
||||||
$fsql = $dir.'/sccp_backup_'.date("Ymd").'.sql';
|
$fsql = $dir.'/sccp_backup_'.date("Ymd").'.sql';
|
||||||
$result = exec('mysqldump '.$amp_conf['AMPDBNAME'].' --password='.$amp_conf['AMPDBPASS'].' --user='.$amp_conf['AMPDBUSER'].' --single-transaction >'.$fsql ,$output);
|
$result = exec('mysqldump '.$amp_conf['AMPDBNAME'].' --password='.$amp_conf['AMPDBPASS'].' --user='.$amp_conf['AMPDBUSER'].' --single-transaction >'.$fsql, $output);
|
||||||
|
|
||||||
$zip = new \ZipArchive();
|
$zip = new \ZipArchive();
|
||||||
$filename = $dir . "/sccp_instal_backup" . date("Ymd"). ".zip";
|
$filename = $dir . "/sccp_instal_backup" . date("Ymd"). ".zip";
|
||||||
|
@ -850,7 +865,8 @@ function CreateBackUpConfig() {
|
||||||
outn("<li>" . _("Create Config BackUp: ") . $filename ."</li>");
|
outn("<li>" . _("Create Config BackUp: ") . $filename ."</li>");
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenameConfig() {
|
function RenameConfig()
|
||||||
|
{
|
||||||
global $amp_conf;
|
global $amp_conf;
|
||||||
outn("<li>" . _("Move Old Config") . "</li>");
|
outn("<li>" . _("Move Old Config") . "</li>");
|
||||||
$cnf_int = \FreePBX::Config();
|
$cnf_int = \FreePBX::Config();
|
||||||
|
@ -866,7 +882,8 @@ function RenameConfig() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Setup_RealTime() {
|
function Setup_RealTime()
|
||||||
|
{
|
||||||
global $amp_conf;
|
global $amp_conf;
|
||||||
outn("<li>" . _("Pre config RealTime") . "</li>");
|
outn("<li>" . _("Pre config RealTime") . "</li>");
|
||||||
$cnf_int = \FreePBX::Config();
|
$cnf_int = \FreePBX::Config();
|
||||||
|
@ -945,7 +962,7 @@ CheckSCCPManagerDBTables($table_req);
|
||||||
#CheckPermissions();
|
#CheckPermissions();
|
||||||
CheckAsteriskVersion();
|
CheckAsteriskVersion();
|
||||||
$sccp_compatible = CheckChanSCCPCompatible();
|
$sccp_compatible = CheckChanSCCPCompatible();
|
||||||
if ($sccp_compatible == 0) {
|
if ($sccp_compatible == 0) {
|
||||||
// die_freepbx('Chan Sccp not Found. Install it before continuing');
|
// die_freepbx('Chan Sccp not Found. Install it before continuing');
|
||||||
outn("<br>");
|
outn("<br>");
|
||||||
outn("<font color='red'>Chan Sccp not Found. Install it before continuing !</font>");
|
outn("<font color='red'>Chan Sccp not Found. Install it before continuing !</font>");
|
||||||
|
@ -985,8 +1002,8 @@ if (!$sccp_db_ver) {
|
||||||
}
|
}
|
||||||
outn("<br>");
|
outn("<br>");
|
||||||
|
|
||||||
// $ss->save_submit($request);
|
// $ss->handleSubmit($request);
|
||||||
// $ss->sccp_create_sccp_init();
|
// $ss->createDefaultSccpConfig();
|
||||||
// $ss->sccp_db_save_setting();
|
// $ss->saveSccpSettings();
|
||||||
//
|
//
|
||||||
//}
|
//}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php /* $Id:$ */
|
<?php /* $Id:$ */
|
||||||
if (!defined('FREEPBX_IS_AUTH')) { die('No direct script access allowed'); }
|
if (!defined('FREEPBX_IS_AUTH')) {
|
||||||
|
die('No direct script access allowed');
|
||||||
|
}
|
||||||
// License for all code of this FreePBX module can be found in the license file inside the module directory
|
// License for all code of this FreePBX module can be found in the license file inside the module directory
|
||||||
// Copyright 2015 Sangoma Technologies.
|
// Copyright 2015 Sangoma Technologies.
|
||||||
//
|
//
|
||||||
|
@ -14,42 +16,42 @@ if (!defined('FREEPBX_IS_AUTH')) { die('No direct script access allowed'); }
|
||||||
//
|
//
|
||||||
$spage = FreePBX::create()->Sccp_manager;
|
$spage = FreePBX::create()->Sccp_manager;
|
||||||
if (empty($spage->class_error)) {
|
if (empty($spage->class_error)) {
|
||||||
$display_page = $spage->AdvServerShowPage();
|
$display_page = $spage->advServerShowPage();
|
||||||
$display_info = _("SCCP Advance Server Configuration");
|
$display_info = _("SCCP Advance Server Configuration");
|
||||||
} else {
|
} else {
|
||||||
$display_page = $spage->InfoServerShowPage();
|
$display_page = $spage->infoServerShowPage();
|
||||||
$display_info = _("SCCP Server Configuration");
|
$display_info = _("SCCP Server Configuration");
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<h1><?php echo $display_info?></h1>
|
<h1><?php echo $display_info?></h1>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<div class="fpbx-container">
|
<div class="fpbx-container">
|
||||||
<div class="display no-border">
|
<div class="display no-border">
|
||||||
<div class="nav-container">
|
<div class="nav-container">
|
||||||
<div class="scroller scroller-left"><i class="glyphicon glyphicon-chevron-left"></i></div>
|
<div class="scroller scroller-left"><i class="glyphicon glyphicon-chevron-left"></i></div>
|
||||||
<div class="scroller scroller-right"><i class="glyphicon glyphicon-chevron-right"></i></div>
|
<div class="scroller scroller-right"><i class="glyphicon glyphicon-chevron-right"></i></div>
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<ul class="nav nav-tabs list" role="tablist">
|
<ul class="nav nav-tabs list" role="tablist">
|
||||||
<?php foreach($display_page as $key => $page) { ?>
|
<?php foreach ($display_page as $key => $page) { ?>
|
||||||
<li data-name="<?php echo $key?>" class="change-tab <?php echo $key == 'general' ? 'active' : ''?>"><a href="#<?php echo $key?>" aria-controls="<?php echo $key?>" role="tab" data-toggle="tab"><?php echo $page['name']?></a></li>
|
<li data-name="<?php echo $key?>" class="change-tab <?php echo $key == 'general' ? 'active' : ''?>"><a href="#<?php echo $key?>" aria-controls="<?php echo $key?>" role="tab" data-toggle="tab"><?php echo $page['name']?></a></li>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-content display">
|
<div class="tab-content display">
|
||||||
<?php foreach($display_page as $key => $page) { ?>
|
<?php foreach ($display_page as $key => $page) { ?>
|
||||||
<div id="<?php echo $key?>" class="tab-pane <?php echo $key == 'general' ? 'active' : ''?>">
|
<div id="<?php echo $key?>" class="tab-pane <?php echo $key == 'general' ? 'active' : ''?>">
|
||||||
<?php echo $page['content']?>
|
<?php echo $page['content']?>
|
||||||
</div>
|
</div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Modal alerts-->
|
<!-- Modal alerts-->
|
||||||
<div class="modal" id="hwalert" tabindex="-1" role="dialog" aria-labelledby="lhwalert">
|
<div class="modal" id="hwalert" tabindex="-1" role="dialog" aria-labelledby="lhwalert">
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php /* $Id:$ */
|
<?php /* $Id:$ */
|
||||||
if (!defined('FREEPBX_IS_AUTH')) { die('No direct script access allowed'); }
|
if (!defined('FREEPBX_IS_AUTH')) {
|
||||||
|
die('No direct script access allowed');
|
||||||
|
}
|
||||||
// License for all code of this FreePBX module can be found in the license file inside the module directory
|
// License for all code of this FreePBX module can be found in the license file inside the module directory
|
||||||
// Copyright 2015 Sangoma Technologies.
|
// Copyright 2015 Sangoma Technologies.
|
||||||
//
|
//
|
||||||
|
@ -14,43 +16,43 @@ if (!defined('FREEPBX_IS_AUTH')) { die('No direct script access allowed'); }
|
||||||
//
|
//
|
||||||
$spage = FreePBX::create()->Sccp_manager;
|
$spage = FreePBX::create()->Sccp_manager;
|
||||||
if (empty($spage->class_error)) {
|
if (empty($spage->class_error)) {
|
||||||
$display_page = $spage->PhoneShowPage();
|
$display_page = $spage->phoneShowPage();
|
||||||
$display_info = _("SCCP Phone Manager");
|
$display_info = _("SCCP Phone Manager");
|
||||||
} else {
|
} else {
|
||||||
$display_page = $spage->InfoServerShowPage();
|
$display_page = $spage->infoServerShowPage();
|
||||||
$display_info = _("SCCP Server Configuration");
|
$display_info = _("SCCP Server Configuration");
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<h1><?php echo $display_info?></h1>
|
<h1><?php echo $display_info?></h1>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<div class="fpbx-container">
|
<div class="fpbx-container">
|
||||||
<div class="display no-border">
|
<div class="display no-border">
|
||||||
<div class="nav-container">
|
<div class="nav-container">
|
||||||
<div class="scroller scroller-left"><i class="glyphicon glyphicon-chevron-left"></i></div>
|
<div class="scroller scroller-left"><i class="glyphicon glyphicon-chevron-left"></i></div>
|
||||||
<div class="scroller scroller-right"><i class="glyphicon glyphicon-chevron-right"></i></div>
|
<div class="scroller scroller-right"><i class="glyphicon glyphicon-chevron-right"></i></div>
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<ul class="nav nav-tabs list" role="tablist">
|
<ul class="nav nav-tabs list" role="tablist">
|
||||||
<?php foreach($display_page as $key => $page) { ?>
|
<?php foreach ($display_page as $key => $page) { ?>
|
||||||
<li data-name="<?php echo $key?>" class="change-tab <?php echo $key == 'general' ? 'active' : ''?>"><a href="#<?php echo $key?>" aria-controls="<?php echo $key?>" role="tab" data-toggle="tab"><?php echo $page['name']?></a></li>
|
<li data-name="<?php echo $key?>" class="change-tab <?php echo $key == 'general' ? 'active' : ''?>"><a href="#<?php echo $key?>" aria-controls="<?php echo $key?>" role="tab" data-toggle="tab"><?php echo $page['name']?></a></li>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-content display">
|
<div class="tab-content display">
|
||||||
<?php foreach($display_page as $key => $page) { ?>
|
<?php foreach ($display_page as $key => $page) { ?>
|
||||||
<div id="<?php echo $key?>" class="tab-pane <?php echo $key == 'general' ? 'active' : ''?>">
|
<div id="<?php echo $key?>" class="tab-pane <?php echo $key == 'general' ? 'active' : ''?>">
|
||||||
<?php echo $page['content']?>
|
<?php echo $page['content']?>
|
||||||
</div>
|
</div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Modal alerts-->
|
<!-- Modal alerts-->
|
||||||
<div class="modal" id="hwalert" tabindex="-1" role="dialog" aria-labelledby="lhwalert">
|
<div class="modal" id="hwalert" tabindex="-1" role="dialog" aria-labelledby="lhwalert">
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
<?php /* $Id:$ */
|
<?php /* $Id:$ */
|
||||||
if (!defined('FREEPBX_IS_AUTH')) { die('No direct script access allowed'); }
|
if (!defined('FREEPBX_IS_AUTH')) {
|
||||||
|
die('No direct script access allowed');
|
||||||
|
}
|
||||||
// License for all code of this FreePBX module can be found in the license file inside the module directory
|
// License for all code of this FreePBX module can be found in the license file inside the module directory
|
||||||
// Copyright 2015 Sangoma Technologies.
|
// Copyright 2015 Sangoma Technologies.
|
||||||
// vim: set ai ts=4 sw=4 ft=php:
|
// vim: set ai ts=4 sw=4 ft=php:
|
||||||
|
|
||||||
// SccpSettings page. Re-written for usage with chan_sccp
|
// SccpSettings page. Re-written for usage with chan_sccp
|
||||||
// AGPL v3 Licened
|
// AGPL v3 Licened
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -12,33 +14,33 @@ $spage = FreePBX::create()->Sccp_manager;
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<h1><?php echo _("SCCP Server Settings")?></h1>
|
<h1><?php echo _("SCCP Server Settings")?></h1>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<div class="fpbx-container">
|
<div class="fpbx-container">
|
||||||
<div class="display no-border">
|
<div class="display no-border">
|
||||||
<div class="nav-container">
|
<div class="nav-container">
|
||||||
<div class="scroller scroller-left"><i class="glyphicon glyphicon-chevron-left"></i></div>
|
<div class="scroller scroller-left"><i class="glyphicon glyphicon-chevron-left"></i></div>
|
||||||
<div class="scroller scroller-right"><i class="glyphicon glyphicon-chevron-right"></i></div>
|
<div class="scroller scroller-right"><i class="glyphicon glyphicon-chevron-right"></i></div>
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<ul class="nav nav-tabs list" role="tablist">
|
<ul class="nav nav-tabs list" role="tablist">
|
||||||
<?php foreach($spage->myShowPage() as $key => $page) { ?>
|
<?php foreach ($spage->myShowPage() as $key => $page) { ?>
|
||||||
<li data-name="<?php echo $key?>" class="change-tab <?php echo $key == 'general' ? 'active' : ''?>"><a href="#<?php echo $key?>" aria-controls="<?php echo $key?>" role="tab" data-toggle="tab"><?php echo $page['name']?></a></li>
|
<li data-name="<?php echo $key?>" class="change-tab <?php echo $key == 'general' ? 'active' : ''?>"><a href="#<?php echo $key?>" aria-controls="<?php echo $key?>" role="tab" data-toggle="tab"><?php echo $page['name']?></a></li>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-content display">
|
<div class="tab-content display">
|
||||||
<?php foreach($spage->myShowPage() as $key => $page) { ?>
|
<?php foreach ($spage->myShowPage() as $key => $page) { ?>
|
||||||
<div id="<?php echo $key?>" class="tab-pane <?php echo $key == 'general' ? 'active' : ''?>">
|
<div id="<?php echo $key?>" class="tab-pane <?php echo $key == 'general' ? 'active' : ''?>">
|
||||||
<?php echo $page['content']?>
|
<?php echo $page['content']?>
|
||||||
</div>
|
</div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Modal alerts-->
|
<!-- Modal alerts-->
|
||||||
<div class="modal" id="hwalert" tabindex="-1" role="dialog" aria-labelledby="lhwalert">
|
<div class="modal" id="hwalert" tabindex="-1" role="dialog" aria-labelledby="lhwalert">
|
||||||
|
|
|
@ -30,45 +30,45 @@ function CreateBackUpConfig() {
|
||||||
outn("<li>" . _("Create Config BackUp: ") . $filename ."</li>");
|
outn("<li>" . _("Create Config BackUp: ") . $filename ."</li>");
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
if (!defined('FREEPBX_IS_AUTH')) { die('No direct script access allowed'); }
|
if (!defined('FREEPBX_IS_AUTH')) {
|
||||||
|
die('No direct script access allowed');
|
||||||
|
}
|
||||||
|
|
||||||
global $db;
|
global $db;
|
||||||
$version = FreePBX::Config()->get('ASTVERSION');
|
$version = FreePBX::Config()->get('ASTVERSION');
|
||||||
|
|
||||||
out('Remove all SCCP tables');
|
out('Remove all SCCP tables');
|
||||||
$tables = array('sccpdevmodel', 'sccpsettings');
|
$tables = array('sccpdevmodel', 'sccpsettings');
|
||||||
foreach ($tables as $table) {
|
foreach ($tables as $table) {
|
||||||
$sql = "DROP TABLE IF EXISTS {$table}";
|
$sql = "DROP TABLE IF EXISTS {$table}";
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (DB::IsError($result)) {
|
if (DB::IsError($result)) {
|
||||||
die_freepbx($result->getDebugInfo());
|
die_freepbx($result->getDebugInfo());
|
||||||
}
|
}
|
||||||
unset($result);
|
unset($result);
|
||||||
|
}
|
||||||
|
if (!empty($version)) {
|
||||||
|
// Woo, we have a version
|
||||||
|
$check = $db->getRow("SELECT 1 FROM `kvstore` LIMIT 0", DB_FETCHMODE_ASSOC);
|
||||||
|
if (!(DB::IsError($check))) {
|
||||||
|
//print_r("none, creating table :". $value);
|
||||||
|
echo "Deleting key FROM kvstore..";
|
||||||
|
sql("DELETE FROM kvstore WHERE module = 'sccpsettings'");
|
||||||
|
sql("DELETE FROM kvstore WHERE module = 'Sccp_manager'");
|
||||||
}
|
}
|
||||||
if (!empty($version)) {
|
|
||||||
// Woo, we have a version
|
|
||||||
$check = $db->getRow("SELECT 1 FROM `kvstore` LIMIT 0", DB_FETCHMODE_ASSOC);
|
|
||||||
if (!(DB::IsError($check))) {
|
|
||||||
//print_r("none, creating table :". $value);
|
|
||||||
echo "Deleting key FROM kvstore..";
|
|
||||||
sql("DELETE FROM kvstore WHERE module = 'sccpsettings'");
|
|
||||||
sql("DELETE FROM kvstore WHERE module = 'Sccp_manager'");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Comment: Maybe save in sccpsettings, if the chan_sccp tables already existed in the database or if they were created by install.php */
|
/* Comment: Maybe save in sccpsettings, if the chan_sccp tables already existed in the database or if they were created by install.php */
|
||||||
/* So that you know if it is save to drop/delete them */
|
/* So that you know if it is save to drop/delete them */
|
||||||
|
|
||||||
/* DROP VIEW IF EXISTS`sccpdeviceconfig`;
|
/* DROP VIEW IF EXISTS`sccpdeviceconfig`;
|
||||||
DROP TABLE IF EXISTS `sccpbuttonconfig`;
|
DROP TABLE IF EXISTS `sccpbuttonconfig`;
|
||||||
DROP TABLE IF EXISTS `sccpdevice`;
|
DROP TABLE IF EXISTS `sccpdevice`;
|
||||||
DROP TABLE IF EXISTS `sccpdevmodel`;
|
DROP TABLE IF EXISTS `sccpdevmodel`;
|
||||||
DROP TABLE IF EXISTS `sccpline`;
|
DROP TABLE IF EXISTS `sccpline`;
|
||||||
DROP TABLE IF EXISTS `sccpsettings`;
|
DROP TABLE IF EXISTS `sccpsettings`;
|
||||||
DROP TABLE IF EXISTS `sccpuser`;
|
DROP TABLE IF EXISTS `sccpuser`;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "done<br>\n";
|
echo "done<br>\n";
|
||||||
|
|
||||||
?>
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
* To change this template file, choose Tools | Templates
|
* To change this template file, choose Tools | Templates
|
||||||
* and open the template in the editor.
|
* and open the template in the editor.
|
||||||
|
@ -53,28 +53,28 @@ $keynamearray = array('onhook' => array(sname => 'ONHOOK', name =>'Display On
|
||||||
<div class="display no-border">
|
<div class="display no-border">
|
||||||
<div id="toolbar-all">
|
<div id="toolbar-all">
|
||||||
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" onclick="load_oncliсk(this,'*new*')" data-target=".edit_new_keyset"><i class="fa fa-bolt"></i> <?php echo _("Add Keyset"); ?></button>
|
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" onclick="load_oncliсk(this,'*new*')" data-target=".edit_new_keyset"><i class="fa fa-bolt"></i> <?php echo _("Add Keyset"); ?></button>
|
||||||
</div>
|
</div>
|
||||||
<table data-cookie="true" data-cookie-id-table="sccp_keyset-all" data-url="ajax.php?module=sccp_manager&command=getSoftKey&type=active" data-cache="false" data-show-refresh="true" data-toolbar="#toolbar-all" data-maintain-selected="true" data-show-columns="true" data-show-toggle="true" data-toggle="table" data-pagination="true" data-search="true" class="table table-striped ext-list" id="softkey-all" data-unique-id="softkeys">
|
<table data-cookie="true" data-cookie-id-table="sccp_keyset-all" data-url="ajax.php?module=sccp_manager&command=getSoftKey&type=active" data-cache="false" data-show-refresh="true" data-toolbar="#toolbar-all" data-maintain-selected="true" data-show-columns="true" data-show-toggle="true" data-toggle="table" data-pagination="true" data-search="true" class="table table-striped ext-list" id="softkey-all" data-unique-id="softkeys">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<!-- <th data-checkbox="true"></th> -->
|
<!-- <th data-checkbox="true"></th> -->
|
||||||
<th data-sortable="true" data-field="softkeys"><?php echo _('KeySetName')?></th>
|
<th data-sortable="true" data-field="softkeys"><?php echo _('KeySetName')?></th>
|
||||||
<?php
|
<?php
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($keynamearray as $key => $value) {
|
foreach ($keynamearray as $key => $value) {
|
||||||
if ($i < 9 ){
|
if ($i < 9) {
|
||||||
echo '<th data-sortable="false" data-field="'.$key.'">'._($value['sname']).'</th>';
|
echo '<th data-sortable="false" data-field="'.$key.'">'._($value['sname']).'</th>';
|
||||||
}
|
}
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<th data-field="actions" data-formatter="DispayActionsKeyFormatter"><?php echo _('Actions')?></th>
|
<th data-field="actions" data-formatter="DispayActionsKeyFormatter"><?php echo _('Actions')?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -104,48 +104,47 @@ $keynamearray = array('onhook' => array(sname => 'ONHOOK', name =>'Display On
|
||||||
|
|
||||||
<ul class="nav nav-tabs" role="tablist">
|
<ul class="nav nav-tabs" role="tablist">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($keysetarray as $key => $value) {
|
foreach ($keysetarray as $key => $value) {
|
||||||
if ($i == 0) {
|
if ($i == 0) {
|
||||||
echo '<li role="presentation" data-name="'.$key.'" class="active">';
|
echo '<li role="presentation" data-name="'.$key.'" class="active">';
|
||||||
} else {
|
} else {
|
||||||
echo '<li role="presentation" data-name="'.$key.'" class="change-tab">';
|
echo '<li role="presentation" data-name="'.$key.'" class="change-tab">';
|
||||||
}
|
}
|
||||||
echo '<a href="#'.$key.'" aria-controls="'.$key.'" role="tab" data-toggle="tab">'._($key);
|
echo '<a href="#'.$key.'" aria-controls="'.$key.'" role="tab" data-toggle="tab">'._($key);
|
||||||
echo '</a></li>';
|
echo '</a></li>';
|
||||||
$i ++;
|
$i ++;
|
||||||
|
}
|
||||||
}
|
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content display">
|
<div class="tab-content display">
|
||||||
<?php
|
<?php
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($keysetarray as $key => $value) {
|
foreach ($keysetarray as $key => $value) {
|
||||||
if ($i == 0) {
|
if ($i == 0) {
|
||||||
echo '<div role="tabpanel" id="'.$key.'" class="tab-pane active">';
|
echo '<div role="tabpanel" id="'.$key.'" class="tab-pane active">';
|
||||||
} else {
|
} else {
|
||||||
echo '<div role="tabpanel" id="'.$key.'" class="tab-pane">';
|
echo '<div role="tabpanel" id="'.$key.'" class="tab-pane">';
|
||||||
}
|
}
|
||||||
echo '<div class="element-container"><div class="row"><div class="form-group"><div class="col-md-3"><label class="control-label" for="'.$key.'">'._($keynamearray[$key]['name']).'</label>';
|
echo '<div class="element-container"><div class="row"><div class="form-group"><div class="col-md-3"><label class="control-label" for="'.$key.'">'._($keynamearray[$key]['name']).'</label>';
|
||||||
echo '<i class="fa fa-question-circle fpbx-help-icon" data-for="'.$key.'"></i></div>';
|
echo '<i class="fa fa-question-circle fpbx-help-icon" data-for="'.$key.'"></i></div>';
|
||||||
|
|
||||||
echo '<div class="col-md-4"><select multiple class="form-control sccpmultiselect" name="av_'.$key.'" id="source_'.$key.'">';
|
echo '<div class="col-md-4"><select multiple class="form-control sccpmultiselect" name="av_'.$key.'" id="source_'.$key.'">';
|
||||||
$row_dada= explode(',', $value);
|
$row_dada= explode(',', $value);
|
||||||
foreach ($row_dada as $data) {
|
foreach ($row_dada as $data) {
|
||||||
echo '<option value="'.$data.'">'.$data.'</option>';
|
echo '<option value="'.$data.'">'.$data.'</option>';
|
||||||
}
|
}
|
||||||
echo '</select></div><div class="col-md-1">';
|
echo '</select></div><div class="col-md-1">';
|
||||||
foreach ($keymultiselect as $btkey =>$btval) {
|
foreach ($keymultiselect as $btkey => $btval) {
|
||||||
echo '<input type="button" class="btnMultiselect" data-id="'.$key.'" data-key="'.$btkey.'" value="'.$btval.'">';
|
echo '<input type="button" class="btnMultiselect" data-id="'.$key.'" data-key="'.$btkey.'" value="'.$btval.'">';
|
||||||
}
|
}
|
||||||
echo '</div><div class="col-md-4"><select multiple class="form-control" name="sel_'.$key.'" id="destination_'.$key.'">';
|
echo '</div><div class="col-md-4"><select multiple class="form-control" name="sel_'.$key.'" id="destination_'.$key.'">';
|
||||||
echo '</select></div></div></div><div class="row"><div class="col-md-12">';
|
echo '</select></div></div></div><div class="row"><div class="col-md-12">';
|
||||||
echo '<span id="'.$key.'-help" class="help-block fpbx-help-block">'._($keynamearray[$key]['help']).'</span>';
|
echo '<span id="'.$key.'-help" class="help-block fpbx-help-block">'._($keynamearray[$key]['help']).'</span>';
|
||||||
echo '</div></div></div></div>';
|
echo '</div></div></div></div>';
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@
|
||||||
<label class="control-label" for="new_dns"><?php echo _('Expansion Module');?></label>
|
<label class="control-label" for="new_dns"><?php echo _('Expansion Module');?></label>
|
||||||
<i class="fa fa-question-circle fpbx-help-icon" data-for="new_dns"></i>
|
<i class="fa fa-question-circle fpbx-help-icon" data-for="new_dns"></i>
|
||||||
</div><div class="col-md-9">
|
</div><div class="col-md-9">
|
||||||
<select name="new_dns" id="new_dns">
|
<select name="new_dns" id="new_dns">
|
||||||
<option value="1">Phone - no sidecars.</option>
|
<option value="1">Phone - no sidecars.</option>
|
||||||
<option value="2">Phone - one sidecar.</option>
|
<option value="2">Phone - one sidecar.</option>
|
||||||
<option value="3">Phone - two sidecars.</option>
|
<option value="3">Phone - two sidecars.</option>
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo _('Close');?></button>
|
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo _('Close');?></button>
|
||||||
<button type="button" class="btn btn-primary sccp_update" data-id="model_add" id="add_new_model" data-dismiss="modal"><?php echo _('Add New model whithout Enabled');?></button>
|
<button type="button" class="btn btn-primary sccp_update" data-id="model_add" id="add_new_model" data-dismiss="modal"><?php echo _('Add New model without Enabled');?></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -204,8 +204,8 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
function StatusIconFormatter(value, row) {
|
function StatusIconFormatter(value, row) {
|
||||||
return (value === '1') ? '<i class="fa fa-check-square-o" style="color:green" title="<?php echo _("Device is enabled")?>"></i>' : '<i class="fa fa-square-o" title="<?php echo _("Device is disabled")?>"></i>';
|
return (value === '1') ? '<i class="fa fa-check-square-o" style="color:green" title="<?php echo _("Device is enabled")?>"></i>' : '<i class="fa fa-square-o" title="<?php echo _("Device is disabled")?>"></i>';
|
||||||
}
|
}
|
||||||
function DisplayDnsFormatter(value, row, index) {
|
function DisplayDnsFormatter(value, row, index) {
|
||||||
var exp_model = ['Expansion Module', 'Not Available', 'One ExpModule', 'Two ExpModule'];
|
var exp_model = ['Expansion Module', 'Not Available', 'One ExpModule', 'Two ExpModule'];
|
||||||
return exp_model[value];
|
return exp_model[value];
|
||||||
|
|
|
@ -17,7 +17,7 @@ $def_val['directed_pickup_context'] = array("keyword" => 'directed_pickup_conte
|
||||||
if (!empty($_REQUEST['new_id'])) {
|
if (!empty($_REQUEST['new_id'])) {
|
||||||
$dev_id = $_REQUEST['new_id'];
|
$dev_id = $_REQUEST['new_id'];
|
||||||
$val = str_replace(array('SEP','ATA','VG'), '', $dev_id);
|
$val = str_replace(array('SEP','ATA','VG'), '', $dev_id);
|
||||||
$val = implode('.',sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
|
$val = implode('.', sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
|
||||||
$def_val['mac'] = array("keyword" => 'mac', "data" => $val, "seq" => "99");
|
$def_val['mac'] = array("keyword" => 'mac', "data" => $val, "seq" => "99");
|
||||||
$val = $_REQUEST['type'];
|
$val = $_REQUEST['type'];
|
||||||
$def_val['type'] = array("keyword" => 'type', "data" => $val, "seq" => "99");
|
$def_val['type'] = array("keyword" => 'type', "data" => $val, "seq" => "99");
|
||||||
|
@ -34,27 +34,27 @@ if (!empty($_REQUEST['id'])) {
|
||||||
if (!empty($val)) {
|
if (!empty($val)) {
|
||||||
switch ($key) {
|
switch ($key) {
|
||||||
case 'type':
|
case 'type':
|
||||||
$tmp_raw = $this->getSccp_model_information('byid', TRUE, 'all', array('model'=>$val));
|
$tmp_raw = $this->getSccpModelInformation('byid', true, 'all', array('model'=>$val));
|
||||||
if (!empty($tmp_raw[0])) {
|
if (!empty($tmp_raw[0])) {
|
||||||
$tmp_raw = $tmp_raw[0];
|
$tmp_raw = $tmp_raw[0];
|
||||||
}
|
}
|
||||||
if (!empty($tmp_raw['validate'])) {
|
if (!empty($tmp_raw['validate'])) {
|
||||||
$tmpar = explode(";",$tmp_raw['validate']);
|
$tmpar = explode(";", $tmp_raw['validate']);
|
||||||
if ($tmpar[0] != 'yes') {
|
if ($tmpar[0] != 'yes') {
|
||||||
$device_warning['Image'] = Array('Device firmware not found : '.$tmp_raw['loadimage']);
|
$device_warning['Image'] = array('Device firmware not found : '.$tmp_raw['loadimage']);
|
||||||
}
|
}
|
||||||
if ($tmpar[1] != 'yes') {
|
if ($tmpar[1] != 'yes') {
|
||||||
$device_warning['Template'] = Array('Missing device configuration template : '. $tmp_raw['nametemplate']);
|
$device_warning['Template'] = array('Missing device configuration template : '. $tmp_raw['nametemplate']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'name':
|
case 'name':
|
||||||
$key = 'mac';
|
$key = 'mac';
|
||||||
$val = str_replace(array('SEP','ATA','VG'), '', $val);
|
$val = str_replace(array('SEP','ATA','VG'), '', $val);
|
||||||
$val = implode('.',sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
|
$val = implode('.', sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
|
||||||
break;
|
break;
|
||||||
case '_hwlang':
|
case '_hwlang':
|
||||||
$tmpar = explode(":",$val);
|
$tmpar = explode(":", $val);
|
||||||
$def_val['netlang'] = array("keyword" => 'netlang', "data" => $tmpar[0], "seq" => "99");
|
$def_val['netlang'] = array("keyword" => 'netlang', "data" => $tmpar[0], "seq" => "99");
|
||||||
$def_val['devlang'] = array("keyword" => 'devlang', "data" => $tmpar[1], "seq" => "99");
|
$def_val['devlang'] = array("keyword" => 'devlang', "data" => $tmpar[1], "seq" => "99");
|
||||||
break;
|
break;
|
||||||
|
@ -79,14 +79,14 @@ if (!empty($device_warning)) {
|
||||||
<h2 style="border:2px solid Tomato;color:Tomato;" >Warning in the SCCP Device</h2>
|
<h2 style="border:2px solid Tomato;color:Tomato;" >Warning in the SCCP Device</h2>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<?php
|
<?php
|
||||||
foreach ($device_warning as $key => $value) {
|
foreach ($device_warning as $key => $value) {
|
||||||
echo '<h3>'.$key.'</h3>';
|
echo '<h3>'.$key.'</h3>';
|
||||||
if (is_array($value)) {
|
if (is_array($value)) {
|
||||||
echo '<li>'._(implode('</li><li>', $value)).'</li>';
|
echo '<li>'._(implode('</li><li>', $value)).'</li>';
|
||||||
} else {
|
} else {
|
||||||
echo '<li>'. _($value).'</li>';
|
echo '<li>'. _($value).'</li>';
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
@ -102,21 +102,21 @@ if (!empty($device_warning)) {
|
||||||
<input type="hidden" name="Submit" value="Submit">
|
<input type="hidden" name="Submit" value="Submit">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if (empty($dev_new)){
|
if (empty($dev_new)) {
|
||||||
echo '<input type="hidden" name="sccp_deviceid" value="new">';
|
echo '<input type="hidden" name="sccp_deviceid" value="new">';
|
||||||
} else {
|
} else {
|
||||||
echo '<input type="hidden" name="sccp_deviceid" value="'.$dev_id.'">';
|
echo '<input type="hidden" name="sccp_deviceid" value="'.$dev_id.'">';
|
||||||
}
|
}
|
||||||
if (empty($dev_id)){
|
if (empty($dev_id)) {
|
||||||
echo $this->ShowGroup('sccp_hw_dev', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev', 1, 'sccp_hw', $def_val);
|
||||||
} else {
|
} else {
|
||||||
echo $this->ShowGroup('sccp_hw_dev_edit', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev_edit', 1, 'sccp_hw', $def_val);
|
||||||
}
|
}
|
||||||
echo $this->ShowGroup('sccp_hw_dev2', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev2', 1, 'sccp_hw', $def_val);
|
||||||
echo $this->ShowGroup('sccp_hw_dev_advance', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev_advance', 1, 'sccp_hw', $def_val);
|
||||||
echo $this->ShowGroup('sccp_hw_dev_softkey', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev_softkey', 1, 'sccp_hw', $def_val);
|
||||||
echo $this->ShowGroup('sccp_hw_dev_pickup', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev_pickup', 1, 'sccp_hw', $def_val);
|
||||||
echo $this->ShowGroup('sccp_hw_dev_conference', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev_conference', 1, 'sccp_hw', $def_val);
|
||||||
echo $this->ShowGroup('sccp_hw_dev_network', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev_network', 1, 'sccp_hw', $def_val);
|
||||||
?>
|
?>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -12,7 +12,7 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
$dev_id = $_REQUEST['ru_id'];
|
$dev_id = $_REQUEST['ru_id'];
|
||||||
$def_val['id'] = array("keyword" => 'id', "data" => $dev_id, "seq" => "99");
|
$def_val['id'] = array("keyword" => 'id', "data" => $dev_id, "seq" => "99");
|
||||||
$db_res = $this->dbinterface->get_db_SccpTableData('get_sccpuser', array("id" => $dev_id));
|
$db_res = $this->dbinterface->get_db_SccpTableData('get_sccpuser', array("id" => $dev_id));
|
||||||
if (!empty($db_res) ) {
|
if (!empty($db_res)) {
|
||||||
foreach ($db_res as $key => $val) {
|
foreach ($db_res as $key => $val) {
|
||||||
if (!empty($val)) {
|
if (!empty($val)) {
|
||||||
$def_val[$key] = array("keyword" => $key, "data" => $val, "seq" => "99");
|
$def_val[$key] = array("keyword" => $key, "data" => $val, "seq" => "99");
|
||||||
|
@ -28,7 +28,7 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
<input type="hidden" name="Submit" value="Submit">
|
<input type="hidden" name="Submit" value="Submit">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
echo $this->ShowGroup('sccp_ruser', 1, 'sccp_ru', $def_val);
|
echo $this->showGroup('sccp_ruser', 1, 'sccp_ru', $def_val);
|
||||||
echo $this->ShowGroup('sccp_ruser_time', 1, 'sccp_ru', $def_val);
|
echo $this->showGroup('sccp_ruser_time', 1, 'sccp_ru', $def_val);
|
||||||
?>
|
?>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -17,7 +17,7 @@ $def_val['directed_pickup_context'] = array("keyword" => 'directed_pickup_conte
|
||||||
if (!empty($_REQUEST['new_id'])) {
|
if (!empty($_REQUEST['new_id'])) {
|
||||||
$dev_id = $_REQUEST['new_id'];
|
$dev_id = $_REQUEST['new_id'];
|
||||||
$val = str_replace(array('SEP','ATA','VG'), '', $dev_id);
|
$val = str_replace(array('SEP','ATA','VG'), '', $dev_id);
|
||||||
$val = implode('.',sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
|
$val = implode('.', sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
|
||||||
$def_val['mac'] = array("keyword" => 'mac', "data" => $val, "seq" => "99");
|
$def_val['mac'] = array("keyword" => 'mac', "data" => $val, "seq" => "99");
|
||||||
$val = $_REQUEST['type'];
|
$val = $_REQUEST['type'];
|
||||||
$def_val['type'] = array("keyword" => 'type', "data" => $val, "seq" => "99");
|
$def_val['type'] = array("keyword" => 'type', "data" => $val, "seq" => "99");
|
||||||
|
@ -34,27 +34,27 @@ if (!empty($_REQUEST['id'])) {
|
||||||
if (!empty($val)) {
|
if (!empty($val)) {
|
||||||
switch ($key) {
|
switch ($key) {
|
||||||
case 'type':
|
case 'type':
|
||||||
$tmp_raw = $this->getSccp_model_information('byid', TRUE, 'all', array('model'=>$val));
|
$tmp_raw = $this->getSccpModelInformation('byid', true, 'all', array('model'=>$val));
|
||||||
if (!empty($tmp_raw[0])) {
|
if (!empty($tmp_raw[0])) {
|
||||||
$tmp_raw = $tmp_raw[0];
|
$tmp_raw = $tmp_raw[0];
|
||||||
}
|
}
|
||||||
if (!empty($tmp_raw['validate'])) {
|
if (!empty($tmp_raw['validate'])) {
|
||||||
$tmpar = explode(";",$tmp_raw['validate']);
|
$tmpar = explode(";", $tmp_raw['validate']);
|
||||||
if ($tmpar[0] != 'yes') {
|
if ($tmpar[0] != 'yes') {
|
||||||
$device_warning['Image'] = Array('Device firmware not found : '.$tmp_raw['loadimage']);
|
$device_warning['Image'] = array('Device firmware not found : '.$tmp_raw['loadimage']);
|
||||||
}
|
}
|
||||||
if ($tmpar[1] != 'yes') {
|
if ($tmpar[1] != 'yes') {
|
||||||
$device_warning['Template'] = Array('Missing device configuration template : '. $tmp_raw['nametemplate']);
|
$device_warning['Template'] = array('Missing device configuration template : '. $tmp_raw['nametemplate']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'name':
|
case 'name':
|
||||||
$key = 'mac';
|
$key = 'mac';
|
||||||
$val = str_replace(array('SEP','ATA','VG'), '', $val);
|
$val = str_replace(array('SEP','ATA','VG'), '', $val);
|
||||||
$val = implode('.',sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
|
$val = implode('.', sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
|
||||||
break;
|
break;
|
||||||
case '_hwlang':
|
case '_hwlang':
|
||||||
$tmpar = explode(":",$val);
|
$tmpar = explode(":", $val);
|
||||||
$def_val['netlang'] = array("keyword" => 'netlang', "data" => $tmpar[0], "seq" => "99");
|
$def_val['netlang'] = array("keyword" => 'netlang', "data" => $tmpar[0], "seq" => "99");
|
||||||
$def_val['devlang'] = array("keyword" => 'devlang', "data" => $tmpar[1], "seq" => "99");
|
$def_val['devlang'] = array("keyword" => 'devlang', "data" => $tmpar[1], "seq" => "99");
|
||||||
break;
|
break;
|
||||||
|
@ -79,14 +79,14 @@ if (!empty($device_warning)) {
|
||||||
<h2 style="border:2px solid Tomato;color:Tomato;" >Warning in the SCCP Device</h2>
|
<h2 style="border:2px solid Tomato;color:Tomato;" >Warning in the SCCP Device</h2>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<?php
|
<?php
|
||||||
foreach ($device_warning as $key => $value) {
|
foreach ($device_warning as $key => $value) {
|
||||||
echo '<h3>'.$key.'</h3>';
|
echo '<h3>'.$key.'</h3>';
|
||||||
if (is_array($value)) {
|
if (is_array($value)) {
|
||||||
echo '<li>'._(implode('</li><li>', $value)).'</li>';
|
echo '<li>'._(implode('</li><li>', $value)).'</li>';
|
||||||
} else {
|
} else {
|
||||||
echo '<li>'. _($value).'</li>';
|
echo '<li>'. _($value).'</li>';
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
@ -104,22 +104,22 @@ if (!empty($device_warning)) {
|
||||||
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if (empty($dev_new)){
|
if (empty($dev_new)) {
|
||||||
echo '<input type="hidden" name="sccp_deviceid" value="new">';
|
echo '<input type="hidden" name="sccp_deviceid" value="new">';
|
||||||
} else {
|
} else {
|
||||||
echo '<input type="hidden" name="sccp_deviceid" value="'.$dev_id.'">';
|
echo '<input type="hidden" name="sccp_deviceid" value="'.$dev_id.'">';
|
||||||
}
|
}
|
||||||
if (empty($dev_id)){
|
if (empty($dev_id)) {
|
||||||
echo $this->ShowGroup('sccp_hw_sip_dev', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_sip_dev', 1, 'sccp_hw', $def_val);
|
||||||
} else {
|
} else {
|
||||||
echo $this->ShowGroup('sccp_hw_dev_edit', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev_edit', 1, 'sccp_hw', $def_val);
|
||||||
}
|
}
|
||||||
echo $this->ShowGroup('sccp_hw_dev2', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_dev2', 1, 'sccp_hw', $def_val);
|
||||||
echo $this->ShowGroup('sccp_hw_sip_conf', 1, 'sccp_hw', $def_val);
|
echo $this->showGroup('sccp_hw_sip_conf', 1, 'sccp_hw', $def_val);
|
||||||
// echo $this->ShowGroup('sccp_hw_dev_advance', 1, 'sccp_hw', $def_val);
|
// echo $this->showGroup('sccp_hw_dev_advance', 1, 'sccp_hw', $def_val);
|
||||||
// echo $this->ShowGroup('sccp_hw_dev_softkey', 1, 'sccp_hw', $def_val);
|
// echo $this->showGroup('sccp_hw_dev_softkey', 1, 'sccp_hw', $def_val);
|
||||||
// echo $this->ShowGroup('sccp_hw_dev_pickup', 1, 'sccp_hw', $def_val);
|
// echo $this->showGroup('sccp_hw_dev_pickup', 1, 'sccp_hw', $def_val);
|
||||||
// echo $this->ShowGroup('sccp_hw_dev_conference', 1, 'sccp_hw', $def_val);
|
// echo $this->showGroup('sccp_hw_dev_conference', 1, 'sccp_hw', $def_val);
|
||||||
// echo $this->ShowGroup('sccp_hw_dev_network', 1, 'sccp_hw', $def_val);
|
// echo $this->showGroup('sccp_hw_dev_network', 1, 'sccp_hw', $def_val);
|
||||||
?>
|
?>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
* To change this template file, choose Tools | Templates
|
* To change this template file, choose Tools | Templates
|
||||||
* and open the template in the editor.
|
* and open the template in the editor.
|
||||||
|
@ -16,12 +16,12 @@ $feature_list= array('parkinglot'=>'Park Slots','monitor'=> "Record Calls",'dev
|
||||||
/*
|
/*
|
||||||
button = feature,PDefault,ParkingLot,default,RetrieveSingle
|
button = feature,PDefault,ParkingLot,default,RetrieveSingle
|
||||||
feature,P.slot,parkinglot,P.slot,
|
feature,P.slot,parkinglot,P.slot,
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$lines_list = $this->dbinterface->get_db_SccpTableData('SccpExtension');
|
$lines_list = $this->dbinterface->get_db_SccpTableData('SccpExtension');
|
||||||
//$hint_list = $this->dbinterface->get_db_SccpTableData('SccpExtension');
|
//$hint_list = $this->dbinterface->get_db_SccpTableData('SccpExtension');
|
||||||
$hint_list = $this->get_hint_info(true,array('context'=>'park-hints')) ;
|
$hint_list = $this->getHintInformation(true, array('context'=>'park-hints')) ;
|
||||||
|
|
||||||
// print_r($hint_list);
|
// print_r($hint_list);
|
||||||
$line_id =0;
|
$line_id =0;
|
||||||
|
@ -33,22 +33,22 @@ if (!empty($_REQUEST['id'])) {
|
||||||
$db_buttons = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_buttons', array("id" => $dev_id));
|
$db_buttons = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_buttons', array("id" => $dev_id));
|
||||||
$db_device = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $dev_id));
|
$db_device = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $dev_id));
|
||||||
$max_buttons = $db_device['buttons'];
|
$max_buttons = $db_device['buttons'];
|
||||||
if (!empty($db_device['addon_buttons'])){
|
if (!empty($db_device['addon_buttons'])) {
|
||||||
$max_buttons += $db_device['addon_buttons'];
|
$max_buttons += $db_device['addon_buttons'];
|
||||||
}
|
}
|
||||||
$show_buttons = $max_buttons;
|
$show_buttons = $max_buttons;
|
||||||
}
|
}
|
||||||
if (!empty($_REQUEST['new_id'])) {
|
if (!empty($_REQUEST['new_id'])) {
|
||||||
$val = $_REQUEST['type'];
|
$val = $_REQUEST['type'];
|
||||||
$dev_schema = $this-> getSccp_model_information('byid', false, "all", array('model' =>$val));
|
$dev_schema = $this-> getSccpModelInformation('byid', false, "all", array('model' =>$val));
|
||||||
// $db_device = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $val));
|
// $db_device = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $val));
|
||||||
$max_buttons = $dev_schema[0]['buttons'];
|
$max_buttons = $dev_schema[0]['buttons'];
|
||||||
if (!empty($_REQUEST['addon'])) {
|
if (!empty($_REQUEST['addon'])) {
|
||||||
$val = $_REQUEST['addon'];
|
$val = $_REQUEST['addon'];
|
||||||
$dev_schema = $this-> getSccp_model_information('byid', false, "all", array('model' =>$val));
|
$dev_schema = $this-> getSccpModelInformation('byid', false, "all", array('model' =>$val));
|
||||||
$max_buttons += $dev_schema[0]['buttons'];
|
$max_buttons += $dev_schema[0]['buttons'];
|
||||||
}
|
}
|
||||||
$show_buttons = $max_buttons;
|
$show_buttons = $max_buttons;
|
||||||
}
|
}
|
||||||
if (!empty($_REQUEST['ru_id'])) {
|
if (!empty($_REQUEST['ru_id'])) {
|
||||||
$dev_id = $_REQUEST['ru_id'];
|
$dev_id = $_REQUEST['ru_id'];
|
||||||
|
@ -90,68 +90,68 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
|
|
||||||
</div></div>
|
</div></div>
|
||||||
<?php
|
<?php
|
||||||
for ($line_id = 0; $line_id <=$max_buttons; $line_id ++){
|
for ($line_id = 0; $line_id <=$max_buttons; $line_id ++) {
|
||||||
// print_r($db_buttons[$line_id]);
|
// print_r($db_buttons[$line_id]);
|
||||||
$show_form_mode = '';
|
$show_form_mode = '';
|
||||||
$defaul_tv = (empty($db_buttons[$line_id])) ? "empty": $db_buttons[$line_id]['buttontype'];
|
$defaul_tv = (empty($db_buttons[$line_id])) ? "empty": $db_buttons[$line_id]['buttontype'];
|
||||||
$defaul_btn = (empty($db_buttons[$line_id])) ? "": $db_buttons[$line_id]['name'];
|
$defaul_btn = (empty($db_buttons[$line_id])) ? "": $db_buttons[$line_id]['name'];
|
||||||
$defaul_opt = (empty($db_buttons[$line_id])) ? array(''): explode(',',$db_buttons[$line_id]['options']);
|
$defaul_opt = (empty($db_buttons[$line_id])) ? array(''): explode(',', $db_buttons[$line_id]['options']);
|
||||||
|
|
||||||
$show_form_mode = $defaul_tv;
|
$show_form_mode = $defaul_tv;
|
||||||
$def_hint = ''; // Hint check Box
|
$def_hint = ''; // Hint check Box
|
||||||
$def_hint_btn = ''; // Hint Combo Box
|
$def_hint_btn = ''; // Hint Combo Box
|
||||||
$def_park = ''; // Hint check Box
|
$def_park = ''; // Hint check Box
|
||||||
$def_silent = '';
|
$def_silent = '';
|
||||||
$defaul_advline = '';
|
$defaul_advline = '';
|
||||||
$defaul_ftr = '';
|
$defaul_ftr = '';
|
||||||
if (strpos($defaul_btn,'@') >0) {
|
if (strpos($defaul_btn, '@') >0) {
|
||||||
$defaul_tv = 'adv.line';
|
$defaul_tv = 'adv.line';
|
||||||
$show_form_mode = 'adv.line';
|
$show_form_mode = 'adv.line';
|
||||||
$defaul_btn = strtok($defaul_btn,'@');
|
$defaul_btn = strtok($defaul_btn, '@');
|
||||||
$defaul_advline = strtok('@');
|
$defaul_advline = strtok('@');
|
||||||
}
|
}
|
||||||
if ($line_id == 0) {
|
if ($line_id == 0) {
|
||||||
$show_form_mode = 'line';
|
$show_form_mode = 'line';
|
||||||
}
|
}
|
||||||
if (stripos($defaul_btn,'!') >0) {
|
if (stripos($defaul_btn, '!') >0) {
|
||||||
$defaul_btn = strtok($defaul_btn,'!');
|
$defaul_btn = strtok($defaul_btn, '!');
|
||||||
$defaul_tv = 'silent';
|
$defaul_tv = 'silent';
|
||||||
$def_silent = 'checked';
|
$def_silent = 'checked';
|
||||||
}
|
}
|
||||||
if ($defaul_tv == "feature") {
|
if ($defaul_tv == "feature") {
|
||||||
$defaul_ftr = $defaul_opt[0];
|
$defaul_ftr = $defaul_opt[0];
|
||||||
$defaul_fcod = (empty($defaul_opt[1])) ? '': $defaul_opt[1];
|
$defaul_fcod = (empty($defaul_opt[1])) ? '': $defaul_opt[1];
|
||||||
$def_park = (empty($defaul_opt[2])) ? '': 'checked';
|
$def_park = (empty($defaul_opt[2])) ? '': 'checked';
|
||||||
// print_r($defaul_opt);
|
// print_r($defaul_opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($defaul_opt as $data_i) {
|
foreach ($defaul_opt as $data_i) {
|
||||||
if (strpos($data_i,'@')>0) {
|
if (strpos($data_i, '@')>0) {
|
||||||
$test_btn = strtok($data_i,'@');
|
$test_btn = strtok($data_i, '@');
|
||||||
$def_hint = 'checked';
|
$def_hint = 'checked';
|
||||||
$defaul_btn = $data_i;
|
$defaul_btn = $data_i;
|
||||||
$def_hint_btn = $data_i;
|
$def_hint_btn = $data_i;
|
||||||
if ($test_btn == $defaul_opt[0]) {
|
if ($test_btn == $defaul_opt[0]) {
|
||||||
foreach ($lines_list as $data){
|
foreach ($lines_list as $data) {
|
||||||
if ($data['name']==$test_btn) {
|
if ($data['name']==$test_btn) {
|
||||||
$show_form_mode = 'line';
|
$show_form_mode = 'line';
|
||||||
$defaul_tv = 'monitor';
|
$defaul_tv = 'monitor';
|
||||||
$defaul_btn = $test_btn;
|
$defaul_btn = $test_btn;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// print_r($def_hint_btn);
|
// print_r($def_hint_btn);
|
||||||
// print_r($defaul_opt);
|
// print_r($defaul_opt);
|
||||||
|
|
||||||
echo '<!-- Begin button :'.$line_id.' -->';
|
echo '<!-- Begin button :'.$line_id.' -->';
|
||||||
echo '<div class="line_button element-container" '.(($line_id < $show_buttons)?"":"hidden ").'data-id="'.$line_id.'">';
|
echo '<div class="line_button element-container" '.(($line_id < $show_buttons)?"":"hidden ").'data-id="'.$line_id.'">';
|
||||||
// echo 'Mode : '.$show_form_mode. ' opt: ';
|
// echo 'Mode : '.$show_form_mode. ' opt: ';
|
||||||
// print_r( $defaul_opt);
|
// print_r( $defaul_opt);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<div class="row"> <div class="form-group">
|
<div class="row"> <div class="form-group">
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<label class="control-label" for="<?php echo $forminfo[1]['name'].$line_id; ?> "><?php echo _($forminfo[1]['label'].$line_id).(($line_id =="0")?' Default ':''); ?></label>
|
<label class="control-label" for="<?php echo $forminfo[1]['name'].$line_id; ?> "><?php echo _($forminfo[1]['label'].$line_id).(($line_id =="0")?' Default ':''); ?></label>
|
||||||
|
@ -160,41 +160,41 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
<div class="col-xs-3">
|
<div class="col-xs-3">
|
||||||
<!-- Line Type Select -->
|
<!-- Line Type Select -->
|
||||||
<select class="form-control buttontype" data-id="<?php echo $line_id;?>" name="<?php echo $forminfo[1]['name'].$line_id.'_type';?>" >
|
<select class="form-control buttontype" data-id="<?php echo $line_id;?>" name="<?php echo $forminfo[1]['name'].$line_id.'_type';?>" >
|
||||||
<?php
|
<?php
|
||||||
if ($line_id == 0) {
|
if ($line_id == 0) {
|
||||||
echo '<option value="line" selected >DEF LINE</option>';
|
echo '<option value="line" selected >DEF LINE</option>';
|
||||||
}else {
|
} else {
|
||||||
foreach ($buttons_type as $data){
|
foreach ($buttons_type as $data) {
|
||||||
$select = (($data == $defaul_tv)?"selected":"");
|
$select = (($data == $defaul_tv)?"selected":"");
|
||||||
echo '<option value="'.$data.'" '.$select.' >'.$data.'</option>';
|
echo '<option value="'.$data.'" '.$select.' >'.$data.'</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<!-- if Line Type = feature Show Futures -->
|
<!-- if Line Type = feature Show Futures -->
|
||||||
<div class="col-xs-7">
|
<div class="col-xs-7">
|
||||||
<select data-type="feature" class ="futuretype form-control lineid_<?php echo $line_id.(($show_form_mode=='feature')?'':' hidden');?>" data-id="<?php echo $line_id;?>" name="<?php echo $forminfo[1]['name'].$line_id.'_feature';?>" >
|
<select data-type="feature" class ="futuretype form-control lineid_<?php echo $line_id.(($show_form_mode=='feature')?'':' hidden');?>" data-id="<?php echo $line_id;?>" name="<?php echo $forminfo[1]['name'].$line_id.'_feature';?>" >
|
||||||
<?php
|
<?php
|
||||||
foreach ($feature_list as $fkey => $fval) {
|
foreach ($feature_list as $fkey => $fval) {
|
||||||
$select = (($fkey == $defaul_ftr)?"selected":"");
|
$select = (($fkey == $defaul_ftr)?"selected":"");
|
||||||
echo '<option value="'.$fkey.'" '.$select.' >'.$fval.'</option>';
|
echo '<option value="'.$fkey.'" '.$select.' >'.$fval.'</option>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
<!-- if Line Type = line Show SCCP Num -->
|
<!-- if Line Type = line Show SCCP Num -->
|
||||||
<select data-type='line' class ="form-control lineid_<?php echo $line_id.(($show_form_mode=='line' || $show_form_mode=='adv.line')?'':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_line';?>" >
|
<select data-type='line' class ="form-control lineid_<?php echo $line_id.(($show_form_mode=='line' || $show_form_mode=='adv.line')?'':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_line';?>" >
|
||||||
<?php
|
<?php
|
||||||
foreach ($lines_list as $data){
|
foreach ($lines_list as $data) {
|
||||||
$select = (($data['name']==$defaul_btn)?"selected":"");
|
$select = (($data['name']==$defaul_btn)?"selected":"");
|
||||||
echo '<option value="'.$data['name'].'" '.$select.' >'.$data['name'].' / '.$data['label'].'</option>';
|
echo '<option value="'.$data['name'].'" '.$select.' >'.$data['name'].' / '.$data['label'].'</option>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
<!-- if Line Type = Othe Show Input -->
|
<!-- if Line Type = Othe Show Input -->
|
||||||
<div data-type='speeddial' class="lineid_<?php echo $line_id.(($show_form_mode=='speeddial')? '':' hidden');?>" >
|
<div data-type='speeddial' class="lineid_<?php echo $line_id.(($show_form_mode=='speeddial')? '':' hidden');?>" >
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_input" name="'.$forminfo[1]['name'].$line_id.'_input" placeholder="Name" value="'.$db_buttons[$line_id]['name'].'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_input" name="'.$forminfo[1]['name'].$line_id.'_input" placeholder="Name" value="'.$db_buttons[$line_id]['name'].'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -203,34 +203,34 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<!-- if Line Type = speeddial Show Hint line -->
|
<!-- if Line Type = speeddial Show Hint line -->
|
||||||
<div data-type='hintline' class="lineid_<?php echo $line_id.(($show_form_mode=='speeddial')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
<div data-type='hintline' class="lineid_<?php echo $line_id.(($show_form_mode=='speeddial')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
||||||
<?php
|
<?php
|
||||||
echo '<div class="col-xs-5">';
|
echo '<div class="col-xs-5">';
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_phone" name="'.$forminfo[1]['name'].$line_id.'_phone" placeholder="Phone" value="'.$defaul_opt[0].'">';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_phone" name="'.$forminfo[1]['name'].$line_id.'_phone" placeholder="Phone" value="'.$defaul_opt[0].'">';
|
||||||
echo '</div><div class="col-xs-2 radioset" data-toggle="buttons">';
|
echo '</div><div class="col-xs-2 radioset" data-toggle="buttons">';
|
||||||
echo '<input class="form-control" type="checkbox" name="'.$forminfo[1]['name'].$line_id.'_hint" id="'.$forminfo[1]['name'].$line_id.'_hint" '.$def_hint.' value= "hint">';
|
echo '<input class="form-control" type="checkbox" name="'.$forminfo[1]['name'].$line_id.'_hint" id="'.$forminfo[1]['name'].$line_id.'_hint" '.$def_hint.' value= "hint">';
|
||||||
echo '<label for="'.$forminfo[1]['name'].$line_id.'_hint">hints</label>';
|
echo '<label for="'.$forminfo[1]['name'].$line_id.'_hint">hints</label>';
|
||||||
echo '</div><div class="col-xs-5">';
|
echo '</div><div class="col-xs-5">';
|
||||||
|
|
||||||
echo '<select class="form-control" name="'.$forminfo[1]['name'].$line_id.'_hline" >';
|
echo '<select class="form-control" name="'.$forminfo[1]['name'].$line_id.'_hline" >';
|
||||||
|
|
||||||
foreach ($hint_list as $data){
|
foreach ($hint_list as $data) {
|
||||||
$select = (($data['key']==$def_hint_btn)?"selected":"");
|
$select = (($data['key']==$def_hint_btn)?"selected":"");
|
||||||
echo '<option value="'.$data['key'].'" '.$select.' >'.$data['exten'].' / '.$data['label'].'</option>';
|
echo '<option value="'.$data['key'].'" '.$select.' >'.$data['exten'].' / '.$data['label'].'</option>';
|
||||||
}
|
}
|
||||||
echo '</select>';
|
echo '</select>';
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<!-- if Line Type = feature Show Futures Park -->
|
<!-- if Line Type = feature Show Futures Park -->
|
||||||
<div data-type='feature' class="lineid_<?php echo $line_id.(($show_form_mode=='feature')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
<div data-type='feature' class="lineid_<?php echo $line_id.(($show_form_mode=='feature')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
||||||
<div class="col-xs-4">
|
<div class="col-xs-4">
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_flabel" name="'.$forminfo[1]['name'].$line_id.'_flabel" placeholder="Display Label" value="'.$db_buttons[$line_id]['name'].'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_flabel" name="'.$forminfo[1]['name'].$line_id.'_flabel" placeholder="Display Label" value="'.$db_buttons[$line_id]['name'].'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-4">
|
<div class="col-xs-4">
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_fvalue" name="'.$forminfo[1]['name'].$line_id.'_fvalue" placeholder="code" value="'.$defaul_fcod.'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_fvalue" name="'.$forminfo[1]['name'].$line_id.'_fvalue" placeholder="code" value="'.$defaul_fcod.'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -238,13 +238,13 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
|
|
||||||
<div data-type='adv_line' class="lineid_<?php echo $line_id.(($show_form_mode=='adv.line')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
<div data-type='adv_line' class="lineid_<?php echo $line_id.(($show_form_mode=='adv.line')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
||||||
<div class="col-xs-5">
|
<div class="col-xs-5">
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_advline" name="'.$forminfo[1]['name'].$line_id.'_advline" placeholder="[+=][01]:[cidname]" value="'.$defaul_advline.'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_advline" name="'.$forminfo[1]['name'].$line_id.'_advline" placeholder="[+=][01]:[cidname]" value="'.$defaul_advline.'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-5">
|
<div class="col-xs-5">
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_advopt" name="'.$forminfo[1]['name'].$line_id.'_advopt" placeholder="ButtonLabel,Options" value="'.$db_buttons[$line_id]['options'].'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_advopt" name="'.$forminfo[1]['name'].$line_id.'_advopt" placeholder="ButtonLabel,Options" value="'.$db_buttons[$line_id]['options'].'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -252,10 +252,10 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
<div data-type='featurep' class="lineid_<?php echo $line_id.(($show_form_mode=='feature')? (($defaul_ftr=='parkinglot')? ' ':' hidden'):' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_park';?>">
|
<div data-type='featurep' class="lineid_<?php echo $line_id.(($show_form_mode=='feature')? (($defaul_ftr=='parkinglot')? ' ':' hidden'):' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_park';?>">
|
||||||
<div class="col-xs-4">
|
<div class="col-xs-4">
|
||||||
<div class="radioset" data-toggle="buttons">
|
<div class="radioset" data-toggle="buttons">
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="checkbox" name="'.$forminfo[1]['name'].$line_id.'_retrieve" id="'.$forminfo[1]['name'].$line_id.'_retrieve" '.$def_park.' value="retrieve">';
|
echo '<input class="form-control" type="checkbox" name="'.$forminfo[1]['name'].$line_id.'_retrieve" id="'.$forminfo[1]['name'].$line_id.'_retrieve" '.$def_park.' value="retrieve">';
|
||||||
echo '<label for="'.$forminfo[1]['name'].$line_id.'_retrieve">RetrieveSingle</label>';
|
echo '<label for="'.$forminfo[1]['name'].$line_id.'_retrieve">RetrieveSingle</label>';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -264,9 +264,9 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
|
|
||||||
</div></div>
|
</div></div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- End button :'.$line_id.' -->';
|
echo '<!-- End button :'.$line_id.' -->';
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
* To change this template file, choose Tools | Templates
|
* To change this template file, choose Tools | Templates
|
||||||
* and open the template in the editor.
|
* and open the template in the editor.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//$list_data = $this->get_DialPlan('dialplan');
|
//$list_data = $this->getDialPlan('dialplan');
|
||||||
//print_r($list_data);
|
//print_r($list_data);
|
||||||
//$dialFelds = array('match','timeout','line','rewrite','tone');
|
//$dialFelds = array('match','timeout','line','rewrite','tone');
|
||||||
//$dialFelds = array('match','timeout','User','rewrite','tone');
|
//$dialFelds = array('match','timeout','User','rewrite','tone');
|
||||||
|
@ -16,13 +16,13 @@ if (!empty($_REQUEST['extdisplay'])) {
|
||||||
$dev_id = $_REQUEST['extdisplay'];
|
$dev_id = $_REQUEST['extdisplay'];
|
||||||
}
|
}
|
||||||
if ($dev_id != '*new*') {
|
if ($dev_id != '*new*') {
|
||||||
$list_data= $this->get_DialPlan($dev_id);
|
$list_data= $this->getDialPlan($dev_id);
|
||||||
$data_s= '';
|
$data_s= '';
|
||||||
foreach ($list_data['template'] as $key => $value) {
|
foreach ($list_data['template'] as $key => $value) {
|
||||||
foreach ($dialFelds as $fld) {
|
foreach ($dialFelds as $fld) {
|
||||||
if (isset($value[$fld])) {
|
if (isset($value[$fld])) {
|
||||||
$data_s .=(string)$value[$fld];
|
$data_s .=(string)$value[$fld];
|
||||||
}
|
}
|
||||||
$data_s .= '/';
|
$data_s .= '/';
|
||||||
}
|
}
|
||||||
$data_s = substr($data_s, 0, -1);
|
$data_s = substr($data_s, 0, -1);
|
||||||
|
@ -37,12 +37,12 @@ if ($dev_id != '*new*') {
|
||||||
|
|
||||||
<form autocomplete="off" name="frm_editdialtemplate" id="frm_editbuttons" class="fpbx-submit" action="" method="post" data-id="dial_template">
|
<form autocomplete="off" name="frm_editdialtemplate" id="frm_editbuttons" class="fpbx-submit" action="" method="post" data-id="dial_template">
|
||||||
|
|
||||||
<input type="hidden" name="idtemplate" value="<?php echo str_replace('dial','',$dev_id);?>">
|
<input type="hidden" name="idtemplate" value="<?php echo str_replace('dial', '', $dev_id);?>">
|
||||||
<input type="hidden" name="Submit" value="Submit">
|
<input type="hidden" name="Submit" value="Submit">
|
||||||
<?php
|
<?php
|
||||||
if ($dev_id == '*new*') {
|
if ($dev_id == '*new*') {
|
||||||
echo $this->ShowGroup('sccp_dp_new_template',0,'sccp_dial',$def_val);
|
echo $this->showGroup('sccp_dp_new_template', 0, 'sccp_dial', $def_val);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
|
@ -73,8 +73,8 @@ if ($dev_id != '*new*') {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
// echo $this->ShowGroup('sccp_dp_new_template',0,'sccp_dial',$def_val);
|
// echo $this->showGroup('sccp_dp_new_template',0,'sccp_dial',$def_val);
|
||||||
echo $this->ShowGroup('sccp_dp_template',0,'sccp_dial',$def_val);
|
echo $this->showGroup('sccp_dp_template', 0, 'sccp_dial', $def_val);
|
||||||
?>
|
?>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
* To change this template file, choose Tools | Templates
|
* To change this template file, choose Tools | Templates
|
||||||
* and open the template in the editor.
|
* and open the template in the editor.
|
||||||
|
@ -18,7 +18,7 @@ $feature_list= array('parkinglot'=>'Park Slots','monitor'=> "Record Calls",'dev
|
||||||
//$lines_list = $this->dbinterface->get_db_SccpTableData('SccpExtension');
|
//$lines_list = $this->dbinterface->get_db_SccpTableData('SccpExtension');
|
||||||
$lines_list = $this->sipconfigs->get_db_sip_TableData('Device');
|
$lines_list = $this->sipconfigs->get_db_sip_TableData('Device');
|
||||||
//$hint_list = $this->dbinterface->get_db_SccpTableData('SccpExtension');
|
//$hint_list = $this->dbinterface->get_db_SccpTableData('SccpExtension');
|
||||||
$hint_list = $this->get_hint_info(true,array('context'=>'park-hints')) ;
|
$hint_list = $this->getHintInformation(true, array('context'=>'park-hints')) ;
|
||||||
|
|
||||||
// print_r($lines_list);
|
// print_r($lines_list);
|
||||||
$line_id =0;
|
$line_id =0;
|
||||||
|
@ -30,22 +30,22 @@ if (!empty($_REQUEST['id'])) {
|
||||||
$db_buttons = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_buttons', array("id" => $dev_id));
|
$db_buttons = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_buttons', array("id" => $dev_id));
|
||||||
$db_device = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $dev_id));
|
$db_device = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $dev_id));
|
||||||
$max_buttons = $db_device['buttons'];
|
$max_buttons = $db_device['buttons'];
|
||||||
if (!empty($db_device['addon_buttons'])){
|
if (!empty($db_device['addon_buttons'])) {
|
||||||
$max_buttons += $db_device['addon_buttons'];
|
$max_buttons += $db_device['addon_buttons'];
|
||||||
}
|
}
|
||||||
$show_buttons = $max_buttons;
|
$show_buttons = $max_buttons;
|
||||||
}
|
}
|
||||||
if (!empty($_REQUEST['new_id'])) {
|
if (!empty($_REQUEST['new_id'])) {
|
||||||
$val = $_REQUEST['type'];
|
$val = $_REQUEST['type'];
|
||||||
$dev_schema = $this-> getSccp_model_information('byid', false, "all", array('model' =>$val));
|
$dev_schema = $this-> getSccpModelInformation('byid', false, "all", array('model' =>$val));
|
||||||
// $db_device = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $val));
|
// $db_device = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $val));
|
||||||
$max_buttons = $dev_schema[0]['buttons'];
|
$max_buttons = $dev_schema[0]['buttons'];
|
||||||
if (!empty($_REQUEST['addon'])) {
|
if (!empty($_REQUEST['addon'])) {
|
||||||
$val = $_REQUEST['addon'];
|
$val = $_REQUEST['addon'];
|
||||||
$dev_schema = $this-> getSccp_model_information('byid', false, "all", array('model' =>$val));
|
$dev_schema = $this-> getSccpModelInformation('byid', false, "all", array('model' =>$val));
|
||||||
$max_buttons += $dev_schema[0]['buttons'];
|
$max_buttons += $dev_schema[0]['buttons'];
|
||||||
}
|
}
|
||||||
$show_buttons = $max_buttons;
|
$show_buttons = $max_buttons;
|
||||||
}
|
}
|
||||||
if (!empty($_REQUEST['ru_id'])) {
|
if (!empty($_REQUEST['ru_id'])) {
|
||||||
$dev_id = $_REQUEST['ru_id'];
|
$dev_id = $_REQUEST['ru_id'];
|
||||||
|
@ -87,65 +87,65 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
|
|
||||||
</div></div>
|
</div></div>
|
||||||
<?php
|
<?php
|
||||||
for ($line_id = 0; $line_id <=$max_buttons; $line_id ++){
|
for ($line_id = 0; $line_id <=$max_buttons; $line_id ++) {
|
||||||
// print_r($db_buttons[$line_id]);
|
// print_r($db_buttons[$line_id]);
|
||||||
$show_form_mode = '';
|
$show_form_mode = '';
|
||||||
$defaul_tv = (empty($db_buttons[$line_id])) ? "empty": $db_buttons[$line_id]['buttontype'];
|
$defaul_tv = (empty($db_buttons[$line_id])) ? "empty": $db_buttons[$line_id]['buttontype'];
|
||||||
$defaul_btn = (empty($db_buttons[$line_id])) ? "": $db_buttons[$line_id]['name'];
|
$defaul_btn = (empty($db_buttons[$line_id])) ? "": $db_buttons[$line_id]['name'];
|
||||||
$defaul_opt = (empty($db_buttons[$line_id])) ? array(''): explode(',',$db_buttons[$line_id]['options']);
|
$defaul_opt = (empty($db_buttons[$line_id])) ? array(''): explode(',', $db_buttons[$line_id]['options']);
|
||||||
|
|
||||||
$show_form_mode = $defaul_tv;
|
$show_form_mode = $defaul_tv;
|
||||||
$def_hint = ''; // Hint check Box
|
$def_hint = ''; // Hint check Box
|
||||||
$def_hint_btn = ''; // Hint Combo Box
|
$def_hint_btn = ''; // Hint Combo Box
|
||||||
$def_silent = '';
|
$def_silent = '';
|
||||||
$defaul_advline = '';
|
$defaul_advline = '';
|
||||||
if (strpos($defaul_btn,'@') >0) {
|
if (strpos($defaul_btn, '@') >0) {
|
||||||
$defaul_tv = 'adv.line';
|
$defaul_tv = 'adv.line';
|
||||||
$show_form_mode = 'adv.line';
|
$show_form_mode = 'adv.line';
|
||||||
$defaul_btn = strtok($defaul_btn,'@');
|
$defaul_btn = strtok($defaul_btn, '@');
|
||||||
$defaul_advline = strtok('@');
|
$defaul_advline = strtok('@');
|
||||||
}
|
}
|
||||||
if ($line_id == 0) {
|
if ($line_id == 0) {
|
||||||
$show_form_mode = 'line';
|
$show_form_mode = 'line';
|
||||||
}
|
}
|
||||||
if (stripos($defaul_btn,'!') >0) {
|
if (stripos($defaul_btn, '!') >0) {
|
||||||
$defaul_btn = strtok($defaul_btn,'!');
|
$defaul_btn = strtok($defaul_btn, '!');
|
||||||
$defaul_tv = 'silent';
|
$defaul_tv = 'silent';
|
||||||
$def_silent = 'checked';
|
$def_silent = 'checked';
|
||||||
}
|
}
|
||||||
if ($defaul_tv == "feature") {
|
if ($defaul_tv == "feature") {
|
||||||
$defaul_ftr = $defaul_opt[0];
|
$defaul_ftr = $defaul_opt[0];
|
||||||
$defaul_fcod = (empty($defaul_opt[1])) ? '': $defaul_opt[1];
|
$defaul_fcod = (empty($defaul_opt[1])) ? '': $defaul_opt[1];
|
||||||
// print_r($defaul_fcod);
|
// print_r($defaul_fcod);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($defaul_opt as $data_i) {
|
foreach ($defaul_opt as $data_i) {
|
||||||
if (strpos($data_i,'@')>0) {
|
if (strpos($data_i, '@')>0) {
|
||||||
$test_btn = strtok($data_i,'@');
|
$test_btn = strtok($data_i, '@');
|
||||||
$def_hint = 'checked';
|
$def_hint = 'checked';
|
||||||
$defaul_btn = $data_i;
|
$defaul_btn = $data_i;
|
||||||
$def_hint_btn = $data_i;
|
$def_hint_btn = $data_i;
|
||||||
if ($test_btn == $defaul_opt[0]) {
|
if ($test_btn == $defaul_opt[0]) {
|
||||||
foreach ($lines_list as $data){
|
foreach ($lines_list as $data) {
|
||||||
if ($data['id']==$test_btn) {
|
if ($data['id']==$test_btn) {
|
||||||
$show_form_mode = 'line';
|
$show_form_mode = 'line';
|
||||||
$defaul_tv = 'monitor';
|
$defaul_tv = 'monitor';
|
||||||
$defaul_btn = $test_btn;
|
$defaul_btn = $test_btn;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// print_r($def_hint_btn);
|
// print_r($def_hint_btn);
|
||||||
// print_r($defaul_opt);
|
// print_r($defaul_opt);
|
||||||
|
|
||||||
echo '<!-- Begin button :'.$line_id.' -->';
|
echo '<!-- Begin button :'.$line_id.' -->';
|
||||||
echo '<div class="line_button element-container" '.(($line_id < $show_buttons)?"":"hidden ").'data-id="'.$line_id.'">';
|
echo '<div class="line_button element-container" '.(($line_id < $show_buttons)?"":"hidden ").'data-id="'.$line_id.'">';
|
||||||
// echo 'Mode : '.$show_form_mode. ' opt: ';
|
// echo 'Mode : '.$show_form_mode. ' opt: ';
|
||||||
// print_r( $defaul_opt);
|
// print_r( $defaul_opt);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<div class="row"> <div class="form-group">
|
<div class="row"> <div class="form-group">
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<label class="control-label" for="<?php echo $forminfo[1]['name'].$line_id; ?> "><?php echo _($forminfo[1]['label'].$line_id).(($line_id =="0")?' Default ':''); ?></label>
|
<label class="control-label" for="<?php echo $forminfo[1]['name'].$line_id; ?> "><?php echo _($forminfo[1]['label'].$line_id).(($line_id =="0")?' Default ':''); ?></label>
|
||||||
|
@ -154,41 +154,41 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
<div class="col-xs-3">
|
<div class="col-xs-3">
|
||||||
<!-- Line Type Select -->
|
<!-- Line Type Select -->
|
||||||
<select class="form-control buttontype" data-id="<?php echo $line_id;?>" name="<?php echo $forminfo[1]['name'].$line_id.'_type';?>" >
|
<select class="form-control buttontype" data-id="<?php echo $line_id;?>" name="<?php echo $forminfo[1]['name'].$line_id.'_type';?>" >
|
||||||
<?php
|
<?php
|
||||||
if ($line_id == 0) {
|
if ($line_id == 0) {
|
||||||
echo '<option value="line" selected >DEF LINE</option>';
|
echo '<option value="line" selected >DEF LINE</option>';
|
||||||
}else {
|
} else {
|
||||||
foreach ($buttons_type as $data){
|
foreach ($buttons_type as $data) {
|
||||||
$select = (($data == $defaul_tv)?"selected":"");
|
$select = (($data == $defaul_tv)?"selected":"");
|
||||||
echo '<option value="'.$data.'" '.$select.' >'.$data.'</option>';
|
echo '<option value="'.$data.'" '.$select.' >'.$data.'</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<!-- if Line Type = feature Show Futures -->
|
<!-- if Line Type = feature Show Futures -->
|
||||||
<div class="col-xs-7">
|
<div class="col-xs-7">
|
||||||
<select data-type="feature" class ="futuretype form-control lineid_<?php echo $line_id.(($show_form_mode=='feature')?'':' hidden');?>" data-id="<?php echo $line_id;?>" name="<?php echo $forminfo[1]['name'].$line_id.'_feature';?>" >
|
<select data-type="feature" class ="futuretype form-control lineid_<?php echo $line_id.(($show_form_mode=='feature')?'':' hidden');?>" data-id="<?php echo $line_id;?>" name="<?php echo $forminfo[1]['name'].$line_id.'_feature';?>" >
|
||||||
<?php
|
<?php
|
||||||
foreach ($feature_list as $fkey => $fval) {
|
foreach ($feature_list as $fkey => $fval) {
|
||||||
$select = (($fkey == $defaul_ftr)?"selected":"");
|
$select = (($fkey == $defaul_ftr)?"selected":"");
|
||||||
echo '<option value="'.$fkey.'" '.$select.' >'.$fval.'</option>';
|
echo '<option value="'.$fkey.'" '.$select.' >'.$fval.'</option>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
<!-- if Line Type = line Show SCCP Num -->
|
<!-- if Line Type = line Show SCCP Num -->
|
||||||
<select data-type='line' class ="form-control lineid_<?php echo $line_id.(($show_form_mode=='line' || $show_form_mode=='adv.line')?'':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_line';?>" >
|
<select data-type='line' class ="form-control lineid_<?php echo $line_id.(($show_form_mode=='line' || $show_form_mode=='adv.line')?'':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_line';?>" >
|
||||||
<?php
|
<?php
|
||||||
foreach ($lines_list as $data){
|
foreach ($lines_list as $data) {
|
||||||
$select = (($data['id']==$defaul_btn)?"selected":"");
|
$select = (($data['id']==$defaul_btn)?"selected":"");
|
||||||
echo '<option value="'.$data['id'].'" '.$select.' >'.$data['id'].' / '.$data['callerid'].'</option>';
|
echo '<option value="'.$data['id'].'" '.$select.' >'.$data['id'].' / '.$data['callerid'].'</option>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
<!-- if Line Type = Othe Show Input -->
|
<!-- if Line Type = Othe Show Input -->
|
||||||
<div data-type='speeddial' class="lineid_<?php echo $line_id.(($show_form_mode=='speeddial')? '':' hidden');?>" >
|
<div data-type='speeddial' class="lineid_<?php echo $line_id.(($show_form_mode=='speeddial')? '':' hidden');?>" >
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_input" name="'.$forminfo[1]['name'].$line_id.'_input" placeholder="Name" value="'.$db_buttons[$line_id]['name'].'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_input" name="'.$forminfo[1]['name'].$line_id.'_input" placeholder="Name" value="'.$db_buttons[$line_id]['name'].'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -197,34 +197,34 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<!-- if Line Type = speeddial Show Hint line -->
|
<!-- if Line Type = speeddial Show Hint line -->
|
||||||
<div data-type='hintline' class="lineid_<?php echo $line_id.(($show_form_mode=='speeddial')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
<div data-type='hintline' class="lineid_<?php echo $line_id.(($show_form_mode=='speeddial')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
||||||
<?php
|
<?php
|
||||||
echo '<div class="col-xs-5">';
|
echo '<div class="col-xs-5">';
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_phone" name="'.$forminfo[1]['name'].$line_id.'_phone" placeholder="Phone" value="'.$defaul_opt[0].'">';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_phone" name="'.$forminfo[1]['name'].$line_id.'_phone" placeholder="Phone" value="'.$defaul_opt[0].'">';
|
||||||
echo '</div><div class="col-xs-2 radioset" data-toggle="buttons">';
|
echo '</div><div class="col-xs-2 radioset" data-toggle="buttons">';
|
||||||
echo '<input class="form-control" type="checkbox" name="'.$forminfo[1]['name'].$line_id.'_hint" id="'.$forminfo[1]['name'].$line_id.'_hint" '.$def_hint.' value= "hint">';
|
echo '<input class="form-control" type="checkbox" name="'.$forminfo[1]['name'].$line_id.'_hint" id="'.$forminfo[1]['name'].$line_id.'_hint" '.$def_hint.' value= "hint">';
|
||||||
echo '<label for="'.$forminfo[1]['name'].$line_id.'_hint">hints</label>';
|
echo '<label for="'.$forminfo[1]['name'].$line_id.'_hint">hints</label>';
|
||||||
echo '</div><div class="col-xs-5">';
|
echo '</div><div class="col-xs-5">';
|
||||||
|
|
||||||
echo '<select class="form-control" name="'.$forminfo[1]['name'].$line_id.'_hline" >';
|
echo '<select class="form-control" name="'.$forminfo[1]['name'].$line_id.'_hline" >';
|
||||||
|
|
||||||
foreach ($hint_list as $data){
|
foreach ($hint_list as $data) {
|
||||||
$select = (($data['key']==$def_hint_btn)?"selected":"");
|
$select = (($data['key']==$def_hint_btn)?"selected":"");
|
||||||
echo '<option value="'.$data['key'].'" '.$select.' >'.$data['exten'].' / '.$data['label'].'</option>';
|
echo '<option value="'.$data['key'].'" '.$select.' >'.$data['exten'].' / '.$data['label'].'</option>';
|
||||||
}
|
}
|
||||||
echo '</select>';
|
echo '</select>';
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<!-- if Line Type = feature Show Futures Park -->
|
<!-- if Line Type = feature Show Futures Park -->
|
||||||
<div data-type='feature' class="lineid_<?php echo $line_id.(($show_form_mode=='feature')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
<div data-type='feature' class="lineid_<?php echo $line_id.(($show_form_mode=='feature')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
||||||
<div class="col-xs-5">
|
<div class="col-xs-5">
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_flabel" name="'.$forminfo[1]['name'].$line_id.'_flabel" placeholder="Display Label" value="'.$db_buttons[$line_id]['name'].'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_flabel" name="'.$forminfo[1]['name'].$line_id.'_flabel" placeholder="Display Label" value="'.$db_buttons[$line_id]['name'].'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-5">
|
<div class="col-xs-5">
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_fvalue" name="'.$forminfo[1]['name'].$line_id.'_fvalue" placeholder="code" value="'.$defaul_fcod.'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_fvalue" name="'.$forminfo[1]['name'].$line_id.'_fvalue" placeholder="code" value="'.$defaul_fcod.'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -232,13 +232,13 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
|
|
||||||
<div data-type='adv_line' class="lineid_<?php echo $line_id.(($show_form_mode=='adv.line')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
<div data-type='adv_line' class="lineid_<?php echo $line_id.(($show_form_mode=='adv.line')? '':' hidden');?>" name="<?php echo $forminfo[1]['name'].$line_id.'_hint';?>">
|
||||||
<div class="col-xs-5">
|
<div class="col-xs-5">
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_advline" name="'.$forminfo[1]['name'].$line_id.'_advline" placeholder="[+=][01]:[cidname]" value="'.$defaul_advline.'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_advline" name="'.$forminfo[1]['name'].$line_id.'_advline" placeholder="[+=][01]:[cidname]" value="'.$defaul_advline.'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-5">
|
<div class="col-xs-5">
|
||||||
<?php
|
<?php
|
||||||
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_advopt" name="'.$forminfo[1]['name'].$line_id.'_advopt" placeholder="ButtonLabel,Options" value="'.$db_buttons[$line_id]['options'].'" >';
|
echo '<input class="form-control" type="text" id="'.$forminfo[1]['name'].$line_id.'_advopt" name="'.$forminfo[1]['name'].$line_id.'_advopt" placeholder="ButtonLabel,Options" value="'.$db_buttons[$line_id]['options'].'" >';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -247,9 +247,9 @@ if (!empty($_REQUEST['ru_id'])) {
|
||||||
|
|
||||||
</div></div>
|
</div></div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- End button :'.$line_id.' -->';
|
echo '<!-- End button :'.$line_id.' -->';
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* IE - Text Input
|
* IE - Text Input
|
||||||
* IED - Text Input Dynamic
|
* IED - Text Input Dynamic
|
||||||
* ITED- Input Dynamic Table
|
* ITED- Input Dynamic Table
|
||||||
* IS - Radio box
|
* IS - Radio box
|
||||||
* SL - Select element
|
* SL - Select element
|
||||||
* SLA - Select element (from - data )
|
* SLA - Select element (from - data )
|
||||||
* Input element Select SLD - Date format
|
* Input element Select SLD - Date format
|
||||||
* SLZ - Time Zone
|
* SLZ - Time Zone
|
||||||
* SLTZN - Time Zone List
|
* SLTZN - Time Zone List
|
||||||
* SLT - TFTP Lang
|
* SLT - TFTP Lang
|
||||||
* SLM - Music on hold
|
* SLM - Music on hold
|
||||||
* SLK - System KeySet
|
* SLK - System KeySet
|
||||||
* * Input element Select SLS - System Language
|
* * Input element Select SLS - System Language
|
||||||
* Input element Select SDM - Model List
|
* Input element Select SDM - Model List
|
||||||
* SDE - Extension List
|
* SDE - Extension List
|
||||||
* Help elemen HLP - Help Element
|
* Help elemen HLP - Help Element
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$npref = $form_prefix.'_';
|
$npref = $form_prefix.'_';
|
||||||
$napref = $form_prefix.'-ar_';
|
$napref = $form_prefix.'-ar_';
|
||||||
if (empty($form_prefix)){
|
if (empty($form_prefix)) {
|
||||||
$npref = "sccp_";
|
$npref = "sccp_";
|
||||||
$napref ="sccp-ar_";
|
$napref ="sccp-ar_";
|
||||||
}
|
}
|
||||||
|
@ -60,11 +60,11 @@ if (\FreePBX::Modules()->checkStatus("soundlang")) {
|
||||||
$syslangs = array();
|
$syslangs = array();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (function_exists('music_list')){
|
if (function_exists('music_list')) {
|
||||||
$moh_list = music_list();
|
$moh_list = music_list();
|
||||||
// $cur = (isset($mohsilence) && $mohsilence != "" ? $mohsilence : 'default');
|
// $cur = (isset($mohsilence) && $mohsilence != "" ? $mohsilence : 'default');
|
||||||
}
|
}
|
||||||
if (!is_array($moh_list)){
|
if (!is_array($moh_list)) {
|
||||||
$moh_list = array('default');
|
$moh_list = array('default');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,40 +73,40 @@ if (!is_array($moh_list)){
|
||||||
$items = $itm -> children();
|
$items = $itm -> children();
|
||||||
|
|
||||||
if ($h_show==1) {
|
if ($h_show==1) {
|
||||||
$sec_class ='';
|
$sec_class ='';
|
||||||
if (!empty($items ->class)){
|
if (!empty($items ->class)) {
|
||||||
$sec_class = (string)$items ->class;
|
$sec_class = (string)$items ->class;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="section-title" data-for="<?php echo $npref.$itm['name'];?>">
|
<div class="section-title" data-for="<?php echo $npref.$itm['name'];?>">
|
||||||
<h3><i class="fa fa-minus"></i><?php echo _($items ->label) ?></h3>
|
<h3><i class="fa fa-minus"></i><?php echo _($items ->label) ?></h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="section <?php echo $sec_class;?>" data-id="<?php echo $npref.$itm['name'];?>">
|
<div class="section <?php echo $sec_class;?>" data-id="<?php echo $npref.$itm['name'];?>">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
foreach ($items as $child) {
|
foreach ($items as $child) {
|
||||||
if (empty($child->help)) {
|
if (empty($child->help)) {
|
||||||
$child->help = 'Help is not available.';
|
$child->help = 'Help is not available.';
|
||||||
$child->meta_help = '1';
|
$child->meta_help = '1';
|
||||||
}
|
}
|
||||||
// $child->meta_help = '1'; // Remove comments to see original help !
|
// $child->meta_help = '1'; // Remove comments to see original help !
|
||||||
|
|
||||||
if ($child['type'] == 'IE') {
|
if ($child['type'] == 'IE') {
|
||||||
$res_input = '';
|
$res_input = '';
|
||||||
$res_name = '';
|
$res_name = '';
|
||||||
$res_oid = (string)$child->input[0]->name;
|
$res_oid = (string)$child->input[0]->name;
|
||||||
$res_id = $npref.$res_oid;
|
$res_id = $npref.$res_oid;
|
||||||
if (!empty($metainfo[$res_oid])){
|
if (!empty($metainfo[$res_oid])) {
|
||||||
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
||||||
$child->help = $metainfo[$res_oid]['Description'];
|
$child->help = $metainfo[$res_oid]['Description'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Add Hiden option
|
// --- Add Hiden option
|
||||||
$res_sec_class ='';
|
$res_sec_class ='';
|
||||||
if (!empty($child ->class)){
|
if (!empty($child ->class)) {
|
||||||
$res_sec_class = (string)$child ->class;
|
$res_sec_class = (string)$child ->class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,38 +130,43 @@ foreach ($items as $child) {
|
||||||
foreach ($child->xpath('input') as $value) {
|
foreach ($child->xpath('input') as $value) {
|
||||||
$res_n = (string)$value->name;
|
$res_n = (string)$value->name;
|
||||||
$res_name = $npref . $res_n;
|
$res_name = $npref . $res_n;
|
||||||
if (empty($res_id)) {
|
if (empty($res_id)) {
|
||||||
$res_id = $res_name;
|
$res_id = $res_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($fvalues[$res_n])) {
|
if (!empty($fvalues[$res_n])) {
|
||||||
if (!empty($fvalues[$res_n]['data'])) {
|
if (!empty($fvalues[$res_n]['data'])) {
|
||||||
$value->value = $fvalues[$res_n]['data'];
|
$value->value = $fvalues[$res_n]['data'];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($value->value)) {
|
if (empty($value->value)) {
|
||||||
$value->value = $value->default;
|
$value->value = $value->default;
|
||||||
}
|
}
|
||||||
if (empty($value->type)) {
|
if (empty($value->type)) {
|
||||||
$value->type = 'text';
|
$value->type = 'text';
|
||||||
}
|
}
|
||||||
if (empty($value->class)) {
|
if (empty($value->class)) {
|
||||||
$value->class = 'form-control';
|
$value->class = 'form-control';
|
||||||
}
|
}
|
||||||
if ($i > 0) echo $child->nameseparator;
|
if ($i > 0) {
|
||||||
|
echo $child->nameseparator;
|
||||||
|
}
|
||||||
//
|
//
|
||||||
echo '<input type="' . $value->type . '" class="' . $value->class . '" id="' . $res_id . '" name="' . $res_name . '" value="' . $value->value.'"';
|
echo '<input type="' . $value->type . '" class="' . $value->class . '" id="' . $res_id . '" name="' . $res_name . '" value="' . $value->value.'"';
|
||||||
if (isset($value->options)){
|
if (isset($value->options)) {
|
||||||
foreach ($value->options ->attributes() as $optkey =>$optval){
|
foreach ($value->options ->attributes() as $optkey => $optval) {
|
||||||
echo ' '.$optkey.'="'.$optval.'"';
|
echo ' '.$optkey.'="'.$optval.'"';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($value->min)) echo ' min="'.$value->min.'"';
|
if (!empty($value->min)) {
|
||||||
if (!empty($value->max)) echo ' max="'.$value->max.'"';
|
echo ' min="'.$value->min.'"';
|
||||||
|
}
|
||||||
|
if (!empty($value->max)) {
|
||||||
|
echo ' max="'.$value->max.'"';
|
||||||
|
}
|
||||||
echo '>';
|
echo '>';
|
||||||
$i ++;
|
$i ++;
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
|
@ -173,7 +178,6 @@ foreach ($items as $child) {
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- END '.$child->label.' -->';
|
echo '<!-- END '.$child->label.' -->';
|
||||||
|
|
||||||
}
|
}
|
||||||
if ($child['type'] == 'IED') {
|
if ($child['type'] == 'IED') {
|
||||||
$res_input = '';
|
$res_input = '';
|
||||||
|
@ -182,7 +186,7 @@ foreach ($items as $child) {
|
||||||
$opt_at = array();
|
$opt_at = array();
|
||||||
$res_n = (string)$child->name;
|
$res_n = (string)$child->name;
|
||||||
|
|
||||||
if (!empty($metainfo[$res_n])){
|
if (!empty($metainfo[$res_n])) {
|
||||||
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
||||||
$child->help = $metainfo[$res_n]['Description'];
|
$child->help = $metainfo[$res_n]['Description'];
|
||||||
}
|
}
|
||||||
|
@ -208,7 +212,7 @@ foreach ($items as $child) {
|
||||||
|
|
||||||
echo '<!-- Begin '.$child->label.' -->';
|
echo '<!-- Begin '.$child->label.' -->';
|
||||||
?>
|
?>
|
||||||
<div class="element-container">
|
<div class="element-container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -219,16 +223,16 @@ foreach ($items as $child) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<?php
|
<?php
|
||||||
if (!empty($child->cbutton)) {
|
if (!empty($child->cbutton)) {
|
||||||
echo '<div class="form-group form-inline">';
|
echo '<div class="form-group form-inline">';
|
||||||
foreach ($child->xpath('cbutton') as $value) {
|
foreach ($child->xpath('cbutton') as $value) {
|
||||||
$res_n = $res_id.'[0]['.$value['field'].']';
|
$res_n = $res_id.'[0]['.$value['field'].']';
|
||||||
$res_vf = '';
|
$res_vf = '';
|
||||||
if ($value['value']=='NONE' && empty($res_value)){
|
if ($value['value']=='NONE' && empty($res_value)) {
|
||||||
$res_vf = 'active';
|
$res_vf = 'active';
|
||||||
}
|
}
|
||||||
$ch_key = array_search($value['value'],$res_value);
|
$ch_key = array_search($value['value'], $res_value);
|
||||||
if ($ch_key !== false) {
|
if ($ch_key !== false) {
|
||||||
unset($res_value[$ch_key]);
|
unset($res_value[$ch_key]);
|
||||||
$res_vf = 'active';
|
$res_vf = 'active';
|
||||||
|
@ -236,23 +240,23 @@ foreach ($items as $child) {
|
||||||
}
|
}
|
||||||
$opt_hide ='';
|
$opt_hide ='';
|
||||||
$opt_class="button-checkbox";
|
$opt_class="button-checkbox";
|
||||||
if (!empty($value->option_hide)) {
|
if (!empty($value->option_hide)) {
|
||||||
$opt_class .= " sccp_button_hide";
|
$opt_class .= " sccp_button_hide";
|
||||||
$opt_hide = ' data-vhide="'.$value->option_hide.'" data-btn="checkbox" data-clhide="'.$value->option_hide['class'].'" ';
|
$opt_hide = ' data-vhide="'.$value->option_hide.'" data-btn="checkbox" data-clhide="'.$value->option_hide['class'].'" ';
|
||||||
}
|
}
|
||||||
if (!empty($child->option_show)) {
|
if (!empty($child->option_show)) {
|
||||||
if (empty($opt_hide)) {
|
if (empty($opt_hide)) {
|
||||||
$opt_hide =' class="sccp_button_hide" ';
|
$opt_hide =' class="sccp_button_hide" ';
|
||||||
}
|
}
|
||||||
$opt_hide .= ' data-vshow="'.$child->option_show.'" data-clshow="'.$child->option_show['class'].'" ';
|
$opt_hide .= ' data-vshow="'.$child->option_show.'" data-clshow="'.$child->option_show['class'].'" ';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($value->option_disabled)) {
|
if (!empty($value->option_disabled)) {
|
||||||
$opt_class .= " sccp_button_disabled";
|
$opt_class .= " sccp_button_disabled";
|
||||||
$opt_hide = ' data-vhide="'.$value->option_disabled.'" data-btn="checkbox" data-clhide="'.$value->option_disabled['class'].'" ';
|
$opt_hide = ' data-vhide="'.$value->option_disabled.'" data-btn="checkbox" data-clhide="'.$value->option_disabled['class'].'" ';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($value->class)) {
|
if (!empty($value->class)) {
|
||||||
$opt_class .= " ".(string)$value->class;
|
$opt_class .= " ".(string)$value->class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,52 +267,51 @@ foreach ($items as $child) {
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
$opt_class = "col-sm-7 ".$res_id."-gr";
|
$opt_class = "col-sm-7 ".$res_id."-gr";
|
||||||
if (!empty($child->class)) {
|
if (!empty($child->class)) {
|
||||||
$opt_class .= " ".(string)$child->class;
|
$opt_class .= " ".(string)$child->class;
|
||||||
}
|
}
|
||||||
echo '<div class = "'.$opt_class.'">';
|
echo '<div class = "'.$opt_class.'">';
|
||||||
|
|
||||||
foreach ($res_value as $dat_v) {
|
foreach ($res_value as $dat_v) {
|
||||||
?>
|
?>
|
||||||
<div class = "<?php echo $res_id;?> form-group form-inline" data-nextid=<?php echo $i+1;?> >
|
<div class = "<?php echo $res_id;?> form-group form-inline" data-nextid=<?php echo $i+1;?> >
|
||||||
<?php
|
<?php
|
||||||
$res_vf = explode('/', $dat_v);
|
$res_vf = explode('/', $dat_v);
|
||||||
$i2 = 0;
|
$i2 = 0;
|
||||||
foreach ($child->xpath('input') as $value) {
|
foreach ($child->xpath('input') as $value) {
|
||||||
$res_n = $res_id.'['.$i.']['.$value['field'].']';
|
$res_n = $res_id.'['.$i.']['.$value['field'].']';
|
||||||
$fields_id = (string)$value['field'];
|
$fields_id = (string)$value['field'];
|
||||||
$opt_at[$fields_id]['nameseparator']=(string)$value['nameseparator'];
|
$opt_at[$fields_id]['nameseparator']=(string)$value['nameseparator'];
|
||||||
if (!empty($value->class)) {
|
if (!empty($value->class)) {
|
||||||
$opt_at[$fields_id]['class']='form-control ' .(string)$value->class;
|
$opt_at[$fields_id]['class']='form-control ' .(string)$value->class;
|
||||||
}
|
|
||||||
$opt_at[$fields_id]['nameseparator']=(string)$value['nameseparator'];
|
|
||||||
|
|
||||||
echo '<input type="text" name="'. $res_n.'" class="'.$opt_at[$fields_id]['class'].'" value="'.$res_vf[$i2].'"';
|
|
||||||
if (isset($value->options)){
|
|
||||||
foreach ($value->options ->attributes() as $optkey =>$optval){
|
|
||||||
$opt_at[$fields_id]['options'][$optkey]=(string)$optval;
|
|
||||||
echo ' '.$optkey.'="'.$optval.'"';
|
|
||||||
}
|
}
|
||||||
|
$opt_at[$fields_id]['nameseparator']=(string)$value['nameseparator'];
|
||||||
|
|
||||||
|
echo '<input type="text" name="'. $res_n.'" class="'.$opt_at[$fields_id]['class'].'" value="'.$res_vf[$i2].'"';
|
||||||
|
if (isset($value->options)) {
|
||||||
|
foreach ($value->options ->attributes() as $optkey => $optval) {
|
||||||
|
$opt_at[$fields_id]['options'][$optkey]=(string)$optval;
|
||||||
|
echo ' '.$optkey.'="'.$optval.'"';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '> '.(string)$value['nameseparator'].' ';
|
||||||
|
$i2 ++;
|
||||||
}
|
}
|
||||||
echo '> '.(string)$value['nameseparator'].' ';
|
if (!empty($child->add_pluss)) {
|
||||||
$i2 ++;
|
echo '<button type="button" class="btn btn-primary btn-lg input-js-add" id="'.$res_id.'-btn" data-id="'.$res_id.'" data-for="'.$res_id.'" data-max="'.$max_row.'"data-json="'.bin2hex(json_encode($opt_at)).'"><i class="fa fa-plus pull-right"></i></button>';
|
||||||
|
}
|
||||||
}
|
echo '</div>';
|
||||||
if (!empty($child->add_pluss)) {
|
$i++;
|
||||||
echo '<button type="button" class="btn btn-primary btn-lg input-js-add" id="'.$res_id.'-btn" data-id="'.$res_id.'" data-for="'.$res_id.'" data-max="'.$max_row.'"data-json="'.bin2hex(json_encode($opt_at)).'"><i class="fa fa-plus pull-right"></i></button>';
|
|
||||||
}
|
|
||||||
echo '</div>';
|
|
||||||
$i++;
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
if (!empty($child->addbutton)) {
|
if (!empty($child->addbutton)) {
|
||||||
echo '<div class = "col-sm-5 '.$res_id.'-gr">';
|
echo '<div class = "col-sm-5 '.$res_id.'-gr">';
|
||||||
echo '<input type="button" id="'.$res_id.'-btn" data-id="'.$res_id.'" data-for="'.$res_id.'" data-max="'.$max_row.'"data-json="'.bin2hex(json_encode($opt_at)).'" class="input-js-add" value="'._($child->addbutton).'" />';
|
echo '<input type="button" id="'.$res_id.'-btn" data-id="'.$res_id.'" data-for="'.$res_id.'" data-max="'.$max_row.'"data-json="'.bin2hex(json_encode($opt_at)).'" class="input-js-add" value="'._($child->addbutton).'" />';
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -318,24 +321,23 @@ foreach ($items as $child) {
|
||||||
<div class="row"><div class="col-md-12">
|
<div class="row"><div class="col-md-12">
|
||||||
<span id="<?php echo $res_id;?>-help" class="help-block fpbx-help-block"><?php echo _($child->help);?></span>
|
<span id="<?php echo $res_id;?>-help" class="help-block fpbx-help-block"><?php echo _($child->help);?></span>
|
||||||
</div></div>
|
</div></div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- END '.$child->label.' -->';
|
echo '<!-- END '.$child->label.' -->';
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($child['type'] == 'IS') {
|
if ($child['type'] == 'IS') {
|
||||||
$res_n = (string)$child->name;
|
$res_n = (string)$child->name;
|
||||||
$res_id = $npref.$child->name;
|
$res_id = $npref.$child->name;
|
||||||
if (!empty($metainfo[$res_n])){
|
if (!empty($metainfo[$res_n])) {
|
||||||
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
||||||
$child->help = $metainfo[$res_n]['Description'];
|
$child->help = $metainfo[$res_n]['Description'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Add Hiden option
|
// --- Add Hiden option
|
||||||
$res_sec_class ='';
|
$res_sec_class ='';
|
||||||
if (!empty($child ->class)){
|
if (!empty($child ->class)) {
|
||||||
$res_sec_class = (string)$child ->class;
|
$res_sec_class = (string)$child ->class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,31 +354,31 @@ foreach ($items as $child) {
|
||||||
$i = 0;
|
$i = 0;
|
||||||
// $res_v = 'no';
|
// $res_v = 'no';
|
||||||
$opt_hide = '';
|
$opt_hide = '';
|
||||||
if (empty($child->default)) {
|
if (empty($child->default)) {
|
||||||
$res_v = 'no';
|
$res_v = 'no';
|
||||||
} else {
|
} else {
|
||||||
$res_v = (string)$child->default;
|
$res_v = (string)$child->default;
|
||||||
}
|
}
|
||||||
if (!empty($child->value)) {
|
if (!empty($child->value)) {
|
||||||
$res_v = (string)$child->value;
|
$res_v = (string)$child->value;
|
||||||
}
|
}
|
||||||
if (!empty($fvalues[$res_n])) {
|
if (!empty($fvalues[$res_n])) {
|
||||||
if (!empty($fvalues[$res_n]['data'])) {
|
if (!empty($fvalues[$res_n]['data'])) {
|
||||||
$res_v = (string)$fvalues[$res_n]['data'];
|
$res_v = (string)$fvalues[$res_n]['data'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($child->option_hide)) {
|
if (!empty($child->option_hide)) {
|
||||||
$opt_hide = ' class="sccp_button_hide" data-vhide="'.$child->option_hide.'" data-clhide="'.$child->option_hide['class'].'" ';
|
$opt_hide = ' class="sccp_button_hide" data-vhide="'.$child->option_hide.'" data-clhide="'.$child->option_hide['class'].'" ';
|
||||||
}
|
}
|
||||||
if (!empty($child->option_show)) {
|
if (!empty($child->option_show)) {
|
||||||
if (empty($opt_hide)) {
|
if (empty($opt_hide)) {
|
||||||
$opt_hide =' class="sccp_button_hide" ';
|
$opt_hide =' class="sccp_button_hide" ';
|
||||||
}
|
}
|
||||||
$opt_hide .= ' data-vshow="'.$child->option_show.'" data-clshow="'.$child->option_show['class'].'" ';
|
$opt_hide .= ' data-vshow="'.$child->option_show.'" data-clshow="'.$child->option_show['class'].'" ';
|
||||||
}
|
}
|
||||||
foreach ($child->xpath('button') as $value) {
|
foreach ($child->xpath('button') as $value) {
|
||||||
$val_check = (string)$value[@value];
|
$val_check = (string)$value[@value];
|
||||||
if ($val_check == '' || $val_check == 'NONE' || $val_check == 'none' ) {
|
if ($val_check == '' || $val_check == 'NONE' || $val_check == 'none') {
|
||||||
$val_check = (((string)$value[@value] == $res_v) ? " checked" : "");
|
$val_check = (((string)$value[@value] == $res_v) ? " checked" : "");
|
||||||
} else {
|
} else {
|
||||||
$val_check = (strtolower((string)$value[@value]) == strtolower($res_v) ? " checked" : "");
|
$val_check = (strtolower((string)$value[@value]) == strtolower($res_v) ? " checked" : "");
|
||||||
|
@ -384,7 +386,7 @@ foreach ($items as $child) {
|
||||||
echo '<input type="radio" name="' . $res_id . '" id="' . $res_id. '_' . $i .'" value="' . $value[@value] . '"' . $val_check . $opt_hide.'>';
|
echo '<input type="radio" name="' . $res_id . '" id="' . $res_id. '_' . $i .'" value="' . $value[@value] . '"' . $val_check . $opt_hide.'>';
|
||||||
echo '<label for="' . $res_id. '_' . $i . '">' . _($value) . '</label>';
|
echo '<label for="' . $res_id. '_' . $i . '">' . _($value) . '</label>';
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div></div>
|
</div></div>
|
||||||
|
@ -395,30 +397,29 @@ foreach ($items as $child) {
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- END '.$child->label.' -->';
|
echo '<!-- END '.$child->label.' -->';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Input element Select SLD - Date format
|
* Input element Select SLD - Date format
|
||||||
* SLZ - Time Zone
|
* SLZ - Time Zone
|
||||||
*
|
*
|
||||||
* SLM - Music on hold
|
* SLM - Music on hold
|
||||||
* SLK - System KeySet
|
* SLK - System KeySet
|
||||||
* SLP - Dial Paterns
|
* SLP - Dial Paterns
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($child['type'] == 'SLD' || $child['type'] == 'SLM'|| $child['type'] == 'SLK'|| $child['type'] == 'SLP' ) {
|
if ($child['type'] == 'SLD' || $child['type'] == 'SLM'|| $child['type'] == 'SLK'|| $child['type'] == 'SLP') {
|
||||||
// $value = $child -> select;
|
// $value = $child -> select;
|
||||||
$res_n = (string)$child ->name;
|
$res_n = (string)$child ->name;
|
||||||
$res_id = $npref.$res_n;
|
$res_id = $npref.$res_n;
|
||||||
if (!empty($metainfo[$res_n])){
|
if (!empty($metainfo[$res_n])) {
|
||||||
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
||||||
$child->help = $metainfo[$res_n]['Description'];
|
$child->help = $metainfo[$res_n]['Description'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($child->class)) {
|
if (empty($child->class)) {
|
||||||
$child->class = 'form-control';
|
$child->class = 'form-control';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($child['type'] == 'SLD') {
|
if ($child['type'] == 'SLD') {
|
||||||
|
@ -436,9 +437,9 @@ foreach ($items as $child) {
|
||||||
}
|
}
|
||||||
if ($child['type'] == 'SLP') {
|
if ($child['type'] == 'SLP') {
|
||||||
if (empty($dialplan_list)) {
|
if (empty($dialplan_list)) {
|
||||||
foreach (\FreePBX::Sccp_manager()->get_DialPlanList() as $tmpkey) {
|
foreach (\FreePBX::Sccp_manager()->getDialPlanList() as $tmpkey) {
|
||||||
$tmp_id = $tmpkey['id'];
|
$tmp_id = $tmpkey['id'];
|
||||||
$dialplan_list[$tmp_id] = $tmp_id;
|
$dialplan_list[$tmp_id] = $tmp_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$select_opt= $dialplan_list;
|
$select_opt= $dialplan_list;
|
||||||
|
@ -459,19 +460,19 @@ foreach ($items as $child) {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9"><div class = "lnet form-group form-inline" data-nextid=1> <?php
|
<div class="col-md-9"><div class = "lnet form-group form-inline" data-nextid=1> <?php
|
||||||
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '">';
|
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '">';
|
||||||
if (!empty($fvalues[$res_n])) {
|
if (!empty($fvalues[$res_n])) {
|
||||||
if (!empty($fvalues[$res_n]['data'])) {
|
if (!empty($fvalues[$res_n]['data'])) {
|
||||||
$child->value = $fvalues[$res_n]['data'];
|
$child->value = $fvalues[$res_n]['data'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach ($select_opt as $key) {
|
foreach ($select_opt as $key) {
|
||||||
echo '<option value="' . $key . '"';
|
echo '<option value="' . $key . '"';
|
||||||
if ($key == $child->value) {
|
if ($key == $child->value) {
|
||||||
echo ' selected="selected"';
|
echo ' selected="selected"';
|
||||||
}
|
}
|
||||||
echo '>' . $key . '</option>';
|
echo '>' . $key . '</option>';
|
||||||
}
|
}
|
||||||
?> </select>
|
?> </select>
|
||||||
</div></div>
|
</div></div>
|
||||||
</div></div>
|
</div></div>
|
||||||
<div class="row"><div class="col-md-12">
|
<div class="row"><div class="col-md-12">
|
||||||
|
@ -480,19 +481,18 @@ foreach ($items as $child) {
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- END '.$child->label.' -->';
|
echo '<!-- END '.$child->label.' -->';
|
||||||
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Input element Select SLS - System Language
|
* Input element Select SLS - System Language
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($child['type'] == 'SLS' || $child['type'] == 'SLT' || $child['type'] == 'SLA' || $child['type'] == 'SLZ') {
|
if ($child['type'] == 'SLS' || $child['type'] == 'SLT' || $child['type'] == 'SLA' || $child['type'] == 'SLZ') {
|
||||||
// $value = $child -> select;
|
// $value = $child -> select;
|
||||||
$res_n = (string)$child ->name;
|
$res_n = (string)$child ->name;
|
||||||
$res_id = $npref.$res_n;
|
$res_id = $npref.$res_n;
|
||||||
$child->value ='';
|
$child->value ='';
|
||||||
|
|
||||||
if (!empty($metainfo[$res_n])){
|
if (!empty($metainfo[$res_n])) {
|
||||||
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
||||||
$child->help = $metainfo[$res_n]['Description'];
|
$child->help = $metainfo[$res_n]['Description'];
|
||||||
}
|
}
|
||||||
|
@ -525,7 +525,7 @@ foreach ($items as $child) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($child->class)) {
|
if (empty($child->class)) {
|
||||||
$child->class = 'form-control';
|
$child->class = 'form-control';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($fvalues[$res_n])) {
|
if (!empty($fvalues[$res_n])) {
|
||||||
|
@ -534,8 +534,8 @@ foreach ($items as $child) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($child->value)){
|
if (empty($child->value)) {
|
||||||
if (!empty($child->default)){
|
if (!empty($child->default)) {
|
||||||
$child->value = $child->default;
|
$child->value = $child->default;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -551,21 +551,21 @@ foreach ($items as $child) {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9"> <!-- <div class = "lnet form-group form-inline" data-nextid=1> --> <?php
|
<div class="col-md-9"> <!-- <div class = "lnet form-group form-inline" data-nextid=1> --> <?php
|
||||||
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '">';
|
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '">';
|
||||||
foreach ($select_opt as $key => $val) {
|
foreach ($select_opt as $key => $val) {
|
||||||
if (is_array($val)) {
|
if (is_array($val)) {
|
||||||
$opt_key = (isset($val['id'])) ? $val['id'] : $key;
|
$opt_key = (isset($val['id'])) ? $val['id'] : $key;
|
||||||
$opt_val = (isset($val['val'])) ? $val['val'] : $val;
|
$opt_val = (isset($val['val'])) ? $val['val'] : $val;
|
||||||
} else {
|
} else {
|
||||||
$opt_key = $key;
|
$opt_key = $key;
|
||||||
$opt_val = $val;
|
$opt_val = $val;
|
||||||
}
|
}
|
||||||
echo '<option value="' . $opt_key . '"';
|
echo '<option value="' . $opt_key . '"';
|
||||||
if ($opt_key == $child->value) {
|
if ($opt_key == $child->value) {
|
||||||
echo ' selected="selected"';
|
echo ' selected="selected"';
|
||||||
}
|
}
|
||||||
echo '>' . $opt_val. '</option>';
|
echo '>' . $opt_val. '</option>';
|
||||||
}
|
}
|
||||||
?> </select>
|
?> </select>
|
||||||
<!-- </div> --> </div>
|
<!-- </div> --> </div>
|
||||||
</div></div>
|
</div></div>
|
||||||
<div class="row"><div class="col-md-12">
|
<div class="row"><div class="col-md-12">
|
||||||
|
@ -575,24 +575,23 @@ foreach ($items as $child) {
|
||||||
<!--END System Language-->
|
<!--END System Language-->
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- END '.$child->label.' -->';
|
echo '<!-- END '.$child->label.' -->';
|
||||||
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Input element Select
|
* Input element Select
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($child['type'] == 'SL') {
|
if ($child['type'] == 'SL') {
|
||||||
$res_n = (string)$child->name;
|
$res_n = (string)$child->name;
|
||||||
$res_id = $npref.$child->name;
|
$res_id = $npref.$child->name;
|
||||||
|
|
||||||
if (!empty($metainfo[$res_n])){
|
if (!empty($metainfo[$res_n])) {
|
||||||
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
||||||
$child->help = $metainfo[$res_n]['Description'];
|
$child->help = $metainfo[$res_n]['Description'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($child ->class)) {
|
if (empty($child ->class)) {
|
||||||
$child->class = 'form-control';
|
$child->class = 'form-control';
|
||||||
}
|
}
|
||||||
echo '<!-- Begin '.$child->label.' -->';
|
echo '<!-- Begin '.$child->label.' -->';
|
||||||
|
|
||||||
|
@ -606,24 +605,24 @@ foreach ($items as $child) {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9"> <div class = "lnet form-group form-inline" data-nextid=1> <?php
|
<div class="col-md-9"> <div class = "lnet form-group form-inline" data-nextid=1> <?php
|
||||||
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '">';
|
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '">';
|
||||||
if (!empty($fvalues[$res_n])) {
|
if (!empty($fvalues[$res_n])) {
|
||||||
if (!empty($fvalues[$res_n]['data'])) {
|
if (!empty($fvalues[$res_n]['data'])) {
|
||||||
$child->value = $fvalues[$res_n]['data'];
|
$child->value = $fvalues[$res_n]['data'];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
foreach ($child->xpath('select') as $value) {
|
}
|
||||||
if (!empty($value[@value])) {
|
foreach ($child->xpath('select') as $value) {
|
||||||
|
if (!empty($value[@value])) {
|
||||||
$key = $value[@value];
|
$key = $value[@value];
|
||||||
} else {
|
} else {
|
||||||
$key = (string)$value;
|
$key = (string)$value;
|
||||||
}
|
|
||||||
echo '<option value="' . $key . '"';
|
|
||||||
if (strtolower((string)$key) == strtolower((string)$child->value)) {
|
|
||||||
echo ' selected="selected"';
|
|
||||||
}
|
|
||||||
echo '>' . (string)$value. '</option>';
|
|
||||||
}
|
}
|
||||||
?> </select>
|
echo '<option value="' . $key . '"';
|
||||||
|
if (strtolower((string)$key) == strtolower((string)$child->value)) {
|
||||||
|
echo ' selected="selected"';
|
||||||
|
}
|
||||||
|
echo '>' . (string)$value. '</option>';
|
||||||
|
}
|
||||||
|
?> </select>
|
||||||
|
|
||||||
</div> </div>
|
</div> </div>
|
||||||
</div></div>
|
</div></div>
|
||||||
|
@ -636,43 +635,43 @@ foreach ($items as $child) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Input element Select SDM - Model List
|
* Input element Select SDM - Model List
|
||||||
* SDMS - Sip model List
|
* SDMS - Sip model List
|
||||||
* SDE - Extension List
|
* SDE - Extension List
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($child['type'] == 'SDM' || $child['type'] == 'SDMS' || $child['type'] == 'SDE' || $child['type'] == 'SDD') {
|
if ($child['type'] == 'SDM' || $child['type'] == 'SDMS' || $child['type'] == 'SDE' || $child['type'] == 'SDD') {
|
||||||
// $value = $child -> select;
|
// $value = $child -> select;
|
||||||
$res_n = (string)$child ->name;
|
$res_n = (string)$child ->name;
|
||||||
$res_id = $npref.$res_n;
|
$res_id = $npref.$res_n;
|
||||||
|
|
||||||
if (!empty($metainfo[$res_n])){
|
if (!empty($metainfo[$res_n])) {
|
||||||
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
||||||
$child->help = $metainfo[$res_n]['Description'];
|
$child->help = $metainfo[$res_n]['Description'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($child->class)) {
|
if (empty($child->class)) {
|
||||||
$child->class = 'form-control';
|
$child->class = 'form-control';
|
||||||
}
|
}
|
||||||
if ($child['type'] == 'SDM') {
|
if ($child['type'] == 'SDM') {
|
||||||
if (empty($model_list)) {
|
if (empty($model_list)) {
|
||||||
$model_list = \FreePBX::Sccp_manager()->dbinterface->get_db_SccpTableData("HWDevice");
|
$model_list = \FreePBX::Sccp_manager()->dbinterface->get_db_SccpTableData("HWDevice");
|
||||||
}
|
}
|
||||||
$select_opt= $model_list;
|
$select_opt= $model_list;
|
||||||
}
|
}
|
||||||
if ($child['type'] == 'SDMS') {
|
if ($child['type'] == 'SDMS') {
|
||||||
if (empty($model_list)) {
|
if (empty($model_list)) {
|
||||||
$model_list = \FreePBX::Sccp_manager()->dbinterface->get_db_SccpTableData("HWSipDevice");
|
$model_list = \FreePBX::Sccp_manager()->dbinterface->get_db_SccpTableData("HWSipDevice");
|
||||||
}
|
}
|
||||||
$select_opt= $model_list;
|
$select_opt= $model_list;
|
||||||
}
|
}
|
||||||
if ($child['type'] == 'SDE') {
|
if ($child['type'] == 'SDE') {
|
||||||
if (empty($extension_list)) {
|
if (empty($extension_list)) {
|
||||||
$extension_list = \FreePBX::Sccp_manager()->dbinterface->get_db_SccpTableData("HWextension");
|
$extension_list = \FreePBX::Sccp_manager()->dbinterface->get_db_SccpTableData("HWextension");
|
||||||
$extension_list[]=array(model=>'NONE', vendor=>'CISCO', dns=>'0');
|
$extension_list[]=array(model=>'NONE', vendor=>'CISCO', dns=>'0');
|
||||||
}
|
}
|
||||||
$select_opt= $extension_list;
|
$select_opt= $extension_list;
|
||||||
}
|
}
|
||||||
if ($child['type'] == 'SDD') {
|
if ($child['type'] == 'SDD') {
|
||||||
if (empty($device_list)) {
|
if (empty($device_list)) {
|
||||||
|
@ -694,11 +693,11 @@ foreach ($items as $child) {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9"><div class = "lnet form-group form-inline" data-nextid=1> <?php
|
<div class="col-md-9"><div class = "lnet form-group form-inline" data-nextid=1> <?php
|
||||||
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '"';
|
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '"';
|
||||||
if (isset($child->options)){
|
if (isset($child->options)) {
|
||||||
foreach ($child->options->attributes() as $optkey =>$optval){
|
foreach ($child->options->attributes() as $optkey => $optval) {
|
||||||
echo ' '.$optkey.'="'.$optval.'"';
|
echo ' '.$optkey.'="'.$optval.'"';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo '>';
|
echo '>';
|
||||||
|
|
||||||
$fld = (string)$child->select['name'];
|
$fld = (string)$child->select['name'];
|
||||||
|
@ -707,32 +706,32 @@ foreach ($items as $child) {
|
||||||
$flk = (string)$child->select['dataid'];
|
$flk = (string)$child->select['dataid'];
|
||||||
$flkv = (string)$child->select['dataval'];
|
$flkv = (string)$child->select['dataval'];
|
||||||
$key = (string)$child->default;
|
$key = (string)$child->default;
|
||||||
if (!empty($fvalues[$res_n])) {
|
if (!empty($fvalues[$res_n])) {
|
||||||
if (!empty($fvalues[$res_n]['data'])) {
|
if (!empty($fvalues[$res_n]['data'])) {
|
||||||
$child->value = $fvalues[$res_n]['data'];
|
$child->value = $fvalues[$res_n]['data'];
|
||||||
$key = $fvalues[$res_n]['data'];
|
$key = $fvalues[$res_n]['data'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($select_opt as $data) {
|
foreach ($select_opt as $data) {
|
||||||
echo '<option value="' . $data[$fld] . '"';
|
echo '<option value="' . $data[$fld] . '"';
|
||||||
if ($key == $data[$fld]) {
|
if ($key == $data[$fld]) {
|
||||||
echo ' selected="selected"';
|
echo ' selected="selected"';
|
||||||
}
|
}
|
||||||
if (!empty($flk)){
|
if (!empty($flk)) {
|
||||||
echo ' data-id="'.$data[$flk].'"';
|
echo ' data-id="'.$data[$flk].'"';
|
||||||
}
|
}
|
||||||
if (!empty($flkv)){
|
if (!empty($flkv)) {
|
||||||
echo ' data-val="'.$data[$flkv].'"';
|
echo ' data-val="'.$data[$flkv].'"';
|
||||||
}
|
}
|
||||||
echo '>' . $data[$flv];
|
echo '>' . $data[$flv];
|
||||||
if (!empty($flv2)){
|
if (!empty($flv2)) {
|
||||||
echo ' / '.$data[$flv2];
|
echo ' / '.$data[$flv2];
|
||||||
}
|
}
|
||||||
echo '</option>';
|
echo '</option>';
|
||||||
}
|
}
|
||||||
|
|
||||||
?> </select>
|
?> </select>
|
||||||
</div></div>
|
</div></div>
|
||||||
</div></div>
|
</div></div>
|
||||||
<div class="row"><div class="col-md-12">
|
<div class="row"><div class="col-md-12">
|
||||||
|
@ -741,9 +740,8 @@ foreach ($items as $child) {
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- END '.$child->label.' -->';
|
echo '<!-- END '.$child->label.' -->';
|
||||||
|
|
||||||
}
|
}
|
||||||
if ($child['type'] == 'ITED') {
|
if ($child['type'] == 'ITED') {
|
||||||
$res_input = '';
|
$res_input = '';
|
||||||
$res_name = '';
|
$res_name = '';
|
||||||
$res_na = (string)$child->name;
|
$res_na = (string)$child->name;
|
||||||
|
@ -787,11 +785,11 @@ foreach ($items as $child) {
|
||||||
|
|
||||||
if (empty($value->options->class)) {
|
if (empty($value->options->class)) {
|
||||||
$opt_at[$fields_id]['options']['class']='form-control';
|
$opt_at[$fields_id]['options']['class']='form-control';
|
||||||
}
|
}
|
||||||
$opt_at[$fields_id]['type']=(string)$value['type'];
|
$opt_at[$fields_id]['type']=(string)$value['type'];
|
||||||
$res_opt['addon'] ='';
|
$res_opt['addon'] ='';
|
||||||
if (isset($value->options)){
|
if (isset($value->options)) {
|
||||||
foreach ($value->options ->attributes() as $optkey =>$optval){
|
foreach ($value->options ->attributes() as $optkey => $optval) {
|
||||||
$opt_at[$fields_id]['options'][$optkey]=(string)$optval;
|
$opt_at[$fields_id]['options'][$optkey]=(string)$optval;
|
||||||
$res_opt['addon'] .=' '.$optkey.'="'.$optval.'"';
|
$res_opt['addon'] .=' '.$optkey.'="'.$optval.'"';
|
||||||
}
|
}
|
||||||
|
@ -800,7 +798,7 @@ foreach ($items as $child) {
|
||||||
echo '<td class="">';
|
echo '<td class="">';
|
||||||
$res_opt['inp_st'] = '<div class="input-group"> <span class="input-group-addon" id="basep_'.$res_n.'">'.$opt_at[$fields_id]['display_prefix'].'</span>';
|
$res_opt['inp_st'] = '<div class="input-group"> <span class="input-group-addon" id="basep_'.$res_n.'">'.$opt_at[$fields_id]['display_prefix'].'</span>';
|
||||||
$res_opt['inp_end'] = '<span class="input-group-addon" id="bases_'.$res_n.'">'.$opt_at[$fields_id]['display_sufix'].'</span></div>';
|
$res_opt['inp_end'] = '<span class="input-group-addon" id="bases_'.$res_n.'">'.$opt_at[$fields_id]['display_sufix'].'</span></div>';
|
||||||
switch ($value['type']){
|
switch ($value['type']) {
|
||||||
case 'date':
|
case 'date':
|
||||||
echo $res_opt['inp_st'].'<input type="date" name="'. $res_n.'" value="'.$res_vf[$i2].'"'.$res_opt['addon']. '>'.$res_opt['inp_end'];
|
echo $res_opt['inp_st'].'<input type="date" name="'. $res_n.'" value="'.$res_vf[$i2].'"'.$res_opt['addon']. '>'.$res_opt['inp_end'];
|
||||||
break;
|
break;
|
||||||
|
@ -811,7 +809,7 @@ foreach ($items as $child) {
|
||||||
echo $res_opt['inp_st'].'<input type="text" name="'. $res_n.'" value="'.$res_vf[$i2].'"'.$res_opt['addon']. '>'.$res_opt['inp_end'];
|
echo $res_opt['inp_st'].'<input type="text" name="'. $res_n.'" value="'.$res_vf[$i2].'"'.$res_opt['addon']. '>'.$res_opt['inp_end'];
|
||||||
break;
|
break;
|
||||||
case 'title':
|
case 'title':
|
||||||
if ($i > 0 ) {
|
if ($i > 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'label':
|
case 'label':
|
||||||
|
@ -821,7 +819,7 @@ foreach ($items as $child) {
|
||||||
case 'select':
|
case 'select':
|
||||||
echo $res_opt['inp_st'].'<select name="'.$res_n.'" id="' . $res_n . '"'. $res_opt['addon'].'>';
|
echo $res_opt['inp_st'].'<select name="'.$res_n.'" id="' . $res_n . '"'. $res_opt['addon'].'>';
|
||||||
$opt_at[$fields_id]['data']='';
|
$opt_at[$fields_id]['data']='';
|
||||||
foreach ($value->xpath('data') as $optselect ){
|
foreach ($value->xpath('data') as $optselect) {
|
||||||
$opt_at[$fields_id]['data'].= (string)$optselect.';';
|
$opt_at[$fields_id]['data'].= (string)$optselect.';';
|
||||||
echo '<option value="' . $optselect. '"';
|
echo '<option value="' . $optselect. '"';
|
||||||
if (strtolower((string)$optselect) == strtolower((string)$res_vf[$i2])) {
|
if (strtolower((string)$optselect) == strtolower((string)$res_vf[$i2])) {
|
||||||
|
@ -832,28 +830,26 @@ foreach ($items as $child) {
|
||||||
echo '</select>'.$res_opt['inp_end'];
|
echo '</select>'.$res_opt['inp_end'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
echo '</td>';
|
echo '</td>';
|
||||||
$i2 ++;
|
$i2 ++;
|
||||||
|
|
||||||
}
|
}
|
||||||
echo '<td><input type="button" id="'.$res_id.'-btn" data-id="'.($i).'" data-for="'.$res_id.'" data-json="'.bin2hex(json_encode($opt_at)).'" class="table-js-add" value="+" />';
|
echo '<td><input type="button" id="'.$res_id.'-btn" data-id="'.($i).'" data-for="'.$res_id.'" data-json="'.bin2hex(json_encode($opt_at)).'" class="table-js-add" value="+" />';
|
||||||
if ($i > 0 ) {
|
if ($i > 0) {
|
||||||
echo '<input type="button" id="'.$res_id.'-btndel" data-id="'.($i).'" data-for="'.$res_id.'" class="table-js-del" value="-" />';
|
echo '<input type="button" id="'.$res_id.'-btndel" data-id="'.($i).'" data-for="'.$res_id.'" class="table-js-del" value="-" />';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '</td></tr>';
|
echo '</td></tr>';
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
echo '</table>';
|
echo '</table>';
|
||||||
echo '<!-- END '.$res_id.' -->';
|
echo '<!-- END '.$res_id.' -->';
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($child['type'] == 'HLP' ) {
|
if ($child['type'] == 'HLP') {
|
||||||
$res_n = (string)$child ->name;
|
$res_n = (string)$child ->name;
|
||||||
$res_id = $npref.$res_n;
|
$res_id = $npref.$res_n;
|
||||||
if (empty($child->class)) {
|
if (empty($child->class)) {
|
||||||
$child->class = 'form-control';
|
$child->class = 'form-control';
|
||||||
}
|
}
|
||||||
echo '<!-- Begin '.$child->label.' -->';
|
echo '<!-- Begin '.$child->label.' -->';
|
||||||
|
|
||||||
|
@ -866,41 +862,40 @@ foreach ($items as $child) {
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body collapse" id="<?php echo $res_id;?>">
|
<div class="panel-body collapse" id="<?php echo $res_id;?>">
|
||||||
<?php
|
<?php
|
||||||
foreach ($child->xpath('element') as $value) {
|
foreach ($child->xpath('element') as $value) {
|
||||||
switch ($value['type']){
|
switch ($value['type']) {
|
||||||
case 'p':
|
case 'p':
|
||||||
case 'h1':
|
case 'h1':
|
||||||
case 'h2':
|
case 'h2':
|
||||||
case 'h3':
|
case 'h3':
|
||||||
case 'h4':
|
case 'h4':
|
||||||
echo '<'.$value['type'].'>'._((string)$value).'</'.$value['type'].'>';
|
echo '<'.$value['type'].'>'._((string)$value).'</'.$value['type'].'>';
|
||||||
break;
|
break;
|
||||||
case 'table':
|
case 'table':
|
||||||
echo '<'.$value['type'].' class="table" >';
|
echo '<'.$value['type'].' class="table" >';
|
||||||
foreach ($value->xpath('row') as $trow) {
|
foreach ($value->xpath('row') as $trow) {
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
foreach ($trow->xpath('col') as $tcol) {
|
foreach ($trow->xpath('col') as $tcol) {
|
||||||
echo '<td>'._((string)$tcol).'</td>';
|
echo '<td>'._((string)$tcol).'</td>';
|
||||||
}
|
}
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
}
|
|
||||||
echo '</'.$value['type'].'>';
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
echo '</'.$value['type'].'>';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- END '.$child->label.' -->';
|
echo '<!-- END '.$child->label.' -->';
|
||||||
|
|
||||||
}
|
}
|
||||||
if ($child['type'] == 'MINFO' ) {
|
if ($child['type'] == 'MINFO') {
|
||||||
$res_n = (string)$child ->name;
|
$res_n = (string)$child ->name;
|
||||||
$res_id = $npref.$res_n;
|
$res_id = $npref.$res_n;
|
||||||
if (empty($child->class)) {
|
if (empty($child->class)) {
|
||||||
$child->class = 'form-control';
|
$child->class = 'form-control';
|
||||||
}
|
}
|
||||||
echo '<!-- Begin '.$child->label.' -->';
|
echo '<!-- Begin '.$child->label.' -->';
|
||||||
?>
|
?>
|
||||||
|
@ -929,25 +924,25 @@ foreach ($items as $child) {
|
||||||
|
|
||||||
if ($child['type'] == 'SLTZN') {
|
if ($child['type'] == 'SLTZN') {
|
||||||
// $value = $child -> select;
|
// $value = $child -> select;
|
||||||
$res_n = (string)$child ->name;
|
$res_n = (string)$child ->name;
|
||||||
$res_id = $npref.$res_n;
|
$res_id = $npref.$res_n;
|
||||||
$child->value ='';
|
$child->value ='';
|
||||||
|
|
||||||
if (!empty($metainfo[$res_n])){
|
if (!empty($metainfo[$res_n])) {
|
||||||
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
if ($child->meta_help == '1' || $child->help == 'Help!') {
|
||||||
$child->help = $metainfo[$res_n]['Description'];
|
$child->help = $metainfo[$res_n]['Description'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$time_regions = array('Africa', 'America', 'Antarctica', 'Arctic', 'Asia', 'Atlantic', 'Australia', 'Europe', 'Russian', 'Indian', 'Pacific');
|
$time_regions = array('Africa', 'America', 'Antarctica', 'Arctic', 'Asia', 'Atlantic', 'Australia', 'Europe', 'Russian', 'Indian', 'Pacific');
|
||||||
$time_zone_global = DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC );
|
$time_zone_global = DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC);
|
||||||
$time_zone_ru = array('Russian/Kaliningrad', 'Russian/Moscow', 'Russian/St.Peterburg', 'Russian/Samara', 'Russian/Novosibirsk', 'Russian/Ekaterinburg', 'Russian/Irkutsk', 'Russian/Yakutsk', 'Russian/Khabarovsk', 'Russian/Vladivostok', 'Russian/Sakhalin', 'Russian/Magadan', 'Russian/Kamchatka');
|
$time_zone_ru = array('Russian/Kaliningrad', 'Russian/Moscow', 'Russian/St.Peterburg', 'Russian/Samara', 'Russian/Novosibirsk', 'Russian/Ekaterinburg', 'Russian/Irkutsk', 'Russian/Yakutsk', 'Russian/Khabarovsk', 'Russian/Vladivostok', 'Russian/Sakhalin', 'Russian/Magadan', 'Russian/Kamchatka');
|
||||||
$time_zone_list = array_merge($time_zone_global,$time_zone_ru);
|
$time_zone_list = array_merge($time_zone_global, $time_zone_ru);
|
||||||
$optgroup = '';
|
$optgroup = '';
|
||||||
sort($time_zone_list);
|
sort($time_zone_list);
|
||||||
|
|
||||||
if (empty($child->class)) {
|
if (empty($child->class)) {
|
||||||
$child->class = 'form-control';
|
$child->class = 'form-control';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($fvalues[$res_n])) {
|
if (!empty($fvalues[$res_n])) {
|
||||||
|
@ -956,7 +951,7 @@ foreach ($items as $child) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($child->value)){
|
if (empty($child->value)) {
|
||||||
$child->value = \date_default_timezone_get();
|
$child->value = \date_default_timezone_get();
|
||||||
// if (!empty($child->default)){
|
// if (!empty($child->default)){
|
||||||
// $child->value = $child->default;
|
// $child->value = $child->default;
|
||||||
|
@ -974,19 +969,25 @@ foreach ($items as $child) {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9"> <!-- <div class = "lnet form-group form-inline" data-nextid=1> --> <?php
|
<div class="col-md-9"> <!-- <div class = "lnet form-group form-inline" data-nextid=1> --> <?php
|
||||||
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '">';
|
echo '<select name="'.$res_id.'" class="'. $child->class . '" id="' . $res_id . '">';
|
||||||
foreach ($time_zone_list as $opt_key) {
|
foreach ($time_zone_list as $opt_key) {
|
||||||
$z = explode('/', $opt_key, 2);
|
$z = explode('/', $opt_key, 2);
|
||||||
if (count($z) != 2 || !in_array($z[0], $time_regions)) continue;
|
if (count($z) != 2 || !in_array($z[0], $time_regions)) {
|
||||||
if ($optgroup != $z[0]) {
|
continue;
|
||||||
if ($optgroup !== '') echo '</optgroup>';
|
}
|
||||||
$optgroup = $z[0];
|
if ($optgroup != $z[0]) {
|
||||||
echo '<optgroup label="' . htmlentities($z[0]) . '">';
|
if ($optgroup !== '') {
|
||||||
}
|
echo '</optgroup>';
|
||||||
echo '<option value="' . htmlentities($opt_key) . '" label="' . htmlentities(str_replace('_', ' ', $z[1])) . '"' . ($opt_key == $child->value ? ' selected="selected" >' : '>'). htmlentities(str_replace('_', ' ', $opt_key)) . '</option>';
|
|
||||||
}
|
}
|
||||||
if ($optgroup !== '') echo '</optgroup>';
|
$optgroup = $z[0];
|
||||||
|
echo '<optgroup label="' . htmlentities($z[0]) . '">';
|
||||||
|
}
|
||||||
|
echo '<option value="' . htmlentities($opt_key) . '" label="' . htmlentities(str_replace('_', ' ', $z[1])) . '"' . ($opt_key == $child->value ? ' selected="selected" >' : '>'). htmlentities(str_replace('_', ' ', $opt_key)) . '</option>';
|
||||||
|
}
|
||||||
|
if ($optgroup !== '') {
|
||||||
|
echo '</optgroup>';
|
||||||
|
}
|
||||||
|
|
||||||
?> </select>
|
?> </select>
|
||||||
<!-- </div> --> </div>
|
<!-- </div> --> </div>
|
||||||
</div></div>
|
</div></div>
|
||||||
<div class="row"><div class="col-md-12">
|
<div class="row"><div class="col-md-12">
|
||||||
|
@ -996,15 +997,12 @@ foreach ($items as $child) {
|
||||||
<!--END System Language-->
|
<!--END System Language-->
|
||||||
<?php
|
<?php
|
||||||
echo '<!-- END '.$child->label.' -->';
|
echo '<!-- END '.$child->label.' -->';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
if ($h_show==1) {
|
if ($h_show==1) {
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
// vim: set ai ts=4 sw=4 ft=phtml:
|
// vim: set ai ts=4 sw=4 ft=phtml:
|
||||||
$roming_enable = '';
|
$roming_enable = '';
|
||||||
if (!empty($this->sccpvalues['system_rouminguser'])) {
|
if (!empty($this->sccpvalues['system_rouminguser'])) {
|
||||||
if ($this->sccpvalues['system_rouminguser']['data'] == 'yes'){
|
if ($this->sccpvalues['system_rouminguser']['data'] == 'yes') {
|
||||||
$roming_enable = 'yes';
|
$roming_enable = 'yes';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@
|
||||||
if (val[0] === 'line') {
|
if (val[0] === 'line') {
|
||||||
result = result + val[1] + '<br>';
|
result = result + val[1] + '<br>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,21 +3,21 @@
|
||||||
<a href="config.php?display=sccp_phone&tech_hardware=cisco" class = "btn btn-default"><i class="fa fa-plus"></i> <?php echo _("Add Device")?></a>
|
<a href="config.php?display=sccp_phone&tech_hardware=cisco" class = "btn btn-default"><i class="fa fa-plus"></i> <?php echo _("Add Device")?></a>
|
||||||
</div>
|
</div>
|
||||||
<table id="sccpnavgrid"
|
<table id="sccpnavgrid"
|
||||||
data-search="true"
|
data-search="true"
|
||||||
data-toolbar="#toolbar-sccpnav"
|
data-toolbar="#toolbar-sccpnav"
|
||||||
data-url="ajax.php?module=sccp_manager&command=getPhoneGrid&type=sccp"
|
data-url="ajax.php?module=sccp_manager&command=getPhoneGrid&type=sccp"
|
||||||
data-cache="false"
|
data-cache="false"
|
||||||
data-toggle="table"
|
data-toggle="table"
|
||||||
class="table">
|
class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th data-sortable="true" data-field="mac"><?php echo _('SEP ID') ?></th>
|
<th data-sortable="true" data-field="mac"><?php echo _('SEP ID') ?></th>
|
||||||
<th data-sortable="true" data-field="description"><?php echo _('Descriptions') ?></th>
|
<th data-sortable="true" data-field="description"><?php echo _('Descriptions') ?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
</table>
|
</table>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$("#sccpnavgrid").on('click-row.bs.table',function(e,row,elem){
|
$("#sccpnavgrid").on('click-row.bs.table',function(e,row,elem){
|
||||||
window.location = '?display=sccp_phone&tech_hardware=cisco&id='+row['mac'];
|
window.location = '?display=sccp_phone&tech_hardware=cisco&id='+row['mac'];
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
if (val[0] === 'line') {
|
if (val[0] === 'line') {
|
||||||
result = result + val[1] + '<br>';
|
result = result + val[1] + '<br>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
* To change this template file, choose Tools | Templates
|
* To change this template file, choose Tools | Templates
|
||||||
* and open the template in the editor.
|
* and open the template in the editor.
|
||||||
|
@ -12,8 +12,8 @@
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
echo $this->ShowGroup('sccp_srst',1);
|
echo $this->showGroup('sccp_srst', 1);
|
||||||
// echo $this->ShowGroup('sccp_dev_time',1);
|
// echo $this->showGroup('sccp_dev_time',1);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
* To change this template file, choose Tools | Templates
|
* To change this template file, choose Tools | Templates
|
||||||
* and open the template in the editor.
|
* and open the template in the editor.
|
||||||
|
@ -11,7 +11,7 @@ $def_val = null;
|
||||||
$dev_id = null;
|
$dev_id = null;
|
||||||
$sccp_codec = $this->getCodecs('audio', true);
|
$sccp_codec = $this->getCodecs('audio', true);
|
||||||
$video_codecs = $this->getCodecs('video', true);
|
$video_codecs = $this->getCodecs('video', true);
|
||||||
$sccp_disalow_def = $this->extconfigs->getextConfig('sccpDefaults','disallow');
|
$sccp_disalow_def = $this->extconfigs->getextConfig('sccpDefaults', 'disallow');
|
||||||
$sccp_disalow = $sccp_disalow_def;
|
$sccp_disalow = $sccp_disalow_def;
|
||||||
|
|
||||||
if (!empty($_REQUEST['id'])) {
|
if (!empty($_REQUEST['id'])) {
|
||||||
|
@ -19,7 +19,7 @@ if (!empty($_REQUEST['id'])) {
|
||||||
$db_res = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $dev_id));
|
$db_res = $this->dbinterface->get_db_SccpTableData('get_sccpdevice_byid', array("id" => $dev_id));
|
||||||
if (!empty($db_res['allow'])) {
|
if (!empty($db_res['allow'])) {
|
||||||
$i = 1;
|
$i = 1;
|
||||||
foreach(explode(';', $db_res['allow']) as $c){
|
foreach (explode(';', $db_res['allow']) as $c) {
|
||||||
$codec_list[$c] = $i;
|
$codec_list[$c] = $i;
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
|
@ -29,10 +29,9 @@ if (!empty($_REQUEST['id'])) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($db_res['disallow'])) {
|
if (!empty($db_res['disallow'])) {
|
||||||
$sccp_disalow = $db_res['disallow'];
|
$sccp_disalow = $db_res['disallow'];
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$codec_list = $sccp_codec;
|
$codec_list = $sccp_codec;
|
||||||
}
|
}
|
||||||
|
@ -168,7 +167,7 @@ if (!empty($_REQUEST['id'])) {
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<span id="sccp_disallow-help" class="help-block fpbx-help-block"><?php echo _("Defaut : all. Plz eneter format: alaw,ulaw") ?></span>
|
<span id="sccp_disallow-help" class="help-block fpbx-help-block"><?php echo _("Default : all. Plz eneter format: alaw,ulaw") ?></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
* To change this template file, choose Tools | Templates
|
* To change this template file, choose Tools | Templates
|
||||||
* and open the template in the editor.
|
* and open the template in the editor.
|
||||||
|
@ -12,8 +12,8 @@
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
echo $this->ShowGroup('sccp_dev_ntp',1);
|
echo $this->showGroup('sccp_dev_ntp', 1);
|
||||||
echo $this->ShowGroup('sccp_dev_time',1);
|
echo $this->showGroup('sccp_dev_time', 1);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
* To change this template file, choose Tools | Templates
|
* To change this template file, choose Tools | Templates
|
||||||
* and open the template in the editor.
|
* and open the template in the editor.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
$data = 'none;';
|
$data = 'none;';
|
||||||
foreach ($this->get_DialPlanList() as $value) {
|
foreach ($this->getDialPlanList() as $value) {
|
||||||
$data .= $value['id'].';';
|
$data .= $value['id'].';';
|
||||||
}
|
}
|
||||||
if (strlen($data) >0 ){
|
if (strlen($data) >0 ){
|
||||||
$data = substr ($data,0,-1);
|
$data = substr ($data,0,-1);
|
||||||
}
|
}
|
||||||
$this->sccpvalues['dial_template'] = array('keyword' => 'dial_template', 'data' => $data, 'type' => '10', 'seq' => '90');
|
$this->sccpvalues['dial_template'] = array('keyword' => 'dial_template', 'data' => $data, 'type' => '10', 'seq' => '90');
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<form autocomplete="off" name="frm_device" id="frm_device" class="fpbx-submit" action="" method="post">
|
<form autocomplete="off" name="frm_device" id="frm_device" class="fpbx-submit" action="" method="post">
|
||||||
|
@ -22,11 +22,11 @@ if (strlen($data) >0 ){
|
||||||
<input type="hidden" name="Submit" value="Submit">
|
<input type="hidden" name="Submit" value="Submit">
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
echo $this->ShowGroup('sccp_dev_config',1);
|
echo $this->showGroup('sccp_dev_config', 1);
|
||||||
echo $this->ShowGroup('sccp_dev_group_config',1);
|
echo $this->showGroup('sccp_dev_group_config', 1);
|
||||||
echo $this->ShowGroup('sccp_dev_advconfig',1);
|
echo $this->showGroup('sccp_dev_advconfig', 1);
|
||||||
echo $this->ShowGroup('sccp_dev_softkey',1);
|
echo $this->showGroup('sccp_dev_softkey', 1);
|
||||||
echo $this->ShowGroup('sccp_dev_url',1);
|
echo $this->showGroup('sccp_dev_url', 1);
|
||||||
echo $this->ShowGroup('sccp_hotline_config',1);
|
echo $this->showGroup('sccp_hotline_config', 1);
|
||||||
?>
|
?>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -25,7 +25,7 @@ foreach ($ast_realtime as $key => $value) {
|
||||||
$conf_realtime = $this->extconfigs->validate_RealTime($ast_realm);
|
$conf_realtime = $this->extconfigs->validate_RealTime($ast_realm);
|
||||||
$db_Schema = $this->dbinterface->validate();
|
$db_Schema = $this->dbinterface->validate();
|
||||||
$mysql_info = $this->dbinterface->get_db_sysvalues();
|
$mysql_info = $this->dbinterface->get_db_sysvalues();
|
||||||
$compatable = $this->srvinterface->get_compatible_sccp();
|
$compatible = $this->srvinterface->get_compatible_sccp();
|
||||||
$info = array();
|
$info = array();
|
||||||
|
|
||||||
$info['srvinterface'] = $this->srvinterface->info();
|
$info['srvinterface'] = $this->srvinterface->info();
|
||||||
|
@ -48,16 +48,16 @@ if (!empty($this->sccpvalues['tftp_rewrite'])) {
|
||||||
$info['TFTP_Rewrite'] = array('Version' => 'base', 'about' => 'Rewrite Supported');
|
$info['TFTP_Rewrite'] = array('Version' => 'base', 'about' => 'Rewrite Supported');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$info['Сompatible'] = array('Version' => $compatable, 'about' => 'Ok');
|
$info['Сompatible'] = array('Version' => $compatible, 'about' => 'Ok');
|
||||||
if (!empty($this->sccpvalues['SccpDBmodel'])) {
|
if (!empty($this->sccpvalues['SccpDBmodel'])) {
|
||||||
if ($compatable > $this->sccpvalues['SccpDBmodel']['data']) {
|
if ($compatible > $this->sccpvalues['SccpDBmodel']['data']) {
|
||||||
$info['Сompatible']['about'] = '<div class="alert signature alert-danger"> Reinstall SCCP manager required</div>';
|
$info['Сompatible']['about'] = '<div class="alert signature alert-danger"> Reinstall SCCP manager required</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($db_Schema == 0) {
|
if ($db_Schema == 0) {
|
||||||
$info['DB_Schema'] = array('Version' => 'Error', 'about' => '<div class="alert signature alert-danger"> ERROR DB Version </div>');
|
$info['DB_Schema'] = array('Version' => 'Error', 'about' => '<div class="alert signature alert-danger"> ERROR DB Version </div>');
|
||||||
} else {
|
} else {
|
||||||
$info['DB_Schema'] = array('Version' => $db_Schema, 'about' => (($compatable == $db_Schema ) ? 'Ok' : 'Incompatable Version'));
|
$info['DB_Schema'] = array('Version' => $db_Schema, 'about' => (($compatible == $db_Schema ) ? 'Ok' : 'Incompatible Version'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($ast_realtime)) {
|
if (empty($ast_realtime)) {
|
||||||
|
@ -74,7 +74,7 @@ if (empty($ast_realtime)) {
|
||||||
$rt_sccp = 'SCCP ERROR';
|
$rt_sccp = 'SCCP ERROR';
|
||||||
$rt_info .= '<div class="alert signature alert-danger"> Error : ' . $value['message'] . '</div>';
|
$rt_info .= '<div class="alert signature alert-danger"> Error : ' . $value['message'] . '</div>';
|
||||||
}
|
}
|
||||||
} else if ($value['status'] == 'ERROR') {
|
} elseif ($value['status'] == 'ERROR') {
|
||||||
$rt_info .= '<div> Found error in realtime sectoin [' . $key . '] : ' . $value['message'] . '</div>';
|
$rt_info .= '<div> Found error in realtime sectoin [' . $key . '] : ' . $value['message'] . '</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,15 +94,15 @@ if (empty($conf_realtime)) {
|
||||||
$info['ConfigsRealTime'] = array('Version' => 'Error', 'about' => $rt_info);
|
$info['ConfigsRealTime'] = array('Version' => 'Error', 'about' => $rt_info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// $mysql_info
|
// $mysql_info
|
||||||
if ($mysql_info['Value'] <= '2000') {
|
if ($mysql_info['Value'] <= '2000') {
|
||||||
$this->info_warning['MySql'] = Array('Increase Mysql Group Concat Max. Length', 'Step 1: Go to mysql path <br> nano /etc/my.cnf',
|
$this->info_warning['MySql'] = array('Increase Mysql Group Concat Max. Length', 'Step 1: Go to mysql path <br> nano /etc/my.cnf',
|
||||||
'Step 2: And add the following line below [mysqld] as shown below <br> [mysqld] <br>group_concat_max_len = 4096 or more',
|
'Step 2: And add the following line below [mysqld] as shown below <br> [mysqld] <br>group_concat_max_len = 4096 or more',
|
||||||
'Step 3: Save and restart <br> systemctl restart mariadb.service<br> Or <br> service mysqld restart');
|
'Step 3: Save and restart <br> systemctl restart mariadb.service<br> Or <br> service mysqld restart');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Check Time Zone comatable
|
// Check Time Zone comatable
|
||||||
$conf_tz = $this->sccpvalues['ntp_timezone']['data'];
|
$conf_tz = $this->sccpvalues['ntp_timezone']['data'];
|
||||||
$cisco_tz = $this->extconfigs->getextConfig('sccp_timezone', $conf_tz);
|
$cisco_tz = $this->extconfigs->getextConfig('sccp_timezone', $conf_tz);
|
||||||
if ($cisco_tz['offset'] == 0) {
|
if ($cisco_tz['offset'] == 0) {
|
||||||
|
@ -110,7 +110,7 @@ if ($cisco_tz['offset'] == 0) {
|
||||||
$tmp_dt = new DateTime(null, new DateTimeZone($conf_tz));
|
$tmp_dt = new DateTime(null, new DateTimeZone($conf_tz));
|
||||||
$tmp_ofset = $tmp_dt->getOffset();
|
$tmp_ofset = $tmp_dt->getOffset();
|
||||||
if (($cisco_tz['offset'] != ($tmp_ofset / 60) )) {
|
if (($cisco_tz['offset'] != ($tmp_ofset / 60) )) {
|
||||||
$this->info_warning['NTP'] = Array('The selected NTP time zone is not supported by cisco devices.', 'We will use the Greenwich Time zone');
|
$this->info_warning['NTP'] = array('The selected NTP time zone is not supported by cisco devices.', 'We will use the Greenwich Time zone');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,59 +121,59 @@ global $amp_conf;
|
||||||
if ($test_any == 1) {
|
if ($test_any == 1) {
|
||||||
# Output option list, HTML.
|
# Output option list, HTML.
|
||||||
|
|
||||||
$timezone_identifiers = DateTimeZone::listIdentifiers();
|
$timezone_identifiers = DateTimeZone::listIdentifiers();
|
||||||
$timezone_abbreviations = DateTimeZone::listAbbreviations();
|
$timezone_abbreviations = DateTimeZone::listAbbreviations();
|
||||||
$a = DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC );
|
$a = DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC);
|
||||||
|
|
||||||
|
|
||||||
$Ts_set = $a[200];
|
$Ts_set = $a[200];
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************************
|
// ************************************************************************************
|
||||||
print_r("<br> Help Info:<br><pre>");
|
print_r("<br> Help Info:<br><pre>");
|
||||||
print_r("<br>");
|
print_r("<br>");
|
||||||
//print_r(array_column($timezone_abbreviations, 'timezone_id'));
|
//print_r(array_column($timezone_abbreviations, 'timezone_id'));
|
||||||
print_r($Ts_set);
|
print_r($Ts_set);
|
||||||
$tz_tmp = array();
|
$tz_tmp = array();
|
||||||
|
|
||||||
foreach ($timezone_abbreviations as $subArray) {
|
foreach ($timezone_abbreviations as $subArray) {
|
||||||
$dddd = array_search($Ts_set ,array_column($subArray, 'timezone_id'));
|
$dddd = array_search($Ts_set, array_column($subArray, 'timezone_id'));
|
||||||
if (!empty($dddd)) {
|
if (!empty($dddd)) {
|
||||||
$tz_tmp[] = $subArray[$dddd];
|
$tz_tmp[] = $subArray[$dddd];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($tz_tmp)) {
|
|
||||||
print_r('erroe');
|
|
||||||
}
|
|
||||||
if (count($tz_tmp)==1) {
|
|
||||||
$time_set = $tz_tmp[0];
|
|
||||||
} else {
|
|
||||||
$tmp_dt = new DateTime(null, new DateTimeZone($Ts_set));
|
|
||||||
$tmp_ofset = $tmp_dt->getOffset();
|
|
||||||
foreach ($tz_tmp as $subArray) {
|
|
||||||
if ($subArray['offset'] == $tmp_ofset) {
|
|
||||||
$time_set = $subArray;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
print_r("<br>");
|
|
||||||
//print_r($time_set);
|
|
||||||
print_r($this->sccpvalues['ntp_timezone']);
|
|
||||||
//print_r($tz_tmp);
|
|
||||||
print_r("<br>");
|
|
||||||
print_r("<br>");
|
|
||||||
|
|
||||||
print_r("<br>");
|
if (empty($tz_tmp)) {
|
||||||
|
print_r('erroe');
|
||||||
|
}
|
||||||
|
if (count($tz_tmp)==1) {
|
||||||
|
$time_set = $tz_tmp[0];
|
||||||
|
} else {
|
||||||
|
$tmp_dt = new DateTime(null, new DateTimeZone($Ts_set));
|
||||||
|
$tmp_ofset = $tmp_dt->getOffset();
|
||||||
|
foreach ($tz_tmp as $subArray) {
|
||||||
|
if ($subArray['offset'] == $tmp_ofset) {
|
||||||
|
$time_set = $subArray;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print_r("<br>");
|
||||||
|
//print_r($time_set);
|
||||||
|
print_r($this->sccpvalues['ntp_timezone']);
|
||||||
|
//print_r($tz_tmp);
|
||||||
|
print_r("<br>");
|
||||||
|
print_r("<br>");
|
||||||
|
|
||||||
|
print_r("<br>");
|
||||||
//print_r($timezone_abbreviations);
|
//print_r($timezone_abbreviations);
|
||||||
//print_r($timezone_identifiers);
|
//print_r($timezone_identifiers);
|
||||||
//print_r($timezone);
|
//print_r($timezone);
|
||||||
//print_r($transitions);
|
//print_r($transitions);
|
||||||
|
|
||||||
|
|
||||||
print_r("<br>");
|
print_r("<br>");
|
||||||
print_r("</pre>");
|
print_r("</pre>");
|
||||||
// print_r("DIRECT START");
|
// print_r("DIRECT START");
|
||||||
// print_r($this->sccpvalues['ccm_address']);
|
// print_r($this->sccpvalues['ccm_address']);
|
||||||
//print_r($this->get_php_classes('\\FreePBX\\modules'));
|
//print_r($this->get_php_classes('\\FreePBX\\modules'));
|
||||||
|
@ -211,24 +211,24 @@ print_r("</pre>");
|
||||||
// $a = new \FreePBX\modules\Sccp_manager\aminterface\SCCPConfigMetaDataAction();
|
// $a = new \FreePBX\modules\Sccp_manager\aminterface\SCCPConfigMetaDataAction();
|
||||||
// $response = $this->aminterface->send($a);
|
// $response = $this->aminterface->send($a);
|
||||||
//
|
//
|
||||||
// $response = $this->aminterface->getRealTimeStatus();
|
// $response = $this->aminterface->getRealTimeStatus();
|
||||||
// $time_get_a = microtime_float();
|
// $time_get_a = microtime_float();
|
||||||
// print_r($response);
|
// print_r($response);
|
||||||
// $tmp_data = $this->aminterface->core_sccp_reload();
|
// $tmp_data = $this->aminterface->core_sccp_reload();
|
||||||
// print_r($tmp_data);
|
// print_r($tmp_data);
|
||||||
// print_r($response -> getResult());
|
// print_r($response -> getResult());
|
||||||
// $events = $response->getEvents();
|
// $events = $response->getEvents();
|
||||||
// $events = $response->Events2Array();
|
// $events = $response->Events2Array();
|
||||||
//
|
//
|
||||||
// print_r($events);
|
// print_r($events);
|
||||||
// print_r('--- RESULT A -----------------');
|
// print_r('--- RESULT A -----------------');
|
||||||
// $b = $this->oldinterface->sccp_realtime_status();
|
// $b = $this->oldinterface->sccp_realtime_status();
|
||||||
// print_r($b);
|
// print_r($b);
|
||||||
// $b = $this->srvinterface->sccp_realtime_status();
|
// $b = $this->srvinterface->sccp_realtime_status();
|
||||||
// print_r($response->getMessage());
|
// print_r($response->getMessage());
|
||||||
// print_r($a);
|
// print_r($a);
|
||||||
// $events = $response ->getTableNames();
|
// $events = $response ->getTableNames();
|
||||||
// $events = $response->getEvents();
|
// $events = $response->getEvents();
|
||||||
// print_r($events);
|
// print_r($events);
|
||||||
// $b = $response->Table2Array($events[0]);
|
// $b = $response->Table2Array($events[0]);
|
||||||
// $b = $response->getResult();
|
// $b = $response->getResult();
|
||||||
|
@ -245,9 +245,9 @@ print_r("</pre>");
|
||||||
|
|
||||||
/* Test Ok
|
/* Test Ok
|
||||||
*
|
*
|
||||||
*
|
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
if ($test_ami == 1) {
|
if ($test_ami == 1) {
|
||||||
$time_ami = 0;
|
$time_ami = 0;
|
||||||
|
@ -389,9 +389,9 @@ if ($test_ami == 1) {
|
||||||
$time_old += $value['old'];
|
$time_old += $value['old'];
|
||||||
}
|
}
|
||||||
print_r('</tbody></table></div></div></div></div>');
|
print_r('</tbody></table></div></div></div></div>');
|
||||||
print_r('<br>Ami Responce :');
|
print_r('<br>Ami Response :');
|
||||||
print_r($time_ami);
|
print_r($time_ami);
|
||||||
print_r('<br>PBX Responce :');
|
print_r('<br>PBX Response :');
|
||||||
print_r($time_old);
|
print_r($time_old);
|
||||||
print_r('<br>--- Stat -----------------<br>');
|
print_r('<br>--- Stat -----------------<br>');
|
||||||
}
|
}
|
||||||
|
@ -402,7 +402,7 @@ if ($test_ami == 1) {
|
||||||
// print_r($events);
|
// print_r($events);
|
||||||
//$b = $response->Table2Array($events[0]);
|
//$b = $response->Table2Array($events[0]);
|
||||||
//$b = $response->getResult();
|
//$b = $response->getResult();
|
||||||
// print_r('--- RESULT 2 -----------------<br>');
|
// print_r('--- RESULT 2 -----------------<br>');
|
||||||
//print_r($events);
|
//print_r($events);
|
||||||
// print_r($b);
|
// print_r($b);
|
||||||
// $ser = serialize($response);
|
// $ser = serialize($response);
|
||||||
|
@ -414,20 +414,20 @@ if ($test_ami == 1) {
|
||||||
$this->assertEquals($events[0]->getName(), 'CoreShowChannelsComplete');
|
$this->assertEquals($events[0]->getName(), 'CoreShowChannelsComplete');
|
||||||
$this->assertEquals($events[0]->getListItems(), 0);
|
$this->assertEquals($events[0]->getListItems(), 0);
|
||||||
*/
|
*/
|
||||||
// print_r('--- RESULT 3 -----------------');
|
// print_r('--- RESULT 3 -----------------');
|
||||||
// print_r($a);
|
// print_r($a);
|
||||||
// print_r('--- С RESULT -----------------');
|
// print_r('--- С RESULT -----------------');
|
||||||
// print_r($this->aminterface::SCCPShowDevicesAction());
|
// print_r($this->aminterface::SCCPShowDevicesAction());
|
||||||
//
|
//
|
||||||
// print_r($this->aminterface->close());
|
// print_r($this->aminterface->close());
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//print_r($this->dbinterface->get_db_SccpTableData('SccpExtension'));
|
//print_r($this->dbinterface->get_db_SccpTableData('SccpExtension'));
|
||||||
// print_r($this->srvinterface->getеtestChanSCC());
|
// print_r($this->srvinterface->getеtestChanSCC());
|
||||||
// $test_data = $this->srvinterface-> astman_GetRaw('ExtensionStateList');
|
// $test_data = $this->srvinterface-> astman_GetRaw('ExtensionStateList');
|
||||||
// print_r($test_data);
|
// print_r($test_data);
|
||||||
// print_r($this->srvinterface-> core_list_all_exten());
|
// print_r($this->srvinterface-> core_list_all_exten());
|
||||||
// print_r($this->get_hint_info());
|
// print_r($this->getHintInformation());
|
||||||
// print_r($this->aminterface->open());
|
// print_r($this->aminterface->open());
|
||||||
// print_r($this->aminterface-> core_list_all_exten('exten'));
|
// print_r($this->aminterface-> core_list_all_exten('exten'));
|
||||||
// print_r($this->aminterface->Sok_param['total']);
|
// print_r($this->aminterface->Sok_param['total']);
|
||||||
|
@ -436,7 +436,7 @@ if ($test_ami == 1) {
|
||||||
print(" ");
|
print(" ");
|
||||||
/* */
|
/* */
|
||||||
// ************************************************************************************
|
// ************************************************************************************
|
||||||
// $lang_arr = $this->extconfigs->getextConfig('sccp_lang','sk_SK');
|
// $lang_arr = $this->extconfigs->getextConfig('sccp_lang','sk_SK');
|
||||||
// print_r('<br>');
|
// print_r('<br>');
|
||||||
// print_r(timezone_identifiers_list());
|
// print_r(timezone_identifiers_list());
|
||||||
// print_r('<br>');
|
// print_r('<br>');
|
||||||
|
@ -468,7 +468,7 @@ if (!empty($this->info_warning)) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($this->class_error)) {
|
if (!empty($this->class_error)) {
|
||||||
|
@ -488,7 +488,7 @@ if (!empty($this->class_error)) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<div class="fpbx-container container-fluid">
|
<div class="fpbx-container container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
@ -516,5 +516,5 @@ foreach ($info as $key => $value) {
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php echo $this->ShowGroup('sccp_info', 0); ?>
|
<?php echo $this->showGroup('sccp_info', 0); ?>
|
||||||
|
|
||||||
|
|
|
@ -21,13 +21,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
echo $this->ShowGroup('sccp_general',1);
|
echo $this->showGroup('sccp_general', 1);
|
||||||
echo $this->ShowGroup('sccp_dev_time_s',1);
|
echo $this->showGroup('sccp_dev_time_s', 1);
|
||||||
echo $this->ShowGroup('sccp_net',1);
|
echo $this->showGroup('sccp_net', 1);
|
||||||
echo $this->ShowGroup('sccp_lang',1);
|
echo $this->showGroup('sccp_lang', 1);
|
||||||
echo $this->ShowGroup('sccp_qos_config',1);
|
echo $this->showGroup('sccp_qos_config', 1);
|
||||||
echo $this->ShowGroup('sccp_extpath_config',1);
|
echo $this->showGroup('sccp_extpath_config', 1);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
@ -43,8 +43,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<ul class="nav nav-tabs" role="tablist">
|
<ul class="nav nav-tabs" role="tablist">
|
||||||
<?php
|
<?php
|
||||||
// echo $this->ShowGroup('add_network_1',0);
|
// echo $this->showGroup('add_network_1',0);
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue