<?php
/*
* *****************************************************************************************
*
* Copyright (c) 2016 Christopher W. Olsen <cwolsen@uBixStudios.com>
* All rights reserved.
*
*
* $Id: getData.php 1715 2014-07-16 04:58:08Z reddawg $
*
* ***************************************************************************************
*/
/* Main include info */
ini_set('include_path', $_SERVER['DOCUMENT_ROOT'] . "/include/");
include ("config.php");
include ("voip_device.php");
/* Main defines */
$data['tpl']->define(array(
"conf_file" => "error.tpl"
));
/* Make Sure It's A Polycom */
if (!strstr($_SERVER['HTTP_USER_AGENT'], "Polycom")) {
// script404();
}
if ($data['file'] == "00000000000000") {
shell_exec("echo 'DEFAULTS!' >> /tmp/Prov.log");
setPolycomDefaults();
}
/* Initialize Our Device Global */
try {
$cDev = new VoIP_Device($_SERVER['HTTP_USER_AGENT']);
} catch (Exception $e) {
script404();
}
/* Break The Request File Into Parts */
$cFile = explode("-", $data['file']);
switch ($data['type']) {
case 'xml':
switch ($cFile[1]) {
case 'directory':
Polycom_Device::loadDirectory($data, $cFile[0]);
exit();
break;
default:
script404();
}
break;
case 'ug':
if (($cDev->appType == "Application" && $cDev->userAgent[0] == '3') || ($cDev->appType == "Updater" && $cDev->userAgent[0] == '4')) {
system("echo 'UG: " . $data['mode'] . "-" . $cDev->userAgent . "' >> /tmp/AGENT.log");
if ($cFile[0] == "000000000000") {
print("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<APPLICATION APP_FILE_PATH=\"firmware/Polycom/4.0.9/sip.ld\" CONFIG_FILES=\"\" MISC_FILES=\"\" LOG_FILE_DIRECTORY=\"http://prov.spherepbx.com/logs/\" OVERRIDES_DIRECTORY=\"\" CONTACTS_DIRECTORY=\"\" LICENSE_DIRECTORY=\"\" />");
exit();
}
else
script404();
}
else {
print("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<APPLICATION APP_FILE_PATH=\"firmware/Polycom/4.0.9/sip.ld\" CONFIG_FILES=\"http://prov.spherepbx.com/ns/completed.cfg, http://prov.spherepbx.com/" . $cFile[0] . ".cfg\" MISC_FILES=\"\" LOG_FILE_DIRECTORY=\"http://prov.spherepbx.com/logs/\" OVERRIDES_DIRECTORY=\"\" CONTACTS_DIRECTORY=\"\" LICENSE_DIRECTORY=\"\" />");
exit();
}
break;
case 'dg':
if (($cDev->appType == "Application" && $cDev->userAgent[0] == '4') || ($cDev->appType == "Updater" && $cDev->userAgent[0] == '5')) {
system("echo 'DG: " . $data['mode'] . "-" . $cDev->userAgent . "' >> /tmp/AGENT.log");
if ($cFile[0] == "000000000000") {
print("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<APPLICATION APP_FILE_PATH=\"sip.ld\" CONFIG_FILES=\"\" MISC_FILES=\"\" LOG_FILE_DIRECTORY=\"http://prov.spherepbx.com/logs/\" OVERRIDES_DIRECTORY=\"\" CONTACTS_DIRECTORY=\"\" LICENSE_DIRECTORY=\"\" />");
exit();
}
else
script404();
}
else {
print("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<APPLICATION APP_FILE_PATH=\"sip.ld\" CONFIG_FILES=\"http://prov.spherepbx.com/ns/completed.cfg, http://prov.spherepbx.com/" . $cFile[0] . ".cfg\" MISC_FILES=\"\" LOG_FILE_DIRECTORY=\"http://prov.spherepbx.com/logs/\" OVERRIDES_DIRECTORY=\"\" CONTACTS_DIRECTORY=\"\" LICENSE_DIRECTORY=\"\" />");
exit();
}
break;
case 'cfg':
processConfig();
break;
default:
script404();
} /* END switch */
/*
* Parse and print
*/
$data['tpl']->parse("CONF_FILE", array(
"conf_file"
));
$data['tpl']->FastPrint("CONF_FILE");
system('echo "TPL: ' . $qData['firmware'] . ', Query:[' . $data['ubix_db']->real_escape_string($data['tpl']->fetch("CONF_FILE")) . '"] >> /tmp/CONF_FILE.log');
function script404 ($message = '404 Not Found') {
header($_SERVER["SERVER_PROTOCOL"] . " " . $message);
exit(0);
}
function setPolycomDefaults () {
global $data;
$data['tpl']->define(array(
"conf_file" => "000000000000.tpl"
));
$data['tpl']->assign("FIRMWARE", "sip.ld");
$data['tpl']->assign("CONFIG_FILES", "/polycom/defaults/000/device-333.cfg");
$data['tpl']->assign("MISC_FILES", "");
$data['tpl']->parse("CONF_FILE", array(
"conf_file"
));
$data['tpl']->FastPrint("CONF_FILE");
exit();
}
function processConfig () {
global $cFile; //Sloppy
global $data; //Sloppy
/* If The Request Is A Straight MAC Then It's The Default Request */
if (count($cFile) == 1) {
$cFile[1] = "mac";
}
/* Get Device Data From Database */
$query = "SELECT * FROM voip_devices vd LEFT JOIN voip_device_types vdt ON vd.vdtid=vdt.vdtid WHERE mac = '" . $cFile[0] . "'";
$result = $data['ubix_db']->query($query);
if ($result === false) {
script404();
}
else {
$qData = $result->fetch_assoc();
}
$result->free();
// Since We Know It's Our Device Set ACL And Last Config
$query = "UPDATE voip_devices SET last_config = " . time() . ", last_ip = '" . $_SERVER['REMOTE_ADDR'] . "' WHERE mac = '" . $cFile[0] . "'";
$data['ubix_db']->query($query);
// MrOlsen (2015-12-10) NOTICE: Temp
$frm = $qData['firmware'];
/* Make Sure We're Running The Expected Firmware Before Continuing */
if (strstr($qData['firmware'], "_4")) {
if (($cDev->appType == 'Updater' && $cDev->userAgent[0] != '5') || ($cDev->appType == "Application" && $cDev->userAgent[0] != '4') || ($cDev->appType == "Unknown" && $cDev->userAgent[0] == '3')) {
system("echo 'Test for UG: " . $qData['firmware'] . "' >> /tmp/AGENT.log");
print("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<APPLICATION APP_FILE_PATH=\"http://prov.spherepbx.com/polycom/firmware/Polycom/sip_333/sip.ld\" CONFIG_FILES=\"http://prov.spherepbx.com/polycom/ns/upgrade.cfg\" MISC_FILES=\"\" LOG_FILE_DIRECTORY=\"http://prov.spherepbx.com/logs/\" OVERRIDES_DIRECTORY=\"\" CONTACTS_DIRECTORY=\"\" LICENSE_DIRECTORY=\"\" />");
exit();
}
}
else if (strstr($qData['firmware'], "_3")) {
if (($cDev->appType == 'Updater' && $cDev->userAgent[0] != '4') || ($cDev->appType == "Application" && $cDev->userAgent[0] != '3')) {
system("echo 'Test for DG: " . $qData['firmware'] . "' >> /tmp/AGENT.log");
print("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<APPLICATION APP_FILE_PATH=\"http://prov.spherepbx.com/polycom/firmware/Polycom/4.0.9/sip.ld\" CONFIG_FILES=\"http://prov.spherepbx.com/polycom/ns/downgrade.cfg\" MISC_FILES=\"\" LOG_FILE_DIRECTORY=\"http://prov.spherepbx.com/logs/\" OVERRIDES_DIRECTORY=\"\" CONTACTS_DIRECTORY=\"\" LICENSE_DIRECTORY=\"\" />");
exit();
}
}
switch ($cFile[1]) {
case 'reg':
case 'sip':
system("echo 'MrOlsen - Start' >> /tmp/AGENT.log");
$data['tpl']->define(array(
"conf_file" => $qData['firmware'] . "/000000000000-" . $cFile[1] . ".tpl"
));
$query = "SELECT extensions, server_primary, server_port_primary, transport_primary, server_backup, server_port_backup, transport_backup, dialplan, dialplan_timeout FROM voip_devices WHERE mac = '" . $cFile[0] . "'";
system('echo "TPL: ' . $qData['firmware'] . ', Query:[' . $data['ubix_db']->real_escape_string($query) . '"] >> /tmp/AGENT.log');
$result = $data['ubix_db']->query($query);
$qData = $result->fetch_assoc();
$result->free();
$extensions = json_decode($qData['extensions'], true);
/* Just Provide This In The REG NOW */
// $data['tpl']->assign("SERVER_PRIMARY", $qData['server_primary']);
// $data['tpl']->assign("TRANSPORT_PRIMARY", $qData['transport_primary']);
// $data['tpl']->assign("SERVER_BACKUP", $qData['server_backup']);
// $data['tpl']->assign("TRANSPORT_BACKUP", $qData['transport_backup']);
$data['tpl']->assign("SERVER_PRIMARY", "");
;
$data['tpl']->assign("TRANSPORT_PRIMARY", "");
$data['tpl']->assign("SERVER_BACKUP", "");
$data['tpl']->assign("TRANSPORT_BACKUP", "");
$ext = "";
$i = 1;
$reg = "";
$mwi = "";
foreach ($extensions as $key => $val) {
// system('echo "Kev: ' . $key . ', Val: ' . $val . '" >>
// /tmp/AGENT.log');
if ($val['extension'] != "") {
// MrOlsen Temp 04-30-2015
if (isset($val['primary_server']))
$val['server_primary'] = $val['primary_server'];
if (isset($val['primary_port']))
$val['server_port_primary'] = $val['primary_port'];
if (isset($val['primary_transport']))
$val['transport_primary'] = $val['primary_transport'];
if (isset($val['backup_server']))
$val['server_backup'] = $val['backup_server'];
if (isset($val['backup_port']))
$val['server_port_backup'] = $val['backup_port'];
if (isset($val['backup_transport']))
$val['transport_backup'] = $val['backup_transport'];
if ($val['extension'] != '9999') {
if (strstr($_SERVER['REMOTE_ADDR'], "10.50."))
$query = "UPDATE sippeers SET permit = '67.84.244.213/255.255.255.255', deny = '0.0.0.0/0.0.0.0' WHERE name = '" . $val['extension'] . "'";
else {
$query = "UPDATE sippeers SET permit = '" . $_SERVER['REMOTE_ADDR'] . "/255.255.255.255', deny = '0.0.0.0/0.0.0.0' WHERE name = '" . $val['extension'] . "'";
}
$data['voip_db']->query($query);
}
$query = "SELECT name, secret, accountcode, callerid FROM sippeers WHERE name = '" . $val['extension'] . "'";
$result = $data['voip_db']->query($query);
if ($val['line_keys'] == "") {
$LKS = "";
$CPK = "";
}
else if ($val['line_keys'] == 1) {
$LKS = 1;
$CPK = 4;
}
else {
$LKS = $val['line_keys'];
$CPK = 1;
}
if ($result->num_rows > 0) {
$eRow = $result->fetch_row();
$ext = substr($eRow[0], strlen($eRow[2]));
$user = $eRow[0];
$pass = $eRow[1];
$callerid = explode("<", $eRow[3]);
$dN = $callerid[0];
if ($val['label'] != '')
$label = $val['label'];
else
$label = strtoupper($eRow[2]) . " " . substr($callerid[1], 0, -1);
$dN = $label;
$result->free();
}
else if (isset($val['secret'])) {
$ext = $val['extension'];
$user = $val['extension'];
$pass = $val['secret'];
if ($val['label'] != '') {
$label = $val['label'];
$dN = $val['label'];
}
else {
$label = $val['extension'];
$dN = $val['extension'];
}
}
else {
$ext = "9999";
$user = "9999";
$dN = "9999";
$label = "9999";
$pass = "1981";
}
if (!isset($val['server_port_primary']))
$val['server_port_primary'] = "5060";
if (!isset($val['server_port_backup']))
$val['server_port_backup'] = "5060";
if (!isset($val['primary_transport']))
$val['primary_transport'] = "UDPonly";
if (!isset($val['backup_transport']))
$val['backup_transport'] = "UDPOnly";
$rG = "1";
}
else {
$ext = "";
$user = "";
$dN = "";
$label = "";
$pass = "";
$val['server_port_primary'] = "5060";
$val['server_port_backup'] = "5060";
$val['transport_primary'] = "UDPOnly";
$val['transport_backup'] = "UDPOnly";
$val['server_primary'] = "";
$val['server_backup'] = "";
$rG = "";
}
if ($user != "" && $pass != "") {
// MrOlsen(2015-12-20) NOTE: Forced Backup
// $val['server_backup'] = "Failover.SpherePBX.com";
// if (isset ( $polyMatrix [$dI [3]] [$dI [4]] ['reg'] )) {
system("echo 'FW: " . $frm . "' >> /tmp/AGENT.log");
if ($frm == 'sip_409') {
$rI = new Polycom_Firmware_409();
// system ( "echo 'PWND: " . $cDev->model . " - " . $cDev->modelNo
// . "<" . json_encode($rI->regInfo) . ">' >> /tmp/AGENT.log" );
// $rI->regInfo = $polyMatrix [$dI [3]] [$dI [4]] ['reg'];
$rI->regInfo['displayName'] = $dN;
$rI->regInfo['address'] = $user;
$rI->regInfo['label'] = $label;
$rI->regInfo['auth.userId'] = $user;
$rI->regInfo['auth.password'] = $pass;
$rI->regInfo['lineKeys'] = $LKS;
$rI->regInfo['callsPerLineKey'] = $CPK;
$rI->regInfo['server.1.address'] = $val['server_primary'];
$rI->regInfo['server.1.port'] = $val['server_port_primary'];
$rI->regInfo['server.1.transport'] = $val['primary_transport'];
$rI->regInfo['server.2.address'] = $val['server_backup'];
$rI->regInfo['server.1.register'] = $rG;
$rI->regInfo['server.2.register'] = "1"; // MrOlsen (2015-12-10)
// TEMP $rG;
$rI->regInfo['server.2.port'] = $val['server_port_backup'];
$rI->regInfo['server.2.transport'] = $val['backup_transport'];
foreach ($rI->regInfo as $rKey => $rVal) {
$reg .= 'reg.' . $i . '.' . $rKey . '="' . $rVal . '" ';
}
system("echo 'PWND.2: " . $cDev->model . " - " . $cDev->modelNo . "<" . json_encode($rI->regInfo) . ">" . $reg . "' >> /tmp/AGENT.log");
}
else {
// Temp Stuff
if (!isset($val['server_port_primary']))
$val['server_port_primary'] = "5060";
if (!isset($val['transport_primary']))
$val['transport_primary'] = "UDPOnly";
if (!isset($val['server_port_backup']))
$val['server_port_backup'] = "5060";
if (!isset($val['transport_backup']))
$val['transport_backup'] = "UDPOnly";
$reg .= "reg.$i.displayName=\"" . $dN . "\" reg.$i.address=\"" . $user . "\" reg.$i.label=\"" . $label . "\" reg.$i.auth.userId=\"" . $user . "\" reg.$i.auth.password=\"" . $pass . "\" reg.$i.lineKeys=\"$LKS\" reg.$i.callsPerLineKey=\"$CPK\" reg.$i.server.1.address=\"" . $val['server_primary'] . "\" reg.$i.server.1.port=\"" . $val['server_port_primary'] . "\" reg.$i.server.1.transport=\"" . $val['transport_primary'] . "\" reg.$i.server.2.address=\"" . $val['server_backup'] . "\" reg.$i.server.1.register=\"" . $rG . "\" reg.$i.server.1.expires=\"60\" reg.$i.server.2.register=\"$rG\" reg.$i.server.2.expires=\"60\" reg.$i.server.2.port=\"" . $val['server_port_backup'] . "\" reg.$i.server.2.transport=\"" . $val['transport_backup'] . "\" reg.$i.auth.domain=\"\" reg.$i.outboundProxy.address=\"\" ";
}
// $mwi .= "msg.mwi.$i.callBackMode=\"contact\"
// msg.mwi.$i.subscribe=\"" . $val ['server_primary'] . "\"
// msg.mwi.$i.callBack=\"*98\" ";
$mwi .= "msg.mwi.$i.callBackMode=\"contact\" msg.mwi.$i.subscribe=\"" . $user . "\" msg.mwi.$i.callBack=\"*98\" ";
}
$i++;
}
$data['tpl']->assign("DIALPLAN", $qData['dialplan']);
$data['tpl']->assign("DIALPLAN_TIMEOUT", $qData['dialplan_timeout']);
$data['tpl']->assign("REG", $reg);
system("echo 'Reg: " . $data['ubix_db']->real_escape_string($reg) . "' >> /tmp/AGENT.log");
$data['tpl']->assign("MWI", $mwi);
system("echo 'MWI: " . $data['ubix_db']->real_escape_string($mwi) . "' >> /tmp/AGENT.log");
system("echo 'MrOlsen - END' >> /tmp/AGENT.log");
break;
case 'mac':
$data['tpl']->define(array(
"conf_file" => "000000000000.tpl"
));
system("echo 'PMM: " . $cDev->model . " - " . $cDev->modelNo . "' >> /tmp/AGENT.log");
if (strstr($qData['firmware'], "_409")) {
$data['tpl']->assign("FIRMWARE", "http://prov.spherepbx.com/polycom/firmware/4.0.9/sip.ld");
$defDir = "http://prov.spherepbx.com/polycom/defaults/4.0.9";
$data['tpl']->assign("CONFIG_FILES", $defDir . "/applications.cfg, " . $defDir . "/device.cfg, " . $defDir . "/features.cfg, " . $defDir . "/sip.cfg, /" . $cFile[0] . "-reg.cfg");
}
else {
$data['tpl']->assign("FIRMWARE", "http://prov.spherepbx.com/polycom/firmware/" . $qData['firmware'] . "/sip.ld");
$data['tpl']->assign("CONFIG_FILES", "http://prov.spherepbx.com/polycom/defaults/" . $qData['firmware'] . "/device-ubix.cfg, " . $cFile[0] . "-sip.cfg, http://prov.spherepbx.com/polycom/defaults/" . $qData['firmware'] . "/features-ubix.cfg");
}
$data['tpl']->assign("MISC_FILES", "");
break;
case 'web':
$query = "SELECT cfg FROM voip_device_configs WHERE mac = '" . $cFile[0] . "' AND cfg_type = 'web'";
$res = $data['ubix_db']->query($query);
if ($res->num_rows == 0) {
// script404();
print("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<WEB_CONFIG>\n<OVERRIDES />\n</WEB_CONFIG>\n");
}
else {
$wD = $res->fetch_row();
$res->free();
print($wD[0]);
}
exit();
break;
case 'phone':
$query = "SELECT cfg FROM voip_device_configs WHERE mac = '" . $cFile[0] . "' AND cfg_type = 'phone'";
$res = $data['ubix_db']->query($query);
if ($res->num_rows == 0) {
print("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<PHONE_CONFIG>\n<OVERRIDES />\n</PHONE_CONFIG>\n");
// script404();
}
else {
$wD = $res->fetch_row();
$res->free();
print($wD[0]);
}
exit();
break;
case 'license':
$query = "SELECT cfg FROM voip_device_configs WHERE mac = '" . $cFile[0] . "' AND cfg_type = 'license'";
$res = $data['ubix_db']->query($query);
$wD = $res->fetch_row();
if ($res->num_rows == 0)
script404();
else {
$res->free();
print($wD[0]);
}
exit();
break;
default:
script404();
break;
}
}
class Polycom_Device {
/* Firmware Matchup */
public $polyMatrix = Array();
/*
* 'SPIP' => Array (
* // '301' => '3.1.8',
* // '320' => '3.3.5',
* // '330' => '3.3.5',
* '321' => Array (
* 'boot_major' => Array (
* '4' => '3.3.3',
* '5' => '4.0.9'
* )
* ),
* '331' => Array (
* 'firmware' => '4.0.9',
* 'reg' => '',
* 'boot_major' => Array (
* '4' => '3.3.3',
* '5' => '4.0.9'
* )
* ),
* '335' => Array (
* 'firmware' => '4.0.9',
* 'reg' => '',
* 'boot_major' => Array (
* '4' => '3.3.3',
* '5' => '4.0.9'
* )
* ),
* // '430' => '3.2.7',
* '450' => Array (
* 'firmware' => '4.0.9',
* 'reg' => '',
* 'boot_major' => Array (
* '4' => '3.3.3',
* '5' => '4.0.9'
* )
* ),
* // '501' => '3.1.8',
* '550' => Array (
* 'firmware' => '4.0.9',
* 'reg' => '',
* 'boot_major' => Array (
* '4' => '3.3.3',
* '5' => '4.0.9'
* )
* ),
* '560' => Array (
* 'firmware' => '4.0.9',
* 'reg' => '',
* 'boot_major' => Array (
* '4' => '3.3.3',
* '5' => '4.0.9'
* )
* ),
* // '600' => '3.1.8',
* // '601' => '3.1.8',
* '650' => Array (
* 'firmware' => '4.0.9',
* 'reg' => '',
* 'boot_major' => Array (
* '4' => '3.3.3',
* '5' => '4.0.9'
* )
* ),
* '670' => Array (
* 'firmware' => '4.0.9',
* 'reg' => '',
* 'boot_major' => Array (
* '4' => '3.3.3',
* '5' => '4.0.9'
* )
* )
* )
* );
*/
/*
* public function __construct() {
*
* foreach ( Polycom_Firmware_409::devices as $key => $val ) {
* foreach ( $val as $sval )
* $this->polyMatrix [$key] = $sval;
* }
*
* }
*/
public function loadDirectory ($data, $mac) {
$query = "SELECT directory FROM voip_device_directories WHERE mac = '" . $mac . "'";
$query = "SELECT cfg FROM voip_device_configs WHERE mac = '" . $mac . "' AND cfg_type = 'directory'";
$res = $data['ubix_db']->query($query);
if ($res->num_rows == 0)
script404();
else {
$dD = $res->fetch_row();
print $dD[0];
$res->free();
}
}
}
class Polycom_Firmware_409 {
/* Default Regstation Info */
public $regInfo = array(
'acd-agent-available' => "0",'acd-login-logout' => "0",'auth.domain' => "",'auth.optimizedInFailover' => "0",'auth.useLoginCredentials' => "0",'bargeInEnabled' => "0",'csta' => "0",'fwd.busy.contact' => "",'fwd.busy.status' => "0",'fwd.noanswer.contact' => "",'fwd.noanswer.ringCount' => "9",'fwd.noanswer.status' => "0",'lcs' => "0",'musicOnHold.uri' => "",'outboundProxy.failOver.failBack.timeout' => "3600",'outboundProxy.failOver.failRegistrationOn' => "1",'outboundProxy.failOver.onlySignalWithRegistered' => "1",'outboundProxy.failOver.reRegisterOn' => "0",'outboundProxy.port' => "0",'outboundProxy.transport' => "DNSnaptr",'outboundProxy.address' => "",'protocol' => "",'ringType' => "default",'serverFeatureControl.activateCodeSequence.cf.always' => "",'serverFeatureControl.activateCodeSequence.cf.busy' => "",'serverFeatureControl.activateCodeSequence.cf.noanswer' => "",'serverFeatureControl.activateCodeSequence.dnd' => "",'serverFeatureControl.cf' => "0",'serverFeatureControl.deActivateCodeSequence.cf.always' => "",'serverFeatureControl.deActivateCodeSequence.cf.busy' => "",'serverFeatureControl.deActivateCodeSequence.cf.noanswer' => "",'serverFeatureControl.deActivateCodeSequence.dnd' => "",'serverFeatureControl.dnd' => "0",'serverFeatureControl.signalingMethod' => "subscribeAsFeatureEvent",'serverFeatureControl.subscribeToUri' => "",'telephony' => "1",'teluri' => "0",'thirdPartyName' => "",'type' => "private",'useCompleteUriForRetrieve' => "1",'useLocalTargetUriForLegacyPickup' => "0",'server.1.expires' => "300",'server.1.expires.lineSeize' => "30",'server.1.expires.overlap' => "60",'server.1.lcs' => "0",'server.1.retryMaxCount' => "3",'server.1.retryTimeOut' => "0",'server.1.specialInterop' => "standard",'server.2.expires' => "300",'server.2.expires.lineSeize' => "30",'server.2.expires.overlap' => "60",'server.2.lcs' => "0",'server.2.retryMaxCount' => "3",'server.2.retryTimeOut' => "0",'server.2.specialInterop' => "standard",'displayName' => "",'address' => "",'label' => "",'auth.userId' => "",'auth.password' => "",'lineKeys' => "1",'callsPerLineKey' => "1",'server.1.address' => "",'server.1.port' => "5060",'server.1.transport' => "DNSnaptr",'server.2.address' => "",'server.1.register' => "0",'server.2.register' => "0",'server.2.port' => "5060",'server.2.transport' => "DNSnaptr"
);
public static $version = '4.0.9';
public static $boot_major = '5';
public static $devices = Array(
'SPIP' => Array(
'321','331','335','450','550','560','650','670'
)
);
public function reg () {
return ($this->regInfo);
}
}
?>