function _gs_prov_phone_checkcfg_by_ip_do($ip, $reboot = true) { if (!preg_match('/^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/', $ip)) { return false; } $chktype = _gs_prov_phone_checkcfg_getphonetype("ip", $ip); gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ip \"{$ip}\" and type \"{$chktype}\""); if (gs_get_conf('GS_SNOM_PROV_ENABLED') && ($chktype == "snom3xx" || $chktype == "unknown")) { gs_log(GS_LOG_DEBUG, "about to gs_prov_phone_checkcfg_by_ip_do_snom for ip \"{$ip}\""); _gs_prov_phone_checkcfg_by_ip_do_snom($ip, $reboot); } if (gs_get_conf('GS_SNOM_PROV_M3_ACCOUNTS') && ($chktype == "snomm3" || $chktype == "unknown")) { gs_log(GS_LOG_DEBUG, "about to gs_prov_phone_checkcfg_by_ip_do_snom_m3 for ip \"{$ip}\""); _gs_prov_phone_checkcfg_by_ip_do_snom_m3($ip, $reboot); } if (gs_get_conf('GS_SIEMENS_PROV_ENABLED') && ($chktype == "siemens" || $chktype == "unknown")) { gs_log(GS_LOG_DEBUG, "about to gs_prov_phone_checkcfg_by_ip_do_siemens for ip \"{$ip}\""); _gs_prov_phone_checkcfg_by_ip_do_siemens($ip, $reboot); } if (gs_get_conf('GS_AASTRA_PROV_ENABLED') && ($chktype == "aastra" || $chktype == "unknown")) { gs_log(GS_LOG_DEBUG, "about to gs_prov_phone_checkcfg_by_ip_do_aastra for ip \"{$ip}\""); _gs_prov_phone_checkcfg_by_ip_do_aastra($ip, $reboot); } if (gs_get_conf('GS_GRANDSTREAM_PROV_ENABLED') && ($chktype == "grandstream" || $chktype == "unknown")) { gs_log(GS_LOG_DEBUG, "about to gs_prov_phone_checkcfg_by_ip_do_grandstream for ip \"{$ip}\""); _gs_prov_phone_checkcfg_by_ip_do_grandstream($ip, $reboot); } if (gs_get_conf('GS_POLYCOM_PROV_ENABLED') && ($chktype == "polycom" || $chktype == "unknown")) { gs_log(GS_LOG_DEBUG, "about to gs_prov_phone_checkcfg_by_ip_do_polycom for ip \"{$ip}\""); _gs_prov_phone_checkcfg_by_ip_do_polycom($ip, $reboot); } if (gs_get_conf('GS_TIPTEL_PROV_ENABLED') && ($chktype == "tiptel" || $chktype == "unknown")) { gs_log(GS_LOG_DEBUG, "about to gs_prov_phone_checkcfg_by_ip_do_tiptel for ip \"{$ip}\""); _gs_prov_phone_checkcfg_by_ip_do_tiptel($ip, $reboot); } //return $err == 0; return true; }
function _gs_prov_phone_checkcfg_by_ip_do($ip, $reboot = true) { if (!preg_match('/^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/', $ip)) { return false; } gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ip \"{$ip}\""); /* $db = @gs_db_slave_connect(); if (! $db) { gs_log(GS_LOG_WARNING, 'Failed to connect to DB'); return false; } $rs = @$db->execute( 'SELECT DISTINCT(`p`.`type`) FROM `users` `u` JOIN `phones` `p` ON (`p`.`user_id`=`u`.`id`) WHERE `u`.`current_ip`=\''. $db->escape($ip) .'\'' ); if (! $rs) { gs_log(GS_LOG_WARNING, 'DB error'); return false; } $is_snom = false; $is_siemens = false; while ($r = $rs->fetchRow()) { $tmp = strToLower($r['type']); if (subStr($tmp,0,4)==='snom') $is_snom = true; elseif (subStr($tmp,0,7)==='siemens') $is_siemens = true; } # no elseif here!: if ($is_snom) { gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ip \"$ip\" (snom)"); _gs_prov_phone_checkcfg_by_ip_do_snom ( $ip, $reboot ); } if ($is_siemens) { gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ip \"$ip\" (siemens)"); _gs_prov_phone_checkcfg_by_ip_do_siemens( $ip, $reboot ); } if (! $is_snom && ! $is_siemens) { # we don't know the type of that phone, just try everything gs_log(GS_LOG_NOTICE, "Not sure how to sync phone"); gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ip \"$ip\" (unknown phone type)"); _gs_prov_phone_checkcfg_by_ip_do_snom ( $ip, $reboot ); _gs_prov_phone_checkcfg_by_ip_do_siemens( $ip, $reboot ); } */ # damn - we did already removed the user id from the phones table if (gs_get_conf('GS_SNOM_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ip_do_snom($ip, $reboot); } if (gs_get_conf('GS_SNOM_PROV_M3_ACCOUNTS')) { _gs_prov_phone_checkcfg_by_ip_do_snom_m3($ip, $reboot); } if (gs_get_conf('GS_SIEMENS_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ip_do_siemens($ip, $reboot); } if (gs_get_conf('GS_AASTRA_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ip_do_aastra($ip, $reboot); } if (gs_get_conf('GS_GRANDSTREAM_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ip_do_grandstream($ip, $reboot); } if (gs_get_conf('GS_TIPTEL_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ip_do_tiptel($ip, $reboot); } //return $err == 0; return true; }