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);
 }
Esempio n. 3
0
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();
}