function get_phone_data($macaddress, $qpass = false, $nonepass = false) { global $host, $sag, $tmp; // if(filemtime($tmp.'provcache-!!') > time()-600) { // $provdata = unserialize(file_get_contents($tmp.'provcache-!!')); // if (! is_array($provdata)) { // {global $debug; $debug[] = array(level=>false,status=>'problem',file=>__FILE__.":".__LINE__,log=>'('. __FUNCTION__ .') '." Loaderror: ".$tmp."provcache-!!");} // return(false); // } // } else { $ret = get_all_dbs($host); foreach ($ret['res'] as $key => $value) { if (stristr($value, 'account/')) { $res = get_entry($value, '/_design/devices/_view/listing_by_macaddress'); //print_r($res); if ($res['err']) { show_debug("Get macaddress_view Error:" . $res['err']); continue; } else { // if(! $ph_dat['devices']) $ph_dat['devices'] = json_decode(json_encode($res['res']->rows), true); foreach ($res['res']->rows as $mac) { $mac->value->account = $value; $mac->value->mac = $mac->key; $provdata[$mac->id] = $mac->value; } } } } // file_put_contents($tmp.'provcache-!!',serialize($provdata)); // } //print_r($provdata); foreach ($provdata as $v) { if (stristr(str_replace(":", "", $macaddress), str_replace(":", "", $v->mac))) { $prov[] = $v; } /* array all devices if owner too */ if ($v->owner) { $devices[$v->owner] = $v; } } foreach ($prov as $k => $val) { //echo $prov[$k]->account." , ".$prov[$k]->pvt_account_id."\n"; $ph_account = get_entry($prov[$k]->account, $prov[$k]->pvt_account_id); $ph_dat['account'][$k] = json_decode(json_encode($ph_account['res']), true); //print_r($ph_account); $ph_users[$k] = get_entry($prov[$k]->account, '/_design/users/_view/crossbar_listing'); /* OBJECT2ARRAY */ $ph_user[$k] = json_decode(json_encode($ph_users[$k]['res']->rows), true); //print_r($ph_user[$k]); } $ph_dat['devices'] = json_decode(json_encode($devices), true); //print_r($ph_dat['devices']); //print_r($prov); // return fase if qpass enabled and wrong ['provision_enabled'] //{global $debug; $debug[] = array(level=>'d',status=>'info',file=>__FILE__.":".__LINE__,log=>'('. __FUNCTION__ .') '." DEBUG: ".$ph_dat['account'][0]['provision']['provision_enabled']." == false || ".$ph_dat['account'][0]['provision']['urlpass']." == false || ".$ph_dat['account'][0]['provision']['urlpass']." != $qpass) && $nonepass");} if (($ph_dat['account'][0]['provision']['provision_enabled'] == false || $ph_dat['account'][0]['provision']['urlpass'] == false || $ph_dat['account'][0]['provision']['urlpass'] != $qpass) && $nonepass == false) { /* fraud? */ sleep(20); return false; } $ph_dat['prov'] = json_decode(json_encode($prov), true); // take template of the first account ## get account and userdata (f_path = /ui/snom/3xx/300) $ph_dat['template'] = get_groundsettings(array('0' => 'ui', '1' => $prov[0]->provision->endpoint_brand, '2' => $prov[0]->provision->endpoint_family, '3' => $prov[0]->provision->endpoint_model), 'object'); /* OBJECT2ARRAY */ foreach ($ph_user as $account => $users) { foreach ($users as $k => $v) { $ph_dat['users'][$account][$v['id']] = $v; } } global $debug; $debug[] = array(level => 'd', status => 'info', file => __FILE__ . ":" . __LINE__, log => '(' . __FUNCTION__ . ') ' . " Get Phone & Userdata from bigCouch"); //print_r($ph_dat); //exit; return $ph_dat; }
$dbconfig = db_config(); // min seconds for core reload (because don't to quickly reload the core) $fs = count($dbconfig['ecallmgr']->default->fs_nodes); do_log("Nodes possible to register:" . $fs, 'v', __FILE__, __FUNCTION__, __LINE__); $myip4 = get_ip(4); $conti = false; foreach ($dbconfig['ecallmgr']->default->fs_nodes as $key => $nam) { $name = explode("@", $nam); if (gethostbyname($name[1]) == $myip4) { $conti = 1; $match = $key; } } if ($conti) { do_log("Our part of {$fs} is " . $dbconfig['ecallmgr']->default->fs_nodes[$match], 'v', __FILE__, __FUNCTION__, __LINE__); $ret = get_all_dbs($host); foreach ($ret['res'] as $key => $value) { if (stristr($value, 'numbers/')) { $res = get_entry($value, '/_design/numbers/_view/regexternal_modified'); if ($res['err']) { do_log("Get regexternal_view Error:" . $res['err']); continue; } else { foreach ($res['res']->rows as $num) { $num->value->db = $value; $result[$num->id] = $num->value; } } } } foreach ($result as $value) {