Exemple #1
0
 # is it a valid user id?
 #
 if ($user['id'] > 0) {
     $num = (int) $db->executeGetOne('SELECT COUNT(*) FROM `users` WHERE `id`=' . (int) $user['id']);
 } else {
     $num = 0;
 }
 if ($num < 1) {
     $users[$i]['id'] = (int) @gs_prov_assign_default_nobody($db, $mac_addr, null);
     if ($users[$i]['id'] < 1) {
         _settings_err('Failed to assign nobody account to phone ' . $mac_addr);
     }
 }
 # who is logged in at that phone?
 #
 $user = @gs_prov_get_user_info($db, $user['id']);
 if (!is_array($users[$i])) {
     _settings_err('DB error.');
 }
 $user['id'] = $users[$i]['id'];
 $users[$i]['name'] = $user['name'];
 $users[$i]['mailbox'] = $user['mailbox'];
 $users[$i]['secret'] = $user['secret'];
 $users[$i]['nobody_index'] = $user['nobody_index'];
 $users[$i]['user'] = $user['user'];
 $users[$i]['firstname'] = $user['firstname'];
 $users[$i]['lastname'] = $user['lastname'];
 # get host for user
 #
 $users[$i]['host'] = @gs_prov_get_host_for_user_id($db, $user['id']);
 if (!$users[$i]['host']) {
    $user_id = @gs_prov_assign_default_nobody($db, $mac, null);
    if ($user_id < 1) {
        _settings_err('Failed to assign nobody account to phone ' . $mac);
    }
}
# get host for user
#
$host = @gs_prov_get_host_for_user_id($db, $user_id);
if (!$host) {
    _settings_err('Failed to find host.');
}
$pbx = $host;
# $host might be changed if SBC configured
# who is logged in at that phone?
#
$user = @gs_prov_get_user_info($db, $user_id);
if (!is_array($user)) {
    _settings_err('DB error.');
}
# store the current firmware version in the database:
#
@$db->execute('UPDATE `phones` SET ' . '`firmware_cur`=\'' . $db->escape($fw_vers_nrml) . '\' ' . 'WHERE `mac_addr`=\'' . $db->escape($mac) . '\'');
# firmware update
#
$firmware_prefix = '';
if (!gs_get_conf('GS_GRANDSTREAM_PROV_FW_UPDATE')) {
    gs_log(GS_LOG_DEBUG, 'Grandstream firmware update not enabled');
} elseif (in_array($phone_model, array('bt200', 'bt201', 'gxp280', 'gxp1200', 'gxp2000', 'gxp2010', 'gxp2020', 'gxv3000', 'gxv3005'), true)) {
    # get phone_id
    $phone_id = (int) $db->executeGetOne('SELECT `id` FROM `phones` WHERE `mac_addr`=\'' . $db->escape($mac) . '\'');
    # do we have to update to a default version?
     if ($user_id < 1) {
         gs_log(GS_LOG_WARNING, "Failed to assign nobody account to phone {$mac}");
         _dls_response_cleanup($nonce, 'DB error');
     }
 }
 # get host for user
 #
 $host = @gs_prov_get_host_for_user_id($DBM, $user_id);
 if (!$host) {
     _dls_response_cleanup($nonce, 'Error. See log for details.');
 }
 $pbx = $host;
 # $host might be changed if SBC configured
 # who is logged in at that phone?
 #
 $user = @gs_prov_get_user_info($DBM, $user_id);
 if (!is_array($user)) {
     _dls_response_cleanup($nonce, 'DB error');
 }
 # store the current firmware version in the database:
 #
 @$DBM->execute('UPDATE `phones` SET ' . '`firmware_cur`=\'' . $DBM->escape($sw_vers) . '\' ' . 'WHERE `mac_addr`=\'' . $DBM->escape($mac) . '\'');
 # store the user's current IP address in the database:
 #
 if (!@gs_prov_update_user_ip($DBM, $user_id, $requester['phone_ip'])) {
     gs_log(GS_LOG_WARNING, 'Failed to store current IP addr of user ID ' . $user_id);
 }
 # get SIP proxy to be set as the phone's outbound proxy
 #
 $sip_proxy_and_sbc = gs_prov_get_wan_outbound_proxy($DBM, $requester['phone_ip'], $user_id);
 if ($sip_proxy_and_sbc['sip_server_from_wan'] != '') {