psetting('HANDSET_' . $i . '_DND', 0); ##################################################################### # Handset to line mapping ##################################################################### psetting('USER_VOIP_LINE_PP' . $i, $i); psetting('CALL_GROUPS' . $i, pow(2, $i) + 1); ##################################################################### # Feature codes ##################################################################### setting('FWD_ON_BUSY_ACT_', $i, '""'); setting('FWD_ON_BUSY_DEACT_', $i, '""'); setting('FWD_ON_NO_ANSWER_ACT_', $i, '""'); setting('FWD_ON_NO_ANSWER_DEACT_', $i, '""'); setting('FWD_UNCOND_ACT_', $i, '"*2"'); setting('FWD_UNCOND_DEACT_', $i, '"*2*"'); psetting('COMMON_PHONEBOOK', '1'); } foreach ($users as $i => $user) { ##################################################################### # Override provisioning parameters (group profile) ##################################################################### $param_count = 0; if (!$user['nobody_index']) { $prov_params = null; $GS_ProvParams = gs_get_prov_params_obj($phone_type); if ($GS_ProvParams->set_user($user['user'])) { if ($GS_ProvParams->retrieve_params($phone_type, array('{GS_PROV_HOST}' => gs_get_conf('GS_PROV_HOST'), '{GS_P_PBX}' => $pbx, '{GS_P_EXTEN}' => $user['ext'], '{GS_P_ROUTE_PREFIX}' => $hp_route_prefix, '{GS_P_USER}' => $user['user']))) { $prov_params = $GS_ProvParams->get_params(); } } if (!is_array($prov_params)) {
##################################################################### $prov_params = @gs_user_prov_params_get($user['user'], $phone_type); if (!is_array($prov_params)) { gs_log(GS_LOG_WARNING, 'Failed to get provisioning parameters (user)'); } else { foreach ($prov_params as $p) { if ($p['index'] === null || $p['index'] == -1) { # not an array if (!array_key_exists($p['param'], $settings)) { # don't set unknown parameters because the order is important gs_log(GS_LOG_NOTICE, "User prov. param \"{$param_name}\": Unknown parameter"); continue; } gs_log(GS_LOG_DEBUG, 'Overriding user prov. param "' . $p['param'] . '": "' . $p['value'] . '"'); //setting( $p['param'], null , $p['value'] ); psetting($p['param'], $p['value']); } else { # array gs_log(GS_LOG_NOTICE, 'User prov. param "' . $p['param'] . '"[' . $p['index'] . ']: Grandstream does not support arrays"'); //gs_log( GS_LOG_DEBUG, 'Overriding user prov. param "'.$p['param'].'"['.$p['index'].']: "'.$p['value'].'"' ); //setting( $p['param'], $p['index'], $p['value'] ); } } } unset($prov_params); ##################################################################### # create BODY ##################################################################### $body = _settings_out(); ##################################################################### # create HEADER
psetting('firmware_status', $prov_url_snom . 'sw-update.php?m=' . $mac . '&u=' . $user['name']); # http, https, tftp are supported # default: /snom360/snom360-firmware.htm, /snom370/snom370-firmware.htm } else { psetting('update_policy', 'settings_only'); psetting('firmware_status', ''); } ##################################################################### # UI Strings ##################################################################### psetting('calling_title', 'lang_calling'); psetting('connected_title', 'lang_connected'); psetting('disconnected_title', 'lang_terminated_finished'); psetting('ringing_title', 'lang_ringing'); psetting('held_by_title', 'lang_held_by'); psetting('enter_number_title', 'lang_enter_number'); /* if (preg_match('/snom3[0-9]0-SIP\s+(\d+)\.(\d+)\.(\d+)/', $ua, $m)) { if ((int)$m[1]===7 && (int)$m[2]===1 && (int)$m[3]===19) { # 7.1.19 is a beta firmware which has English strings only if (strToLower(subStr(gs_get_conf('GS_INTL_LANG'),0,2))==='de') { psetting('calling_title' , 'Rufaufbau'); psetting('connected_title' , 'Verbunden'); psetting('disconnected_title', 'Getrennt'); psetting('ringing_title' , 'Anruf'); psetting('held_by_title' , 'Gehalten'); psetting('enter_number_title', 'Nummer eingeben'); } } } */
psetting($key_name.' label', $softkey['label' ], true, $dynamic); } } ##################################################################### # SIP ##################################################################### psetting('sip screen name' , $user_ext .' '. mb_subStr($user['firstname'],0,1) .'. '. $user['lastname'], true, $dynamic); psetting('sip display name' , $user['firstname'].' '.$user['lastname'], true, $dynamic); psetting('sip user name' , $user_ext, true, $dynamic); psetting('sip auth name' , $user_ext, true, $dynamic); psetting('sip password' , $user['secret'], true, $dynamic); psetting('sip registrar ip' , $host, true, $dynamic); psetting('sip outbound proxy' , ($sip_proxy_and_sbc['sip_proxy_from_wan'] != '' ? $sip_proxy_and_sbc['sip_proxy_from_wan'] : $host), true, $dynamic ); psetting('sip proxy ip' , $host, true, $dynamic); ##################################################################### # other settings ##################################################################### /* #setting('language', 0, $prov_url_aastra .'lang_en.txt'); # English. Default setting('language', 1, $prov_url_aastra .'lang/lang_de.txt'); setting('language', 2, $prov_url_aastra .'lang/lang_fr.txt'); setting('language', 3, $prov_url_aastra .'lang/lang_es.txt'); setting('language', 4, $prov_url_aastra .'lang/lang_it.txt'); # max. 4 custom languages! #setting('language', 4, $prov_url_aastra .'lang/lang_fr_ca.txt'); #setting('language', 4, $prov_url_aastra .'lang/lang_es_mx.txt'); psetting('language', '1');
$softkey['label'] = __('Umleit.'); } break; case '_login': $softkey['function'] = 'xml'; $softkey['label'] = __('Login'); if ($user['nobody_index']) { $softkey['data'] = $prov_url_aastra . 'login.php?a=login'; } else { $softkey['data'] = $prov_url_aastra . 'login.php'; } break; } psetting($key_name . ' type', $softkey['function'], true); if (isset($softkey['data'])) { psetting($key_name . ' value', $softkey['data'], true); } if (isset($softkey['label'])) { psetting($key_name . ' label', $softkey['label'], true); } } } echo '</AastraIPPhoneConfiguration>', "\n"; ##################################################################### # output ##################################################################### if (!headers_sent()) { # avoid chunked transfer-encoding header('Content-Length: ' . @ob_get_length()); } @ob_flush();
##################################################################### # other settings ##################################################################### psetting('admin password', '22222'); psetting('user password', ''); psetting('force web recovery mode disabled', '0'); psetting('tos sip', '26'); psetting('tos rtp', '46'); psetting('tos rtcp', ''); psetting('upnp manager', '0'); psetting('upnp gateway', '0.0.0.0'); psetting('upnp mapping lines', '0'); //Get callwaiting settings //FIXME //$callwaiting = (int)$db->executeGetOne( 'SELECT `active` FROM `callwaiting` WHERE `user_id`='. $user_id ); //psetting('call waiting', ($callwaiting ? '1' : '0') ); psetting('call waiting', '1'); /* #setting('language', 0, $prov_url_aastra .'lang_en.txt'); # English. Default setting('language', 1, $prov_url_aastra .'lang/lang_de.txt'); setting('language', 2, $prov_url_aastra .'lang/lang_fr.txt'); setting('language', 3, $prov_url_aastra .'lang/lang_es.txt'); setting('language', 4, $prov_url_aastra .'lang/lang_it.txt'); # max. 4 custom languages! #setting('language', 4, $prov_url_aastra .'lang/lang_fr_ca.txt'); #setting('language', 4, $prov_url_aastra .'lang/lang_es_mx.txt'); psetting('language', '1'); */ ##################################################################### # Override provisioning parameters (group profile) ##################################################################### $prov_params = null;
#343 = Deutschland ##################################################################### # Security settings ##################################################################### psetting('http_username', gs_get_conf('GS_SNOM_PROV_M9_HTTP_USER')); psetting('http_password', gs_get_conf('GS_SNOM_PROV_M9_HTTP_PASS')); psetting('base_pin', gs_get_conf('GS_SNOM_PROV_M9_BASE_PIN')); psetting('session_timeout', '360'); psetting('http_port', '80'); psetting('https_port', '443'); psetting('http_client_user', ''); psetting('http_client_password', ''); psetting('http_proxy_user', ''); psetting('http_proxy_password', ''); psetting('emergency_proxy', ''); psetting('emergency_numbers', ''); ##################################################################### # USER settings ##################################################################### for ($i = 1; $i < 10; ++$i) { setting('user_active', $i, 'off'); } foreach ($users as $i => $user) { setting('user_active', $i, 'on'); setting('user_realname', $i, $user['ext'] . ' ' . mb_subStr($user['firstname'], 0, 1) . '. ' . $user['lastname']); setting('user_name', $i, $user['ext']); setting('user_host', $i, $user['host']); setting('user_outbound', $i, ''); setting('user_authname', $i, $user['ext']); setting('user_pass', $i, $user['secret']); setting('user_mailbox', $i, $user['mailbox']);