function createOrganizationAsterisk($domain, $country) { require_once "apps/features_code/libs/paloSantoFeaturesCode.class.php"; //validamos que la organizacion que intentamos crear realmente exista $query = "SELECT code FROM organization WHERE domain=?"; $result = $this->_DB->getFirstRowQuery($query, true, array($domain)); if ($result == false) { $this->errMsg = $result === false ? $this->_DB->errMsg : _tr("Organization doesn't exist"); } else { $orgCode = $result["code"]; } $pFC = new paloFeatureCodePBX($this->_DB, $domain); // 1.-Seateamos las configuracions generales para la organizacion en la base de datos // (sip_settings,iax_settings,voicemail_settings,globals,features_codes) // 2.-Creamos dentro de asterisk directorios que van a ser usados por la organizacion // 3.-Inclumos los archivos recien creados en con la sentencias include dentro del archivo // extensions.conf y extensions_globals.conf // TODO: No se escriben los archivos de configuracion de la organizacion dentro del plan de marcado // hasta que el superadmin cree al admin de la organizacion recien creada if ($this->setGeneralSettingFirstTime($domain, $orgCode, $country)) { if ($pFC->insertPaloFeatureDB()) { if ($this->setReloadDialplan($domain)) { //realizamos la $sComando = '/usr/bin/elastix-helper asteriskconfig createOrganizationAst ' . escapeshellarg($domain) . ' 2>&1'; $output = $ret = NULL; exec($sComando, $output, $ret); if ($ret != 0) { $this->errMsg = implode('', $output); return FALSE; } return true; } else { $this->errMsg = _tr("Error trying set organizations properties") . $this->errMsg; } } else { $this->errMsg = _tr("Error trying set Features Codes") . $pFC->errMsg; } } else { $this->errMsg = _tr("Error trying set general settings asterisk. ") . $this->errMsg; } return false; }
function getAdditionalsDestinations() { require_once "apps/features_code/libs/paloSantoFeaturesCode.class.php"; require_once "apps/shortcut_apps/libs/paloSantoShortcutApps.class.php"; $pFC = new paloFeatureCodePBX($this->_DB, $this->domain); $arrFC = $pFC->getAllFeaturesCode($this->domain); $FCs = array(); $SAs = array(); foreach ($arrFC as $kfc => $fc) { if ($fc['estado'] == "enabled") { $FCs[] = array("label" => $fc['description'], "code" => isset($fc['code']) ? $fc['code'] : $fc['default_code']); } } asort($FCs); $pSA = new paloSantoShortcutApps($this->_DB, $this->domain); $arrSA = $pSA->getShortcutApps($this->domain); foreach ($arrSA as $ksa => $sa) { $SAs[] = array("label" => $sa['description'], "code" => $sa['exten']); } asort($SAs); return array("fc" => $FCs, "sa" => $SAs); }
function get_default_code($smarty, $module_name, &$pDB, $arrConf, $credentials) { $jsonObject = new PaloSantoJSON(); $feature = getParameter("fc_name"); if ($credentials['userlevel'] == 'superadmin') { $domain = getParameter('organization'); } else { $domain = $credentials['domain']; } $pFC = new paloFeatureCodePBX($pDB, $domain); if (!$pFC->validateFeatureCodePBX()) { $jsonObject->set_error(_tr("Invalid Organization")); } else { $arrFC = $pFC->getFeaturesCode($domain, $feature); if ($arrFC == FALSE) { $jsonObject->set_error(_tr($pFC->errMsg)); } else { $jsonObject->set_message($arrFC); } } return $jsonObject->createJSON(); }