function _gs_prov_phone_checkcfg_by_ext_do($ext, $reboot = true) { if (!preg_match('/^[\\d]+$/', $ext)) { return new GsError('Extension must be numeric.'); } $chktype = _gs_prov_phone_checkcfg_getphonetype("ext", $ext); gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ext \"{$ext}\" 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_ext_do_snom for ext \"{$ext}\""); _gs_prov_phone_checkcfg_by_ext_do_snom($ext, $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_ext_do_snom_m3 for ext \"{$ext}\""); _gs_prov_phone_checkcfg_by_ext_do_snom_m3($ext, $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_ext_do_siemens for ext \"{$ext}\""); _gs_prov_phone_checkcfg_by_ext_do_siemens($ext, $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_ext_do_aastra for ext \"{$ext}\""); _gs_prov_phone_checkcfg_by_ext_do_aastra($ext, $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_ext_do_grandstream for ext \"{$ext}\""); _gs_prov_phone_checkcfg_by_ext_do_grandstream($ext, $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_ext_do_polycom for ext \"{$ext}\""); _gs_prov_phone_checkcfg_by_ext_do_polycom($ext, $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_ext_do_tiptel for ext \"{$ext}\""); _gs_prov_phone_checkcfg_by_ext_do_tiptel($ext, $reboot); } //return $err == 0; return true; }
function _gs_prov_phone_checkcfg_by_ext_do($ext, $reboot = true) { if (!preg_match('/^[\\d]+$/', $ext)) { return new GsError('Extension must be numeric.'); } gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ext \"{$ext}\""); /* $db = @gs_db_slave_connect(); if (! $db) { gs_log(GS_LOG_WARNING, 'Failed to connect to DB'); return false; } $phone_type = strToLower( (string)@$db->executeGetOne( 'SELECT `p`.`type` FROM `ast_sipfriends` `s` JOIN `phones` `p` ON (`p`.`user_id`=`s`.`_user_id`) WHERE `s`.`name`=\''. $db->escape($ext) .'\'' )); # remember ast_sipfriends.name is unique if (subStr($phone_type,0,4)==='snom') { gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ext \"$ext\" (snom)"); _gs_prov_phone_checkcfg_by_ext_do_snom ( $ext, $reboot ); } elseif (subStr($phone_type,0,7)==='siemens') { gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ext \"$ext\" (siemens)"); _gs_prov_phone_checkcfg_by_ext_do_siemens( $ext, $reboot ); } else { # we don't know the type of that phone, just try everything gs_log(GS_LOG_NOTICE, "Not sure how to sync phone of type \"$phone_type\""); gs_log(GS_LOG_DEBUG, "do phone_checkcfg by ext \"$ext\" (unknown phone type)"); _gs_prov_phone_checkcfg_by_ext_do_snom ( $ext, $reboot ); _gs_prov_phone_checkcfg_by_ext_do_siemens( $ext, $reboot ); } */ // damn - we have already removed the user id from the phones table if (gs_get_conf('GS_SNOM_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ext_do_snom($ext, $reboot); } if (gs_get_conf('GS_SNOM_PROV_M3_ACCOUNTS')) { _gs_prov_phone_checkcfg_by_ext_do_snom_m3($ext, $reboot); } if (gs_get_conf('GS_SIEMENS_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ext_do_siemens($ext, $reboot); } if (gs_get_conf('GS_AASTRA_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ext_do_aastra($ext, $reboot); } if (gs_get_conf('GS_GRANDSTREAM_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ext_do_grandstream($ext, $reboot); } if (gs_get_conf('GS_TIPTEL_PROV_ENABLED')) { _gs_prov_phone_checkcfg_by_ext_do_tiptel($ext, $reboot); } //return $err == 0; return true; }