Newer
Older
ubFramework / Provisioning / docroot / polycom.old / getData_Process.php
@Christopher W. Olsen Christopher W. Olsen on 10 Dec 2017 22 KB iSinc
<?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);
  }
}

?>