$users[$i]['id'] = null; $users[$i]['nobody_index'] = null; } $db = gs_db_master_connect(); if (!$db) { gs_log(GS_LOG_WARNING, "Snom M3 phone asks for settings - Could not connect to DB"); _settings_err('Could not connect to DB.'); } # do we know the phone? # $users[0]['id'] = (int) @gs_prov_user_id_by_mac_addr($db, $mac); # if found the first user try to find the rest # if not add as many users as configured if ($users[0]['id'] > 0) { for ($i = 1; $i < 8; ++$i) { $user_id = (int) @gs_prov_user_id_by_mac_addr($db, $mac . '-' . ($i + 1)); if ($user_id > 0) { $users[$i]['id'] = $user_id; } } } else { if (!GS_PROV_AUTO_ADD_PHONE) { gs_log(GS_LOG_NOTICE, "New Snom M3 phone {$mac} not added to DB. Enable PROV_AUTO_ADD_PHONE"); _settings_err('Unknown phone. (Enable PROV_AUTO_ADD_PHONE in order to auto-add)'); } gs_log(GS_LOG_NOTICE, "Adding new Snom M3 phone {$mac} to DB"); $users[0]['id'] = (int) @gs_prov_add_phone_get_nobody_user_id($db, $mac, $phone_type, $requester['phone_ip']); if ($users[0]['id'] < 1) { gs_log(GS_LOG_WARNING, "Failed to add main nobody user for new phone {$mac}"); _settings_err('Failed to add main nobody user for new phone.'); } else {
$data = ''; foreach ($settings as $name => $val) { $val = preg_replace("/([^A-Za-z0-9.*_\\-])/e", "('\$1' == ' ') ? '+' : sprintf('%%%02x',ord('\$1'))", $val); $data .= $name . '=' . $val . '&'; } $data .= 'gnkey=0b82'; return $data; } $db = gs_db_master_connect(); if (!$db) { gs_log(GS_LOG_WARNING, "Grandstream phone asks for settings - Could not connect to DB"); _settings_err('Could not connect to DB.'); } # do we know the phone? # $user_id = @gs_prov_user_id_by_mac_addr($db, $mac); if ($user_id < 1) { if (!GS_PROV_AUTO_ADD_PHONE) { gs_log(GS_LOG_NOTICE, "New phone {$mac} not added to DB. Enable PROV_AUTO_ADD_PHONE"); _settings_err('Unknown phone. (Enable PROV_AUTO_ADD_PHONE in order to auto-add)'); } gs_log(GS_LOG_NOTICE, "Adding new Grandstream phone {$mac} to DB"); $user_id = @gs_prov_add_phone_get_nobody_user_id($db, $mac, $phone_type, $requester['phone_ip']); if ($user_id < 1) { gs_log(GS_LOG_WARNING, "Failed to add nobody user for new phone {$mac}"); _settings_err('Failed to add nobody user for new phone.'); } } # is it a valid user id? # $num = (int) $db->executeGetOne('SELECT COUNT(*) FROM `users` WHERE `id`=' . $user_id);
# $users[1]['id'] = (int) @gs_prov_user_id_by_mac_addr($db, $mac); if ($users[1]['id'] < 1) { if (!GS_PROV_AUTO_ADD_PHONE) { gs_log(GS_LOG_NOTICE, "New phone {$mac} not added to DB. Enable PROV_AUTO_ADD_PHONE"); _settings_err('Unknown phone. (Enable PROV_AUTO_ADD_PHONE in order to auto-add)'); } gs_log(GS_LOG_NOTICE, "Adding new Snom M9 phone {$mac} to DB"); $users[1]['id'] = (int) @gs_prov_add_phone_get_nobody_user_id($db, $mac, $phone_type, $requester['phone_ip']); if ($users[1]['id'] < 1) { gs_log(GS_LOG_WARNING, "Failed to add main nobody user for new phone {$mac}"); _settings_err('Failed to add main nobody user for new phone.'); } } for ($i = 2; $i <= gs_get_conf('GS_SNOM_PROV_M9_ACCOUNTS'); ++$i) { $users[$i]['id'] = (int) @gs_prov_user_id_by_mac_addr($db, $mac . '-' . $i); if ($users[$i]['id'] < 1) { if (!GS_PROV_AUTO_ADD_PHONE) { gs_log(GS_LOG_NOTICE, "New phone {$mac} not added to DB. Enable PROV_AUTO_ADD_PHONE"); _settings_err('Unknown phone. (Enable PROV_AUTO_ADD_PHONE in order to auto-add)'); } gs_log(GS_LOG_NOTICE, 'Adding new virtual Snom M9 phone ' . $mac . '-' . $i . ' to DB'); $users[$i]['id'] = (int) @gs_prov_add_phone_get_nobody_user_id($db, $mac . '-' . $i, $phone_type, $requester['phone_ip']); if ($users[$i]['id'] < 1) { gs_log(GS_LOG_WARNING, "Failed to add nobody user for new phone {$mac}-{$i}"); _settings_err('Failed to add nobody user for new phone.'); } } } foreach ($users as $i => $user) { # create virtual mac address