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;
}
Example #2
0
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_POLYCOM_PROV_ENABLED')) {
        _gs_prov_phone_checkcfg_by_ext_do_polycom($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;
}