public function addPluginData() { parent::addPluginData(); $device = $this->base; if (isset($device['plugins']['endpointdevice']['mac_address']) && $device['plugins']['endpointdevice']['mac_address'] != "") { include_once MODPATH . 'endpointmanager-1.1' . DIRECTORY_SEPARATOR . "functions.php"; $endpoint = new endpointman(); $phone_info = array(); if ($endpoint->mac_check_clean($device['plugins']['endpointdevice']['mac_address'])) { $dns = $device['User']['Location']['domain']; $key = explode("|", $device['plugins']['endpointdevice']['brand']); $phone_info['brand'] = $key[0]; $phone_info['family'] = $key[1]; $phone_info['model'] = $key[2]; $phone_info['mac'] = $endpoint->mac_check_clean($device['plugins']['endpointdevice']['mac_address']); $phone_info['line'][1]['line'] = 1; $phone_info['line'][1]['ext'] = $device['plugins']['sip']['username']; $phone_info['line'][1]['description'] = $device['plugins']['endpointdevice']['display_name']; $phone_info['line'][1]['secret'] = $device['plugins']['sip']['password']; $phone_info['line'][1]['subscribe_mwi'] = 1; // Todo - map this properly to voicemail boxes $phone_info['host'] = $dns; $phone_info['port'] = 5060; $phone_info['options'] = array(); // Is a Redbox or proxy in use? if (arr::get($device, 'plugins', 'endpointdevice', 'proxy_ip')) { $phone_info['line'][1]['options']['enable_outbound_proxy_server'] = 1; $phone_info['line'][1]['options']['outbound_proxy_server'] = arr::get($device, 'plugins', 'endpointdevice', 'proxy_ip'); $phone_info['line'][1]['options']['outbound_proxy_server_port'] = ($port = arr::get($device, 'plugins', 'endpointdevice', 'proxy_port')) ? $port : 5060; $vlan_enable = arr::get($device, 'plugins', 'endpointdevice', 'vlan'); $phone_info['options']['voice_vlan_enable'] = $vlan_enable ? $vlan_enable : '0'; $phone_info['options']['voice_vlan_id'] = ($voice_vlan = arr::get($device, 'plugins', 'endpointdevice', 'voice_vlan')) ? $voice_vlan : '0'; $phone_info['options']['data_vlan_enable'] = $vlan_enable ? $vlan_enable : '0'; $phone_info['options']['data_vlan_id'] = ($data_vlan = arr::get($device, 'plugins', 'endpointdevice', 'data_vlan')) ? $data_vlan : '4095'; } else { $phone_info['line'][1]['options']['enable_outbound_proxy_server'] = 0; $phone_info['options']['voice_vlan_enable'] = 0; $phone_info['options']['data_vlan_enable'] = 0; } $phone_info['options']['update_mode'] = 4; $phone_info['options']['update_frequency'] = 5; // every 5 minutes $phone_info['options']['update_method'] = 'http'; // todo: make this configurable $phone_info['options']['update_server'] = 'http://' . $dns . '/provision/'; // todo: make this match blue.box, not the DNS name? $phone_info['timezone'] = "-8"; $endpoint->prepare_configs($phone_info); } else { return false; } } return true; }
<?php echo form::open_section('Auto-Provisioning'); ?> <div class="field"> <?php echo form::label('endpointdevice[mac_address]', 'MAC Address:'); echo form::input('endpointdevice[mac_address]'); ?> </div> <div class="field"> <?php echo form::label('endpointdevice[brand]', 'Phone:'); include_once MODPATH . 'endpointmanager-1.1' . DIRECTORY_SEPARATOR . "functions.php"; $endpoint = new endpointman(); $list = $endpoint->get_devices_list(); echo form::dropdown('endpointdevice[brand]', $list); ?> </div> <div class="field"> <?php echo form::label('endpointdevice[display_name]', 'Display Name:'); echo form::input('endpointdevice[display_name]'); ?> </div> <?php echo form::close_section();