Example #1
0
function _snomAppCmp($appv1, $appv2)
{
    //$appv1 = _snom_normalize_version( $appv1 );  # we trust it has been normalized!
    $appv2 = _snom_normalize_version($appv2);
    return strCmp($appv1, $appv2);
}
Example #2
0
}
$ua = trim(@$_SERVER['HTTP_USER_AGENT']);
if (preg_match('/^Mozilla\\/\\d\\.\\d\\s*\\(compatible;\\s*/i', $ua, $m)) {
    $ua = rTrim(subStr($ua, strLen($m[0])), ' )');
}
gs_log(GS_LOG_DEBUG, "Snom model {$ua} found.");
if (preg_match('/snom-m3/i', $ua, $m)) {
    $phone_model = 'm3';
} else {
    $phone_model = 'unknown';
}
$phone_type = 'snom-' . $phone_model;
# e.g. "snom-m3"
# to be used when auto-adding the phone
$fw_vers = preg_match('/snom-m3-SIP\\/(\\d+\\.\\d+)/', $ua, $m) ? $m[1] : '0.0';
$fw_vers_nrml = _snom_normalize_version($fw_vers);
gs_log(GS_LOG_DEBUG, "Snom phone \"{$mac}\" asks for settings (UA: ...\"{$ua}\") - model: {$phone_model}");
require_once GS_DIR . 'inc/db_connect.php';
require_once GS_DIR . 'inc/nobody-extensions.php';
include_once GS_DIR . 'inc/gs-fns/gs_callforward_get.php';
include_once GS_DIR . 'inc/gs-fns/gs_prov_params_get.php';
include_once GS_DIR . 'inc/gs-fns/gs_user_prov_params_get.php';
$settings = array();
function setting($name, $idx, $val, $attrs = null, $writeable = false)
{
    global $settings;
    if ($idx === null || $idx === false || $idx < 0) {
        $settings[$name] = array('v' => $val, 'w' => $writeable, 'a' => $attrs);
    } else {
        if (!array_key_exists($name, $settings) || !is_array($settings[$name])) {
            $settings[$name] = array('_is_array' => true);
Example #3
0
 $c = new CronRule();
 $ok = $c->set_Rule($job['minute'] . ' ' . $job['hour'] . ' ' . $job['day'] . ' ' . $job['month'] . ' ' . $job['dow']);
 if (!$ok) {
     gs_log(GS_LOG_WARNING, "Phone {$mac}: Job " . $job['id'] . " has a bad cron rule (" . $c->errMsg . "). Deleting ...");
     $db->execute('DELETE FROM `prov_jobs` WHERE `id`=' . (int) $job['id'] . ' AND `running`=0');
     unset($c);
     continue;
 }
 if (!$c->validate_time()) {
     gs_log(GS_LOG_DEBUG, "Phone {$mac}: Job " . $job['id'] . ": Rule does not match");
     unset($c);
     continue;
 }
 unset($c);
 gs_log(GS_LOG_DEBUG, "Phone {$mac}: Job " . $job['id'] . ": Rule match");
 $fw_new_vers = _snom_normalize_version($job['data']);
 if (subStr($fw_new_vers, 0, 2) == '00') {
     gs_log(GS_LOG_NOTICE, "Phone {$mac}: Bad new fw version {$fw_new_vers}");
     $db->execute('DELETE FROM `prov_jobs` WHERE `id`=' . (int) $job['id'] . ' AND `running`=0');
     continue;
 }
 $firmware_name = 'm9-' . $fw_new_vers . '.bin';
 if (!file_exists($firmware_path . $firmware_name) || !is_readable($firmware_path . $firmware_name)) {
     gs_log(GS_LOG_NOTICE, "Phone {$mac}: " . $firmware_path . $firmware_name . " not exits or not readable");
     $db->execute('DELETE FROM `prov_jobs` WHERE `id`=' . (int) $job['id'] . ' AND `running`=0');
     continue;
 }
 if ($fw_new_vers == $fw_vers_nrml) {
     gs_log(GS_LOG_NOTICE, "Phone {$mac}: FW {$fw_vers_nrml} == {$fw_new_vers}");
     $db->execute('DELETE FROM `prov_jobs` WHERE `id`=' . (int) $job['id'] . ' AND `running`=0');
     continue;