2012-06-04 14:58:40 +00:00
<? php
/*
FusionPBX
Version: MPL 1.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
2015-01-16 00:21:02 +00:00
Copyright (C) 2008-2015 All Rights Reserved.
2012-06-04 14:58:40 +00:00
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
2014-06-25 17:45:48 +00:00
Luis Daniel Lucio Quiroz <dlucio@okay.com.mx>
2012-06-04 14:58:40 +00:00
*/
include "root.php" ;
2013-07-06 06:03:27 +00:00
require_once "resources/require.php" ;
2013-07-06 05:50:55 +00:00
require_once "resources/check_auth.php" ;
2012-06-04 14:58:40 +00:00
if ( permission_exists ( 'extension_add' ) || permission_exists ( 'extension_edit' )) {
//access granted
}
else {
echo "access denied" ;
exit ;
}
2014-12-10 03:13:46 +00:00
//detect billing app
$billing_app_exists = file_exists ( $_SERVER [ 'DOCUMENT_ROOT' ] . PROJECT_PATH . "/app/billing/app_config.php" );
if ( $billing_app_exists ) {
require_once "app/billing/resources/functions/currency.php" ;
require_once "app/billing/resources/functions/rating.php" ;
}
2014-06-25 17:45:48 +00:00
2013-05-04 00:35:21 +00:00
//add multi-lingual support
require_once "app_languages.php" ;
foreach ( $text as $key => $value ) {
$text [ $key ] = $value [ $_SESSION [ 'domain' ][ 'language' ][ 'code' ]];
}
2012-06-04 14:58:40 +00:00
//set the action as an add or an update
if ( isset ( $_REQUEST [ "id" ])) {
$action = "update" ;
$extension_uuid = check_str ( $_REQUEST [ "id" ]);
}
else {
$action = "add" ;
}
//get the http values and set them as php variables
2013-03-13 05:57:41 +00:00
if ( count ( $_POST ) > 0 ) {
2012-06-04 14:58:40 +00:00
//get the values from the HTTP POST and save them as PHP variables
2014-04-27 07:30:40 +00:00
$extension = str_replace ( ' ' , '-' , check_str ( $_POST [ "extension" ]));
2012-06-04 14:58:40 +00:00
$number_alias = check_str ( $_POST [ "number_alias" ]);
$password = check_str ( $_POST [ "password" ]);
2014-08-08 12:37:06 +00:00
2014-12-10 03:13:46 +00:00
// server verification on account code
if ( if_group ( "superadmin" )) {
2014-08-08 12:37:06 +00:00
$accountcode = $_POST [ "accountcode" ];
}
2014-12-10 03:13:46 +00:00
else if ( if_group ( "admin" ) && $billing_app_exists ) {
2014-08-08 12:37:06 +00:00
$sql_accountcode = "SELECT COUNT(*) as count FROM v_billings WHERE domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' AND type_value='" . $_POST [ "accountcode" ] . "'" ;
$prep_statement_accountcode = $db -> prepare ( check_sql ( $sql_accountcode ));
$prep_statement_accountcode -> execute ();
$row_accountcode = $prep_statement_accountcode -> fetch ( PDO :: FETCH_ASSOC );
2014-11-20 02:34:03 +00:00
if ( $row_accountcode [ 'count' ] > 0 ) {
2014-08-08 12:37:06 +00:00
$accountcode = $_POST [ "accountcode" ];
}
else {
$accountcode = $_SESSION [ 'domain_name' ];
}
unset ( $sql_accountcode , $prep_statement_accountcode , $row_accountcode );
}
2012-06-04 14:58:40 +00:00
$effective_caller_id_name = check_str ( $_POST [ "effective_caller_id_name" ]);
$effective_caller_id_number = check_str ( $_POST [ "effective_caller_id_number" ]);
$outbound_caller_id_name = check_str ( $_POST [ "outbound_caller_id_name" ]);
$outbound_caller_id_number = check_str ( $_POST [ "outbound_caller_id_number" ]);
2014-05-01 04:18:27 +00:00
$emergency_caller_id_name = check_str ( $_POST [ "emergency_caller_id_name" ]);
2012-06-04 14:58:40 +00:00
$emergency_caller_id_number = check_str ( $_POST [ "emergency_caller_id_number" ]);
$directory_full_name = check_str ( $_POST [ "directory_full_name" ]);
$directory_visible = check_str ( $_POST [ "directory_visible" ]);
$directory_exten_visible = check_str ( $_POST [ "directory_exten_visible" ]);
$limit_max = check_str ( $_POST [ "limit_max" ]);
$limit_destination = check_str ( $_POST [ "limit_destination" ]);
2013-04-28 07:24:41 +00:00
$device_uuid = check_str ( $_POST [ "device_uuid" ]);
$device_line = check_str ( $_POST [ "device_line" ]);
2014-05-25 01:43:47 +00:00
$voicemail_password = check_str ( $_POST [ "voicemail_password" ]);
$voicemail_enabled = check_str ( $_POST [ "voicemail_enabled" ]);
$voicemail_mail_to = check_str ( $_POST [ "voicemail_mail_to" ]);
$voicemail_attach_file = check_str ( $_POST [ "voicemail_attach_file" ]);
$voicemail_local_after_email = check_str ( $_POST [ "voicemail_local_after_email" ]);
2012-06-04 14:58:40 +00:00
$user_context = check_str ( $_POST [ "user_context" ]);
$range = check_str ( $_POST [ "range" ]);
$autogen_users = check_str ( $_POST [ "autogen_users" ]);
$toll_allow = check_str ( $_POST [ "toll_allow" ]);
2013-04-02 07:36:28 +00:00
$call_timeout = check_str ( $_POST [ "call_timeout" ]);
2012-06-04 14:58:40 +00:00
$call_group = check_str ( $_POST [ "call_group" ]);
2014-04-03 17:32:38 +00:00
$user_record = check_str ( $_POST [ "user_record" ]);
2012-06-04 14:58:40 +00:00
$hold_music = check_str ( $_POST [ "hold_music" ]);
$auth_acl = check_str ( $_POST [ "auth_acl" ]);
$cidr = check_str ( $_POST [ "cidr" ]);
$sip_force_contact = check_str ( $_POST [ "sip_force_contact" ]);
$sip_force_expires = check_str ( $_POST [ "sip_force_expires" ]);
$nibble_account = check_str ( $_POST [ "nibble_account" ]);
$mwi_account = check_str ( $_POST [ "mwi_account" ]);
$sip_bypass_media = check_str ( $_POST [ "sip_bypass_media" ]);
2012-06-04 15:04:54 +00:00
$dial_string = check_str ( $_POST [ "dial_string" ]);
2012-06-04 14:58:40 +00:00
$enabled = check_str ( $_POST [ "enabled" ]);
$description = check_str ( $_POST [ "description" ]);
}
//delete the user from the v_extension_users
2014-05-06 20:21:11 +00:00
if ( $_REQUEST [ "delete_type" ] == "user" && strlen ( $_REQUEST [ "delete_uuid" ]) > 0 && permission_exists ( "extension_delete" )) {
2012-06-04 14:58:40 +00:00
//set the variables
$extension_uuid = check_str ( $_REQUEST [ "id" ]);
2014-05-06 20:21:11 +00:00
$user_uuid = check_str ( $_REQUEST [ "delete_uuid" ]);
2012-06-04 14:58:40 +00:00
//delete the group from the users
$sql = "delete from v_extension_users " ;
2014-08-01 14:02:45 +00:00
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
2012-06-04 14:58:40 +00:00
$sql .= "and extension_uuid = '" . $extension_uuid . "' " ;
$sql .= "and user_uuid = '" . $user_uuid . "' " ;
$db -> exec ( check_sql ( $sql ));
}
2013-11-26 10:14:38 +00:00
//delete the line from the v_device_lines
2014-03-04 05:59:34 +00:00
if ( is_dir ( $_SERVER [ "DOCUMENT_ROOT" ] . PROJECT_PATH . '/app/devices' )) {
2014-05-06 20:21:11 +00:00
if ( $_REQUEST [ "delete_type" ] == "device_line" && strlen ( $_REQUEST [ "delete_uuid" ]) > 0 && permission_exists ( "extension_delete" )) {
2014-03-04 05:59:34 +00:00
//set the variables
$extension_uuid = check_str ( $_REQUEST [ "id" ]);
2014-05-06 20:21:11 +00:00
$device_line_uuid = check_str ( $_REQUEST [ "delete_uuid" ]);
2014-03-04 05:59:34 +00:00
//delete device_line
$sql = "delete from v_device_lines " ;
2014-08-01 14:02:45 +00:00
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
2014-03-04 05:59:34 +00:00
$sql .= "and device_line_uuid = ' $device_line_uuid ' " ;
$db -> exec ( check_sql ( $sql ));
unset ( $sql );
}
2013-04-28 07:24:41 +00:00
}
2012-06-04 14:58:40 +00:00
//assign the extension to the user
2014-05-06 20:21:11 +00:00
if ( strlen ( $_REQUEST [ "user_uuid" ]) > 0 && strlen ( $_REQUEST [ "id" ]) > 0 ) {
2012-06-04 14:58:40 +00:00
//set the variables
$user_uuid = check_str ( $_REQUEST [ "user_uuid" ]);
$extension_uuid = check_str ( $_REQUEST [ "id" ]);
//assign the user to the extension
$sql_insert = "insert into v_extension_users " ;
$sql_insert .= "(" ;
$sql_insert .= "extension_user_uuid, " ;
$sql_insert .= "domain_uuid, " ;
$sql_insert .= "extension_uuid, " ;
$sql_insert .= "user_uuid " ;
$sql_insert .= ")" ;
$sql_insert .= "values " ;
$sql_insert .= "(" ;
$sql_insert .= "'" . uuid () . "', " ;
2014-08-01 14:02:45 +00:00
$sql_insert .= "'" . $_SESSION [ 'domain_uuid' ] . "', " ;
2012-06-04 14:58:40 +00:00
$sql_insert .= "'" . $extension_uuid . "', " ;
$sql_insert .= "'" . $user_uuid . "' " ;
$sql_insert .= ")" ;
$db -> exec ( $sql_insert );
}
2013-11-26 10:14:38 +00:00
//assign the line to the device
2014-03-04 05:59:34 +00:00
if ( is_dir ( $_SERVER [ "DOCUMENT_ROOT" ] . PROJECT_PATH . '/app/devices' )) {
2014-05-06 20:21:11 +00:00
if ( strlen ( $_REQUEST [ "device_mac_address" ]) > 0 && strlen ( $_REQUEST [ "id" ]) > 0 ) {
2014-04-24 07:55:59 +00:00
2014-03-04 05:59:34 +00:00
//set the variables
$extension_uuid = check_str ( $_REQUEST [ "id" ]);
$device_uuid = uuid ();
$device_line_uuid = uuid ();
$device_template = check_str ( $_REQUEST [ "device_template" ]);
$line_number = check_str ( $_REQUEST [ "line_number" ]);
$device_mac_address = check_str ( $_REQUEST [ "device_mac_address" ]);
$device_mac_address = strtolower ( $device_mac_address );
$device_mac_address = preg_replace ( '#[^a-fA-F0-9./]#' , '' , $device_mac_address );
2014-11-20 02:34:03 +00:00
//set a default line number
if ( strlen ( $line_number ) == 0 ) { $line_number = '1' ; }
2014-03-04 05:59:34 +00:00
//add the device if it doesn't exist, if it does exist get the device_uuid
$sql = "select device_uuid from v_devices " ;
2014-08-01 14:02:45 +00:00
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
2014-03-04 05:59:34 +00:00
$sql .= "and device_mac_address = ' $device_mac_address ' " ;
if ( strlen ( $order_by ) > 0 ) { $sql .= "order by $order_by $order " ; }
$prep_statement = $db -> prepare ( $sql );
if ( $prep_statement ) {
$prep_statement -> execute ();
$row = $prep_statement -> fetch ( PDO :: FETCH_ASSOC );
if ( strlen ( $row [ 'device_uuid' ]) > 0 ) {
2014-04-24 07:55:59 +00:00
//device found get the device_uuid
$device_uuid = $row [ 'device_uuid' ];
//update device template
if ( strlen ( $device_template ) > 0 ) {
$sql = "update v_devices set " ;
$sql .= "device_template = ' $device_template ' " ;
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
$sql .= "and device_uuid = ' $device_uuid '" ;
$db -> exec ( check_sql ( $sql ));
unset ( $sql );
}
2014-03-04 05:59:34 +00:00
}
else {
//device not found
2014-04-24 07:55:59 +00:00
$sql_insert = "insert into v_devices " ;
$sql_insert .= "(" ;
$sql_insert .= "device_uuid, " ;
$sql_insert .= "domain_uuid, " ;
$sql_insert .= "device_mac_address, " ;
$sql_insert .= "device_template, " ;
$sql_insert .= "device_provision_enable " ;
$sql_insert .= ") " ;
$sql_insert .= "values " ;
$sql_insert .= "(" ;
$sql_insert .= "'" . $device_uuid . "', " ;
$sql_insert .= "'" . $_SESSION [ 'domain_uuid' ] . "', " ;
$sql_insert .= "'" . $device_mac_address . "', " ;
$sql_insert .= "'" . $device_template . "', " ;
$sql_insert .= "'true' " ;
$sql_insert .= ")" ;
//echo $sql_insert."<br />\n";
$db -> exec ( $sql_insert );
2014-03-04 05:59:34 +00:00
}
2013-11-26 20:16:21 +00:00
}
2013-11-26 10:14:38 +00:00
2014-03-04 05:59:34 +00:00
//assign the line to the device
$sql_insert = "insert into v_device_lines " ;
$sql_insert .= "(" ;
$sql_insert .= "device_uuid, " ;
$sql_insert .= "device_line_uuid, " ;
$sql_insert .= "domain_uuid, " ;
$sql_insert .= "server_address, " ;
2014-10-28 03:26:01 +00:00
$sql_insert .= "display_name, " ;
2014-03-04 05:59:34 +00:00
$sql_insert .= "user_id, " ;
$sql_insert .= "auth_id, " ;
$sql_insert .= "password, " ;
$sql_insert .= "line_number " ;
$sql_insert .= ") " ;
$sql_insert .= "values " ;
$sql_insert .= "(" ;
$sql_insert .= "'" . $device_uuid . "', " ;
$sql_insert .= "'" . $device_line_uuid . "', " ;
$sql_insert .= "'" . $_SESSION [ 'domain_uuid' ] . "', " ;
$sql_insert .= "'" . $_SESSION [ 'domain_name' ] . "', " ;
$sql_insert .= "'" . $extension . "', " ;
$sql_insert .= "'" . $extension . "', " ;
2014-10-28 03:26:01 +00:00
$sql_insert .= "'" . $extension . "', " ;
2014-03-04 05:59:34 +00:00
$sql_insert .= "'" . $password . "', " ;
$sql_insert .= "'" . $line_number . "' " ;
$sql_insert .= ")" ;
//echo $sql_insert."<br />\n";
$db -> exec ( $sql_insert );
}
2013-04-28 07:24:41 +00:00
}
2014-04-03 17:32:38 +00:00
if ( count ( $_POST ) > 0 && strlen ( $_POST [ "persistformvar" ]) == 0 ) {
2012-06-04 14:58:40 +00:00
$msg = '' ;
if ( $action == "update" ) {
$extension_uuid = check_str ( $_POST [ "extension_uuid" ]);
}
//check for all required data
2013-05-04 00:35:21 +00:00
if ( strlen ( $extension ) == 0 ) { $msg .= $text [ 'message-required' ] . $text [ 'label-extension' ] . "<br> \n " ; }
//if (strlen($number_alias) == 0) { $msg .= $text['message-required']."Number Alias<br>\n"; }
2014-05-25 01:43:47 +00:00
//if (strlen($voicemail_password) == 0) { $msg .= $text['message-required']."Voicemail Password<br>\n"; }
2013-05-04 00:35:21 +00:00
//if (strlen($accountcode) == 0) { $msg .= $text['message-required']."Account Code<br>\n"; }
//if (strlen($effective_caller_id_name) == 0) { $msg .= $text['message-required']."Effective Caller ID Name<br>\n"; }
//if (strlen($effective_caller_id_number) == 0) { $msg .= $text['message-required']."Effective Caller ID Number<br>\n"; }
//if (strlen($outbound_caller_id_name) == 0) { $msg .= $text['message-required']."Outbound Caller ID Name<br>\n"; }
2014-05-01 04:18:27 +00:00
//if (strlen($emergency_caller_id_name) == 0) { $msg .= $text['message-required']."Emergency Caller ID Name<br>\n"; }
2013-05-04 00:35:21 +00:00
//if (strlen($outbound_caller_id_number) == 0) { $msg .= $text['message-required']."Outbound Caller ID Number<br>\n"; }
//if (strlen($emergency_caller_id_number) == 0) { $msg .= $text['message-required']."Emergency Caller ID Number<br>\n"; }
//if (strlen($directory_full_name) == 0) { $msg .= $text['message-required']."Directory Full Name<br>\n"; }
//if (strlen($directory_visible) == 0) { $msg .= $text['message-required']."Directory Visible<br>\n"; }
//if (strlen($directory_exten_visible) == 0) { $msg .= $text['message-required']."Directory Extension Visible<br>\n"; }
//if (strlen($limit_max) == 0) { $msg .= $text['message-required']."Max Callsr<br>\n"; }
//if (strlen($limit_destination) == 0) { $msg .= $text['message-required']."Transfer Destination Number<br>\n"; }
2014-05-25 01:43:47 +00:00
//if (strlen($voicemail_mail_to) == 0) { $msg .= $text['message-required']."Voicemail Mail To<br>\n"; }
//if (strlen($voicemail_attach_file) == 0) { $msg .= $text['message-required']."Voicemail Attach File<br>\n"; }
//if (strlen($voicemail_local_after_email) == 0) { $msg .= $text['message-required']."VM Keep Local After Email<br>\n"; }
2013-05-04 00:35:21 +00:00
//if (strlen($user_context) == 0) { $msg .= $text['message-required']."User Context<br>\n"; }
//if (strlen($toll_allow) == 0) { $msg .= $text['message-required']."Toll Allow<br>\n"; }
//if (strlen($call_group) == 0) { $msg .= $text['message-required']."Call Group<br>\n"; }
//if (strlen($hold_music) == 0) { $msg .= $text['message-required']."Hold Music<br>\n"; }
//if (strlen($auth_acl) == 0) { $msg .= $text['message-required']."Auth ACL<br>\n"; }
//if (strlen($cidr) == 0) { $msg .= $text['message-required']."CIDR<br>\n"; }
//if (strlen($sip_force_contact) == 0) { $msg .= $text['message-required']."SIP Force Contact<br>\n"; }
//if (strlen($dial_string) == 0) { $msg .= $text['message-required']."Dial String<br>\n"; }
2013-12-16 21:56:19 +00:00
if ( permission_exists ( 'extension_enabled' )) {
if ( strlen ( $enabled ) == 0 ) { $msg .= $text [ 'message-required' ] . $text [ 'label-enabled' ] . "<br> \n " ; }
}
2013-05-04 00:35:21 +00:00
//if (strlen($description) == 0) { $msg .= $text['message-required']."Description<br>\n"; }
2012-06-04 14:58:40 +00:00
if ( strlen ( $msg ) > 0 && strlen ( $_POST [ "persistformvar" ]) == 0 ) {
2013-07-06 06:29:50 +00:00
require_once "resources/header.php" ;
2013-07-06 06:21:12 +00:00
require_once "resources/persist_form_var.php" ;
2012-06-04 14:58:40 +00:00
echo "<div align='center'> \n " ;
echo "<table><tr><td> \n " ;
echo $msg . "<br />" ;
echo "</td></tr></table> \n " ;
persistformvar ( $_POST );
echo "</div> \n " ;
2013-07-06 06:29:50 +00:00
require_once "resources/footer.php" ;
2012-06-04 14:58:40 +00:00
return ;
}
//set the default user context
if ( if_group ( "superadmin" )) {
//allow a user assigned to super admin to change the user_context
}
else {
//if the user_context was not set then set the default value
2012-10-18 07:59:30 +00:00
if ( strlen ( $user_context ) == 0 ) {
2012-06-04 14:58:40 +00:00
if ( count ( $_SESSION [ "domains" ]) > 1 ) {
$user_context = $_SESSION [ 'domain_name' ];
}
else {
$user_context = "default" ;
}
}
}
//add or update the database
if ( $_POST [ "persistformvar" ] != "true" ) {
2013-04-12 23:30:48 +00:00
//add the extension to the database
if ( $action == "add" && permission_exists ( 'extension_add' )) {
$user_email = '' ;
2013-12-27 18:18:50 +00:00
if ( $_SESSION [ "user" ][ "unique" ][ "text" ] != "global" ) {
if ( $autogen_users == "true" ) {
$auto_user = $extension ;
for ( $i = 1 ; $i <= $range ; $i ++ ) {
$user_last_name = $auto_user ;
$user_password = generate_password ();
user_add ( $auto_user , $user_password , $user_email );
$generated_users [ $i ][ 'username' ] = $auto_user ;
$generated_users [ $i ][ 'password' ] = $user_password ;
$auto_user ++ ;
}
unset ( $auto_user );
2013-04-12 23:30:48 +00:00
}
2012-06-04 14:58:40 +00:00
}
2014-06-25 17:45:48 +00:00
$j = 0 ;
2013-04-12 23:30:48 +00:00
for ( $i = 1 ; $i <= $range ; $i ++ ) {
if ( extension_exists ( $extension )) {
//extension exists
2013-04-02 07:36:28 +00:00
}
2013-04-12 23:30:48 +00:00
else {
//extension does not exist add it
$extension_uuid = uuid ();
$password = generate_password ();
$sql = "insert into v_extensions " ;
$sql .= "(" ;
$sql .= "domain_uuid, " ;
$sql .= "extension_uuid, " ;
$sql .= "extension, " ;
$sql .= "number_alias, " ;
$sql .= "password, " ;
2014-12-10 03:13:46 +00:00
if ( if_group ( "superadmin" ) || ( if_group ( "admin" ) && $billing_app_exists )) {
$sql .= "accountcode, " ;
}
2013-04-12 23:30:48 +00:00
$sql .= "effective_caller_id_name, " ;
$sql .= "effective_caller_id_number, " ;
$sql .= "outbound_caller_id_name, " ;
$sql .= "outbound_caller_id_number, " ;
2014-05-01 04:18:27 +00:00
$sql .= "emergency_caller_id_name, " ;
2013-04-12 23:30:48 +00:00
$sql .= "emergency_caller_id_number, " ;
$sql .= "directory_full_name, " ;
$sql .= "directory_visible, " ;
$sql .= "directory_exten_visible, " ;
$sql .= "limit_max, " ;
$sql .= "limit_destination, " ;
$sql .= "user_context, " ;
if ( permission_exists ( 'extension_toll' )) {
$sql .= "toll_allow, " ;
}
if ( strlen ( $call_timeout ) > 0 ) {
$sql .= "call_timeout, " ;
}
$sql .= "call_group, " ;
2014-04-03 17:32:38 +00:00
$sql .= "user_record, " ;
2013-04-12 23:30:48 +00:00
$sql .= "hold_music, " ;
$sql .= "auth_acl, " ;
$sql .= "cidr, " ;
$sql .= "sip_force_contact, " ;
if ( strlen ( $sip_force_expires ) > 0 ) {
$sql .= "sip_force_expires, " ;
}
2014-07-25 22:33:56 +00:00
if ( if_group ( "superadmin" )) {
if ( strlen ( $nibble_account ) > 0 ) {
$sql .= "nibble_account, " ;
}
2013-04-12 23:30:48 +00:00
}
if ( strlen ( $mwi_account ) > 0 ) {
$sql .= "mwi_account, " ;
}
$sql .= "sip_bypass_media, " ;
$sql .= "dial_string, " ;
2013-12-16 21:56:19 +00:00
$sql .= "enabled, " ;
2013-04-12 23:30:48 +00:00
$sql .= "description " ;
$sql .= ")" ;
$sql .= "values " ;
$sql .= "(" ;
2014-08-01 14:02:45 +00:00
$sql .= "'" . $_SESSION [ 'domain_uuid' ] . "', " ;
2013-04-12 23:30:48 +00:00
$sql .= "' $extension_uuid ', " ;
$sql .= "' $extension ', " ;
$sql .= "' $number_alias ', " ;
$sql .= "' $password ', " ;
2014-12-10 03:13:46 +00:00
if ( if_group ( "superadmin" ) || ( if_group ( "admin" ) && $billing_app_exists )) {
$sql .= "' $accountcode ', " ;
}
2013-04-12 23:30:48 +00:00
$sql .= "' $effective_caller_id_name ', " ;
$sql .= "' $effective_caller_id_number ', " ;
$sql .= "' $outbound_caller_id_name ', " ;
$sql .= "' $outbound_caller_id_number ', " ;
2014-05-01 04:18:27 +00:00
$sql .= "' $emergency_caller_id_name ', " ;
2013-04-12 23:30:48 +00:00
$sql .= "' $emergency_caller_id_number ', " ;
$sql .= "' $directory_full_name ', " ;
$sql .= "' $directory_visible ', " ;
$sql .= "' $directory_exten_visible ', " ;
$sql .= "' $limit_max ', " ;
$sql .= "' $limit_destination ', " ;
$sql .= "' $user_context ', " ;
if ( permission_exists ( 'extension_toll' )) {
$sql .= "' $toll_allow ', " ;
}
if ( strlen ( $call_timeout ) > 0 ) {
$sql .= "' $call_timeout ', " ;
}
$sql .= "' $call_group ', " ;
2014-04-03 17:32:38 +00:00
$sql .= "' $user_record ', " ;
2013-04-12 23:30:48 +00:00
$sql .= "' $hold_music ', " ;
$sql .= "' $auth_acl ', " ;
$sql .= "' $cidr ', " ;
$sql .= "' $sip_force_contact ', " ;
if ( strlen ( $sip_force_expires ) > 0 ) {
$sql .= "' $sip_force_expires ', " ;
}
2014-07-25 22:33:56 +00:00
if ( if_group ( "superadmin" )) {
if ( strlen ( $nibble_account ) > 0 ) {
$sql .= "' $nibble_account ', " ;
}
2013-04-12 23:30:48 +00:00
}
if ( strlen ( $mwi_account ) > 0 ) {
if ( strpos ( $mwi_account , '@' ) === false ) {
if ( count ( $_SESSION [ "domains" ]) > 1 ) {
$mwi_account .= "@" . $_SESSION [ 'domain_name' ];
}
else {
$mwi_account .= "@ \$\$ {domain}" ;
}
}
$sql .= "' $mwi_account ', " ;
}
$sql .= "' $sip_bypass_media ', " ;
$sql .= "' $dial_string ', " ;
2013-12-14 00:50:57 +00:00
if ( permission_exists ( 'extension_enabled' )) {
$sql .= "' $enabled ', " ;
}
2013-12-16 21:56:19 +00:00
else {
$sql .= "'true', " ;
}
2013-04-12 23:30:48 +00:00
$sql .= "' $description ' " ;
$sql .= ")" ;
$db -> exec ( check_sql ( $sql ));
unset ( $sql );
2014-06-25 17:45:48 +00:00
$j ++ ;
2013-04-12 23:30:48 +00:00
}
2014-03-04 05:49:38 +00:00
2013-04-12 23:30:48 +00:00
//add or update voicemail
2014-03-04 05:49:38 +00:00
if ( is_dir ( $_SERVER [ "DOCUMENT_ROOT" ] . PROJECT_PATH . '/app/voicemails' )) {
//set the voicemail password
2014-05-25 01:43:47 +00:00
if ( strlen ( $voicemail_password ) == 0 ) {
$voicemail_password = generate_password ( 9 , 1 );
2014-03-04 05:49:38 +00:00
}
//voicemail class
$ext = new extension ;
$ext -> db = $db ;
2014-08-01 14:02:45 +00:00
$ext -> domain_uuid = $_SESSION [ 'domain_uuid' ];
2014-03-04 05:49:38 +00:00
$ext -> extension = $extension ;
$ext -> number_alias = $number_alias ;
2014-05-25 01:43:47 +00:00
$ext -> voicemail_password = $voicemail_password ;
2014-05-25 06:59:55 +00:00
$ext -> voicemail_mail_to = $voicemail_mail_to ;
2014-05-25 01:43:47 +00:00
$ext -> voicemail_attach_file = $voicemail_attach_file ;
$ext -> voicemail_local_after_email = $voicemail_local_after_email ;
$ext -> voicemail_enabled = $voicemail_enabled ;
2014-03-04 05:49:38 +00:00
$ext -> description = $description ;
$ext -> voicemail ();
unset ( $ext );
}
2013-04-12 23:30:48 +00:00
//increment the extension number
$extension ++ ;
}
2014-06-25 17:45:48 +00:00
2014-12-10 03:13:46 +00:00
if ( $billing_app_exists ) {
2014-06-25 17:45:48 +00:00
// Let's bill $j has the number of extensions to bill
2014-08-01 13:14:50 +00:00
$db2 = new database ;
$db2 -> sql = "SELECT currency, billing_uuid, balance FROM v_billings WHERE type_value=' $destination_accountcode '" ;
$db2 -> result = $db2 -> execute ();
$default_currency = ( strlen ( $_SESSION [ 'billing' ][ 'currency' ][ 'text' ]) ? $_SESSION [ 'billing' ][ 'currency' ][ 'text' ] : 'USD' );
$billing_currency = ( strlen ( $db2 -> result [ 0 ][ 'currency' ]) ? $db2 -> result [ 0 ][ 'currency' ] : $default_currency );
$billing_uuid = $db2 -> result [ 0 ][ 'billing_uuid' ];
$balance = $db2 -> result [ 0 ][ 'balance' ];
unset ( $db2 -> sql , $db2 -> result );
$default_extension_pricing = ( strlen ( $_SESSION [ 'billing' ][ 'extension.pricing' ][ 'numeric' ]) ? $_SESSION [ 'billing' ][ 'extension.pricing' ][ 'numeric' ] : '0' );
$total_price = $default_extension_pricing * $j ;
2014-08-05 22:27:12 +00:00
$total_price_current_currency = currency_convert ( $total_price , $billing_currency , $default_currency );
$balance -= $total_price_current_currency ;
2014-08-01 13:14:50 +00:00
$db2 -> sql = "UPDATE v_billings SET balance = $balance , old_balance = $balance WHERE type_value=' $destination_accountcode '" ;
$db2 -> result = $db2 -> execute ();
unset ( $db2 -> sql , $db2 -> result );
$billing_invoice_uuid = uuid ();
$user_uuid = check_str ( $_SESSION [ 'user_uuid' ]);
$settled = 1 ;
2014-08-05 22:37:23 +00:00
$mc_gross = - 1 * $total_price_current_currency ;
2014-08-01 13:14:50 +00:00
$post_payload = serialize ( $_POST );
2014-08-01 14:02:45 +00:00
$db2 -> sql = "INSERT INTO v_billing_invoices (billing_invoice_uuid, billing_uuid, payer_uuid, billing_payment_date, settled, amount, debt, post_payload,plugin_used, domain_uuid) VALUES (' $billing_invoice_uuid ', ' $billing_uuid ', ' $user_uuid ', NOW(), $settled , $mc_gross , $balance , ' $post_payload ', ' $j extension(s) created', '" . $_SESSION [ 'domain_uuid' ] . "' )" ;
2014-08-01 13:14:50 +00:00
$db2 -> result = $db2 -> execute ();
unset ( $db2 -> sql , $db2 -> result );
2014-06-25 17:45:48 +00:00
}
2013-04-12 23:30:48 +00:00
} //if ($action == "add")
//update the database
if ( $action == "update" && permission_exists ( 'extension_edit' )) {
//generate a password
if ( strlen ( $password ) == 0 ) {
2014-03-13 21:09:41 +00:00
$password = generate_password ();
2012-06-04 14:58:40 +00:00
}
2013-04-12 23:30:48 +00:00
//set the voicemail password
2014-05-25 01:43:47 +00:00
if ( strlen ( $voicemail_password ) == 0 ) {
$voicemail_password = generate_password ( 9 , 1 );
2012-06-04 14:58:40 +00:00
}
2013-04-12 23:30:48 +00:00
//update extensions
$sql = "update v_extensions set " ;
$sql .= "extension = ' $extension ', " ;
$sql .= "number_alias = ' $number_alias ', " ;
$sql .= "password = ' $password ', " ;
2014-12-10 03:13:46 +00:00
if ( if_group ( "superadmin" ) || ( if_group ( "admin" ) && $billing_app_exists )) {
2014-06-18 12:10:46 +00:00
$sql .= "accountcode = ' $accountcode ', " ;
}
2013-04-12 23:30:48 +00:00
$sql .= "effective_caller_id_name = ' $effective_caller_id_name ', " ;
$sql .= "effective_caller_id_number = ' $effective_caller_id_number ', " ;
$sql .= "outbound_caller_id_name = ' $outbound_caller_id_name ', " ;
$sql .= "outbound_caller_id_number = ' $outbound_caller_id_number ', " ;
2014-05-01 04:18:27 +00:00
$sql .= "emergency_caller_id_name = ' $emergency_caller_id_name ', " ;
2013-04-12 23:30:48 +00:00
$sql .= "emergency_caller_id_number = ' $emergency_caller_id_number ', " ;
$sql .= "directory_full_name = ' $directory_full_name ', " ;
$sql .= "directory_visible = ' $directory_visible ', " ;
$sql .= "directory_exten_visible = ' $directory_exten_visible ', " ;
$sql .= "limit_max = ' $limit_max ', " ;
$sql .= "limit_destination = ' $limit_destination ', " ;
$sql .= "user_context = ' $user_context ', " ;
2012-06-04 14:58:40 +00:00
if ( permission_exists ( 'extension_toll' )) {
2013-04-12 23:30:48 +00:00
$sql .= "toll_allow = ' $toll_allow ', " ;
2012-06-04 14:58:40 +00:00
}
2013-04-02 07:36:28 +00:00
if ( strlen ( $call_timeout ) > 0 ) {
2013-04-12 23:30:48 +00:00
$sql .= "call_timeout = ' $call_timeout ', " ;
}
$sql .= "call_group = ' $call_group ', " ;
2014-04-03 17:32:38 +00:00
$sql .= "user_record = ' $user_record ', " ;
2013-04-12 23:30:48 +00:00
$sql .= "hold_music = ' $hold_music ', " ;
$sql .= "auth_acl = ' $auth_acl ', " ;
$sql .= "cidr = ' $cidr ', " ;
$sql .= "sip_force_contact = ' $sip_force_contact ', " ;
if ( strlen ( $sip_force_expires ) == 0 ) {
$sql .= "sip_force_expires = null, " ;
2013-04-02 07:36:28 +00:00
}
2013-04-12 23:30:48 +00:00
else {
$sql .= "sip_force_expires = ' $sip_force_expires ', " ;
2012-06-04 14:58:40 +00:00
}
2014-07-25 22:33:56 +00:00
if ( if_group ( "superadmin" )) {
if ( strlen ( $nibble_account ) == 0 ) {
$sql .= "nibble_account = null, " ;
}
else {
$sql .= "nibble_account = ' $nibble_account ', " ;
}
2012-06-04 14:58:40 +00:00
}
if ( strlen ( $mwi_account ) > 0 ) {
if ( strpos ( $mwi_account , '@' ) === false ) {
if ( count ( $_SESSION [ "domains" ]) > 1 ) {
$mwi_account .= "@" . $_SESSION [ 'domain_name' ];
}
else {
$mwi_account .= "@ \$\$ {domain}" ;
}
}
}
2013-04-12 23:30:48 +00:00
$sql .= "mwi_account = ' $mwi_account ', " ;
$sql .= "sip_bypass_media = ' $sip_bypass_media ', " ;
$sql .= "dial_string = ' $dial_string ', " ;
2013-12-16 21:56:19 +00:00
if ( permission_exists ( 'extension_enabled' )) {
$sql .= "enabled = ' $enabled ', " ;
}
2013-04-12 23:30:48 +00:00
$sql .= "description = ' $description ' " ;
2014-08-01 14:02:45 +00:00
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
2013-04-12 23:30:48 +00:00
$sql .= "and extension_uuid = ' $extension_uuid '" ;
2012-06-04 14:58:40 +00:00
$db -> exec ( check_sql ( $sql ));
unset ( $sql );
2013-04-12 23:30:48 +00:00
//add or update voicemail
2014-03-04 05:49:38 +00:00
if ( is_dir ( $_SERVER [ "DOCUMENT_ROOT" ] . PROJECT_PATH . '/app/voicemails' )) {
require_once "app/extensions/resources/classes/extension.php" ;
$ext = new extension ;
$ext -> db = $db ;
2014-08-01 14:02:45 +00:00
$ext -> domain_uuid = $_SESSION [ 'domain_uuid' ];
2014-03-04 05:49:38 +00:00
$ext -> extension = $extension ;
$ext -> number_alias = $number_alias ;
2014-05-25 01:43:47 +00:00
$ext -> voicemail_password = $voicemail_password ;
2014-05-25 06:59:55 +00:00
$ext -> voicemail_mail_to = $voicemail_mail_to ;
2014-05-25 01:43:47 +00:00
$ext -> voicemail_attach_file = $voicemail_attach_file ;
$ext -> voicemail_local_after_email = $voicemail_local_after_email ;
$ext -> voicemail_enabled = $voicemail_enabled ;
2014-03-04 05:49:38 +00:00
$ext -> description = $description ;
$ext -> voicemail ();
unset ( $ext );
}
2014-05-08 04:46:36 +00:00
//update devices having extension assigned to line(s) with new password
$sql = "update v_device_lines set " ;
$sql .= "password = '" . $password . "' " ;
$sql .= "where " ;
2014-08-01 14:02:45 +00:00
$sql .= "domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
$sql .= "and server_address = '" . $_SESSION [ 'domain_name' ] . "' " ;
$sql .= "and user_id = '" . $extension . "' " ;
2014-05-08 04:46:36 +00:00
$db -> exec ( check_sql ( $sql ));
unset ( $sql );
2013-04-12 23:30:48 +00:00
} //if ($action == "update")
2012-06-04 14:58:40 +00:00
2013-04-12 23:30:48 +00:00
//check the permissions
if ( permission_exists ( 'extension_add' ) || permission_exists ( 'extension_edit' )) {
2012-06-04 14:58:40 +00:00
2013-04-12 23:30:48 +00:00
//synchronize configuration
2013-05-04 02:23:32 +00:00
if ( is_writable ( $_SESSION [ 'switch' ][ 'extensions' ][ 'dir' ])) {
2013-04-12 23:30:48 +00:00
require_once "app/extensions/resources/classes/extension.php" ;
$ext = new extension ;
$ext -> xml ();
unset ( $ext );
}
2012-06-04 14:58:40 +00:00
2013-04-12 23:30:48 +00:00
//write the provision files
2014-03-04 05:59:34 +00:00
if ( is_dir ( $_SERVER [ "DOCUMENT_ROOT" ] . PROJECT_PATH . '/app/provision' )) {
require_once "app/provision/provision_write.php" ;
$ext = new extension ;
}
2012-06-04 14:58:40 +00:00
2015-01-16 00:21:02 +00:00
//clear the cache
$cache = new cache ;
$cache -> delete ( "directory:" . $extension . "@" . $user_context );
2012-06-04 14:58:40 +00:00
}
2013-04-12 23:30:48 +00:00
//show the action and redirect the user
if ( $action == "add" ) {
//prepare for alternating the row style
$c = 0 ;
$row_style [ "0" ] = "row_style0" ;
$row_style [ "1" ] = "row_style1" ;
//show the action and redirect the user
if ( count ( $generated_users ) == 0 ) {
//action add
2014-02-23 06:46:10 +00:00
$_SESSION [ "message" ] = $text [ 'message-add' ];
2014-04-18 21:16:41 +00:00
header ( "Location: extension_edit.php?id=" . $extension_uuid );
2012-06-04 14:58:40 +00:00
}
else {
2013-04-12 23:30:48 +00:00
//auto-generate user with extension as login name
2014-02-23 06:46:10 +00:00
require_once "resources/header.php" ;
echo "<br /> \n " ;
echo "<div align='center'> \n " ;
2013-04-12 23:30:48 +00:00
echo " <table width='40%' border='0' cellpadding='0' cellspacing='0'> \n " ;
echo " <tr> \n " ;
echo " <td colspan='2'><strong>New User Accounts</strong></td> \n " ;
echo " </tr> \n " ;
echo " <tr> \n " ;
echo " <th>Username</th> \n " ;
echo " <th>Password</th> \n " ;
echo " </tr> \n " ;
foreach ( $generated_users as $tmp_user ){
echo " <tr> \n " ;
echo " <td valign='top' class='" . $row_style [ $c ] . "'>" . $tmp_user [ 'username' ] . "</td> \n " ;
echo " <td valign='top' class='" . $row_style [ $c ] . "'>" . $tmp_user [ 'password' ] . "</td> \n " ;
echo " </tr> \n " ;
}
if ( $c == 0 ) { $c = 1 ; } else { $c = 0 ; }
echo " </table>" ;
2014-02-23 06:46:10 +00:00
echo "</div> \n " ;
require_once "resources/footer.php" ;
2012-06-04 14:58:40 +00:00
}
2013-05-04 00:35:21 +00:00
return ;
2012-06-04 14:58:40 +00:00
}
2013-04-12 23:30:48 +00:00
if ( $action == "update" ) {
if ( $action == "update" ) {
2014-02-23 06:46:10 +00:00
$_SESSION [ "message" ] = $text [ 'message-update' ];
2013-04-12 23:30:48 +00:00
}
else {
2014-02-23 06:46:10 +00:00
$_SESSION [ "message" ] = $text [ 'message-add' ];
2013-04-12 23:30:48 +00:00
}
2014-04-18 21:16:41 +00:00
header ( "Location: extension_edit.php?id=" . $extension_uuid );
2012-06-04 14:58:40 +00:00
return ;
2013-04-12 23:30:48 +00:00
}
2012-06-04 14:58:40 +00:00
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
//pre-populate the form
2013-04-12 23:30:48 +00:00
if ( count ( $_GET ) > 0 && $_POST [ "persistformvar" ] != "true" ) {
2012-06-04 14:58:40 +00:00
$extension_uuid = $_GET [ "id" ];
$sql = "select * from v_extensions " ;
2014-08-01 14:02:45 +00:00
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
2012-06-04 14:58:40 +00:00
$sql .= "and extension_uuid = ' $extension_uuid ' " ;
$prep_statement = $db -> prepare ( check_sql ( $sql ));
$prep_statement -> execute ();
$result = $prep_statement -> fetchAll ( PDO :: FETCH_NAMED );
foreach ( $result as & $row ) {
$extension = $row [ "extension" ];
$number_alias = $row [ "number_alias" ];
$password = $row [ "password" ];
$accountcode = $row [ "accountcode" ];
$effective_caller_id_name = $row [ "effective_caller_id_name" ];
$effective_caller_id_number = $row [ "effective_caller_id_number" ];
$outbound_caller_id_name = $row [ "outbound_caller_id_name" ];
$outbound_caller_id_number = $row [ "outbound_caller_id_number" ];
2014-05-01 04:24:44 +00:00
$emergency_caller_id_name = $row [ "emergency_caller_id_name" ];
2012-06-04 14:58:40 +00:00
$emergency_caller_id_number = $row [ "emergency_caller_id_number" ];
$directory_full_name = $row [ "directory_full_name" ];
$directory_visible = $row [ "directory_visible" ];
$directory_exten_visible = $row [ "directory_exten_visible" ];
$limit_max = $row [ "limit_max" ];
$limit_destination = $row [ "limit_destination" ];
$user_context = $row [ "user_context" ];
$toll_allow = $row [ "toll_allow" ];
2013-04-02 07:36:28 +00:00
$call_timeout = $row [ "call_timeout" ];
2012-06-04 14:58:40 +00:00
$call_group = $row [ "call_group" ];
2014-04-03 17:32:38 +00:00
$user_record = $row [ "user_record" ];
2012-06-04 14:58:40 +00:00
$hold_music = $row [ "hold_music" ];
$auth_acl = $row [ "auth_acl" ];
$cidr = $row [ "cidr" ];
$sip_force_contact = $row [ "sip_force_contact" ];
$sip_force_expires = $row [ "sip_force_expires" ];
$nibble_account = $row [ "nibble_account" ];
$mwi_account = $row [ "mwi_account" ];
$sip_bypass_media = $row [ "sip_bypass_media" ];
2012-06-04 15:04:54 +00:00
$dial_string = $row [ "dial_string" ];
2012-06-04 14:58:40 +00:00
$enabled = $row [ "enabled" ];
$description = $row [ "description" ];
}
unset ( $prep_statement );
}
2013-09-29 08:06:54 +00:00
//get the voicemail data
2014-03-04 05:49:38 +00:00
if ( is_dir ( $_SERVER [ "DOCUMENT_ROOT" ] . PROJECT_PATH . '/app/voicemails' )) {
//get the voicemails
$sql = "select * from v_voicemails " ;
2014-08-01 14:02:45 +00:00
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
2014-03-04 05:49:38 +00:00
if ( is_numeric ( $extension )) {
$sql .= "and voicemail_id = ' $extension ' " ;
}
else {
$sql .= "and voicemail_id = ' $number_alias ' " ;
}
$prep_statement = $db -> prepare ( check_sql ( $sql ));
$prep_statement -> execute ();
$result = $prep_statement -> fetchAll ( PDO :: FETCH_NAMED );
foreach ( $result as & $row ) {
2014-05-25 01:43:47 +00:00
$voicemail_password = $row [ "voicemail_password" ];
2014-03-04 05:49:38 +00:00
//$greeting_id = $row["greeting_id"];
2014-05-25 01:43:47 +00:00
$voicemail_mail_to = $row [ "voicemail_mail_to" ];
$voicemail_mail_to = str_replace ( " " , "" , $voicemail_mail_to );
$voicemail_attach_file = $row [ "voicemail_attach_file" ];
$voicemail_local_after_email = $row [ "voicemail_local_after_email" ];
$voicemail_enabled = $row [ "voicemail_enabled" ];
2014-03-04 05:49:38 +00:00
}
unset ( $prep_statement );
//clean the variables
2014-05-25 01:43:47 +00:00
$voicemail_password = str_replace ( "#" , "" , $voicemail_password );
$voicemail_mail_to = str_replace ( " " , "" , $voicemail_mail_to );
2013-09-29 08:06:54 +00:00
}
2013-06-03 14:26:50 +00:00
2012-06-04 14:58:40 +00:00
//set the defaults
if ( strlen ( $limit_max ) == 0 ) { $limit_max = '5' ; }
2013-04-02 07:36:28 +00:00
if ( strlen ( $call_timeout ) == 0 ) { $call_timeout = '30' ; }
2012-06-04 14:58:40 +00:00
//begin the page content
2013-07-06 06:29:50 +00:00
require_once "resources/header.php" ;
2013-05-07 23:11:37 +00:00
if ( $action == "update" ) {
2014-07-10 00:32:50 +00:00
$document [ 'title' ] = $text [ 'title-extension-edit' ];
2013-05-07 23:11:37 +00:00
}
else if ( $action == "add" ) {
2014-07-10 00:32:50 +00:00
$document [ 'title' ] = $text [ 'title-extension-add' ];
2013-05-07 23:11:37 +00:00
}
2012-06-04 14:58:40 +00:00
echo "<script type= \" text/javascript \" language= \" JavaScript \" > \n " ;
echo " \n " ;
echo "function enable_change(enable_over) { \n " ;
echo " var endis; \n " ;
echo " endis = !(document.iform.enable.checked || enable_over); \n " ;
echo " document.iform.range_from.disabled = endis; \n " ;
echo " document.iform.range_to.disabled = endis; \n " ;
echo "} \n " ;
echo " \n " ;
echo "function show_advanced_config() { \n " ;
2014-07-07 19:33:17 +00:00
echo " $('#show_advanced_box').slideToggle(); \n " ;
echo " $('#show_advanced').slideToggle(); \n " ;
2012-06-04 14:58:40 +00:00
echo "} \n " ;
2014-05-01 02:48:25 +00:00
echo " \n " ;
echo "function copy_extension() { \n " ;
echo " var new_ext = prompt('" . $text [ 'message-extension' ] . "'); \n " ;
echo " if (new_ext != null) { \n " ;
echo " if (!isNaN(new_ext)) { \n " ;
echo " document.location.href='extension_copy.php?id=" . $extension_uuid . "&ext=' + new_ext; \n " ;
echo " } \n " ;
echo " else { \n " ;
echo " var new_number_alias = prompt('" . $text [ 'message-number_alias' ] . "'); \n " ;
echo " if (new_number_alias != null) { \n " ;
echo " if (!isNaN(new_number_alias)) { \n " ;
echo " document.location.href='extension_copy.php?id=" . $extension_uuid . "&ext=' + new_ext + '&alias=' + new_number_alias; \n " ;
echo " } \n " ;
echo " } \n " ;
echo " } \n " ;
echo " } \n " ;
echo "} \n " ;
2012-06-04 14:58:40 +00:00
echo "</script>" ;
echo "<div align='center'>" ;
echo "<table width='100%' border='0' cellpadding='0' cellspacing='2'> \n " ;
echo "<tr class='border'> \n " ;
echo " <td align= \" left \" > \n " ;
echo " <br>" ;
echo "<form method='post' name='frm' action=''> \n " ;
echo "<div align='center'> \n " ;
2014-05-25 05:40:06 +00:00
echo "<table width='100%' border='0' cellpdding='6' cellspacing='0'> \n " ;
2012-06-04 14:58:40 +00:00
echo "<tr> \n " ;
if ( $action == "add" ) {
2013-05-04 00:35:21 +00:00
echo "<td width='30%' nowrap='nowrap' align='left' valign='top'><b>" . $text [ 'header-extension-add' ] . "</b></td> \n " ;
2012-06-04 14:58:40 +00:00
}
if ( $action == "update" ) {
2013-05-04 00:35:21 +00:00
echo "<td width='30%' nowrap='nowrap' align='left' valign='top'><b>" . $text [ 'header-extension-edit' ] . "</b></td> \n " ;
2012-06-04 14:58:40 +00:00
}
echo "<td width='70%' align='right' valign='top'> \n " ;
2014-04-26 22:50:52 +00:00
echo " <input type='button' class='btn' name='' alt='" . $text [ 'button-back' ] . "' onclick= \" window.location='extensions.php' \" value='" . $text [ 'button-back' ] . "'> \n " ;
2013-05-04 00:35:21 +00:00
if ( $action != "add" ) {
2014-05-01 02:48:25 +00:00
echo " <input type='button' class='btn' name='' alt='" . $text [ 'button-copy' ] . "' onclick= \" copy_extension(); \" value='" . $text [ 'button-copy' ] . "'> \n " ;
2013-05-04 00:35:21 +00:00
}
2014-05-06 20:21:11 +00:00
echo " <input type='submit' class='btn' value='" . $text [ 'button-save' ] . "'> \n " ;
2012-06-04 14:58:40 +00:00
echo " <br /><br /> \n " ;
echo "</td> \n " ;
echo "</tr> \n " ;
2014-06-25 17:45:48 +00:00
// Billing
2014-12-10 03:13:46 +00:00
if ( $billing_app_exists ) {
2014-06-25 17:45:48 +00:00
if ( $action == "add" && permission_exists ( 'extension_add' )) { // only when adding
echo "<tr> \n " ;
echo "<td colspan='2' width='30%' nowrap='nowrap' align='left' valign='top'> \n " ;
echo " <center>" . $text [ 'label-billing_warning' ] . "</center> \n " ;
echo "</td> \n " ;
echo "</tr> \n " ;
}
}
2012-06-04 14:58:40 +00:00
echo "<tr> \n " ;
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-extension' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='text' name='extension' autocomplete='off' maxlength='255' value= \" $extension \" required='required'> \n " ;
2012-06-04 14:58:40 +00:00
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-extension' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-number_alias' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='number' name='number_alias' autocomplete='off' maxlength='255' min='0' step='1' value= \" $number_alias \" > \n " ;
2012-06-04 14:58:40 +00:00
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-number_alias' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
if ( $action == "update" ) {
echo "<tr> \n " ;
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-password' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='password' name='password' id='password' onmouseover= \" this.type='text'; \" onfocus= \" this.type='text'; \" onmouseout= \" if (!$(this).is(':focus')) { this.type='password'; } \" onblur= \" this.type='password'; \" autocomplete='off' maxlength='50' value= \" $password \" required='required'> \n " ;
2014-03-06 23:31:03 +00:00
echo " <br /> \n " ;
echo " " . $text [ 'description-password' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
}
if ( $action == "add" ) {
echo "<tr> \n " ;
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-range' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
echo " <select class='formfld' name='range'> \n " ;
echo " <option value='1'>1</option> \n " ;
echo " <option value='2'>2</option> \n " ;
echo " <option value='3'>3</option> \n " ;
echo " <option value='4'>4</option> \n " ;
echo " <option value='5'>5</option> \n " ;
echo " <option value='6'>6</option> \n " ;
echo " <option value='7'>7</option> \n " ;
echo " <option value='8'>8</option> \n " ;
echo " <option value='9'>9</option> \n " ;
echo " <option value='10'>10</option> \n " ;
echo " <option value='15'>15</option> \n " ;
echo " <option value='20'>20</option> \n " ;
echo " <option value='25'>25</option> \n " ;
echo " <option value='30'>30</option> \n " ;
echo " <option value='35'>35</option> \n " ;
echo " <option value='40'>40</option> \n " ;
echo " <option value='45'>45</option> \n " ;
echo " <option value='50'>50</option> \n " ;
echo " <option value='75'>75</option> \n " ;
echo " <option value='100'>100</option> \n " ;
echo " <option value='150'>150</option> \n " ;
echo " <option value='200'>200</option> \n " ;
echo " <option value='250'>250</option> \n " ;
echo " <option value='500'>500</option> \n " ;
echo " <option value='500'>750</option> \n " ;
echo " <option value='1000'>1000</option> \n " ;
echo " <option value='5000'>5000</option> \n " ;
echo " </select> \n " ;
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-range' ] . "<br /> \n " ;
2013-12-27 18:18:50 +00:00
if ( $_SESSION [ "user" ][ "unique" ][ "text" ] != "global" ) {
echo "<input type= \" checkbox \" name= \" autogen_users \" value= \" true \" > " . $text [ 'checkbox-range' ] . "<br> \n " ;
}
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
}
if ( $action == "update" ) {
echo " <tr>" ;
2013-05-04 00:35:21 +00:00
echo " <td class='vncell' valign='top'>" . $text [ 'label-user_list' ] . ":</td>" ;
2012-06-04 14:58:40 +00:00
echo " <td class='vtable'>" ;
$sql = "SELECT u.username, e.user_uuid FROM v_extension_users as e, v_users as u " ;
$sql .= "where e.user_uuid = u.user_uuid " ;
2012-08-10 15:53:02 +00:00
$sql .= "and u.user_enabled = 'true' " ;
2012-06-04 14:58:40 +00:00
$sql .= "and e.domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
$sql .= "and e.extension_uuid = '" . $extension_uuid . "' " ;
2013-03-15 17:12:13 +00:00
$sql .= "order by u.username asc " ;
2012-06-04 14:58:40 +00:00
$prep_statement = $db -> prepare ( check_sql ( $sql ));
$prep_statement -> execute ();
$result = $prep_statement -> fetchAll ( PDO :: FETCH_NAMED );
$result_count = count ( $result );
2014-05-02 05:07:29 +00:00
if ( $result_count > 0 ) {
2014-05-06 20:21:11 +00:00
echo " <table width='30%'> \n " ;
2014-05-02 05:07:29 +00:00
foreach ( $result as $field ) {
echo " <tr> \n " ;
2014-06-21 01:51:05 +00:00
echo " <td class='vtable'><a href='/core/users/usersupdate.php?id=" . $field [ 'user_uuid' ] . "'>" . $field [ 'username' ] . "</a></td> \n " ;
2014-05-02 05:07:29 +00:00
echo " <td> \n " ;
2014-05-06 20:21:11 +00:00
echo " <a href='#' onclick= \" if (confirm('" . $text [ 'confirm-delete' ] . "')) { document.getElementById('delete_type').value = 'user'; document.getElementById('delete_uuid').value = '" . $field [ 'user_uuid' ] . "'; document.forms.frm.submit(); } \" alt='" . $text [ 'button-delete' ] . "'> $v_link_label_delete </a> \n " ;
// echo " <a href='extension_edit.php?id=".$extension_uuid."&domain_uuid=".$_SESSION['domain_uuid']."&user_uuid=".$field['user_uuid']."&a=delete' alt='".$text['button-delete']."' onclick=\"return confirm('".$text['confirm-delete']."')\">$v_link_label_delete</a>\n";
2014-05-02 05:07:29 +00:00
echo " </td> \n " ;
echo " </tr> \n " ;
$assigned_user_uuids [] = $field [ 'user_uuid' ];
}
echo " </table> \n " ;
echo " <br /> \n " ;
2012-06-04 14:58:40 +00:00
}
$sql = "SELECT * FROM v_users " ;
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
2014-05-02 05:07:29 +00:00
foreach ( $assigned_user_uuids as $assigned_user_uuid ) {
$sql .= "and user_uuid <> '" . $assigned_user_uuid . "' " ;
}
unset ( $assigned_user_uuids );
2012-08-10 15:53:02 +00:00
$sql .= "and user_enabled = 'true' " ;
2013-03-15 17:12:13 +00:00
$sql .= "order by username asc " ;
2012-06-04 14:58:40 +00:00
$prep_statement = $db -> prepare ( check_sql ( $sql ));
$prep_statement -> execute ();
2014-05-06 20:21:11 +00:00
echo " <select name='user_uuid' id='user_uuid' class='formfld' style='width: auto;'> \n " ;
echo " <option value=''></option> \n " ;
2012-06-04 14:58:40 +00:00
$result = $prep_statement -> fetchAll ( PDO :: FETCH_NAMED );
foreach ( $result as $field ) {
echo " <option value='" . $field [ 'user_uuid' ] . "'>" . $field [ 'username' ] . "</option> \n " ;
}
echo " </select>" ;
2013-05-04 00:35:21 +00:00
echo " <input type= \" submit \" class='btn' value= \" " . $text [ 'button-add' ] . " \" > \n " ;
2012-06-04 14:58:40 +00:00
unset ( $sql , $result );
echo " <br> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'description-user_list' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo " <br /> \n " ;
echo " </td>" ;
echo " </tr>" ;
}
2014-03-04 05:49:38 +00:00
if ( is_dir ( $_SERVER [ "DOCUMENT_ROOT" ] . PROJECT_PATH . '/app/voicemails' )) {
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2014-05-25 01:43:47 +00:00
echo " " . $text [ 'label-voicemail_password' ] . ": \n " ;
2014-03-04 05:49:38 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='password' name='voicemail_password' id='voicemail_password' onmouseover= \" this.type='number'; this.min='0'; this.step='1'; \" onfocus= \" this.type='text'; \" onmouseout= \" if (!$(this).is(':focus')) { this.type='password'; } \" onblur= \" this.type='password'; \" maxlength='255' value=' $voicemail_password '> \n " ;
2014-03-06 23:31:03 +00:00
echo " <br /> \n " ;
2014-05-25 01:43:47 +00:00
echo " " . $text [ 'description-voicemail_password' ] . " \n " ;
2014-03-04 05:49:38 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
}
2013-12-19 08:29:36 +00:00
2014-12-10 03:13:46 +00:00
if ( if_group ( "superadmin" ) || ( if_group ( "admin" ) && $billing_app_exists )) {
2014-06-18 11:53:31 +00:00
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
echo " " . $text [ 'label-accountcode' ] . ": \n " ;
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2014-12-10 03:13:46 +00:00
if ( $billing_app_exists ) {
$sql_accountcode = "SELECT type_value FROM v_billings WHERE domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "'" ;
echo "<select name='accountcode' id='accountcode' class='formfld'> \n " ;
$prep_statement_accountcode = $db -> prepare ( check_sql ( $sql_accountcode ));
$prep_statement_accountcode -> execute ();
$result_accountcode = $prep_statement_accountcode -> fetchAll ( PDO :: FETCH_NAMED );
foreach ( $result_accountcode as & $row_accountcode ) {
$selected = '' ;
if (( $action == "add" ) && ( $row_accountcode [ 'type_value' ] == $_SESSION [ 'domain_name' ])){
$selected = 'selected="selected"' ;
}
elseif ( $row_accountcode [ 'type_value' ] == $accountcode ){
$selected = 'selected="selected"' ;
}
echo "<option value= \" " . $row_accountcode [ 'type_value' ] . " \" $selected >" . $row_accountcode [ 'type_value' ] . "</option> \n " ;
2014-08-08 12:19:48 +00:00
}
2014-12-10 03:13:46 +00:00
unset ( $sql_accountcode , $prep_statement_accountcode , $result_accountcode );
echo "</select>" ;
}
else {
if ( $action == "add" ) { $accountcode = $_SESSION [ 'domain_name' ]; }
echo "<input class='formfld' type='text' name='accountcode' maxlength='255' value= \" " . $accountcode . " \" > \n " ;
2014-08-08 12:19:48 +00:00
}
echo "<br /> \n " ;
echo $text [ 'description-accountcode' ] . " \n " ;
echo "</td> \n " ;
echo "</tr> \n " ;
2014-06-18 11:53:31 +00:00
}
2012-06-04 14:58:40 +00:00
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-effective_caller_id_name' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
echo " <input class='formfld' type='text' name='effective_caller_id_name' maxlength='255' value= \" $effective_caller_id_name \" > \n " ;
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-effective_caller_id_name' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-effective_caller_id_number' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='number' name='effective_caller_id_number' min='0' step='1' maxlength='255' value= \" $effective_caller_id_number \" > \n " ;
2012-06-04 14:58:40 +00:00
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-effective_caller_id_number' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-outbound_caller_id_name' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2012-10-25 06:29:59 +00:00
if ( permission_exists ( 'outbound_caller_id_select' )) {
$sql = "select * from v_destinations " ;
2014-08-01 14:02:45 +00:00
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
2012-10-25 06:29:59 +00:00
$sql .= "and destination_type = 'inbound' " ;
$sql .= "order by destination_number asc " ;
$prep_statement = $db -> prepare ( check_sql ( $sql ));
$prep_statement -> execute ();
$result = $prep_statement -> fetchAll ( PDO :: FETCH_ASSOC );
if ( count ( $result ) > 0 ) {
echo " <select name='outbound_caller_id_name' id='outbound_caller_id_name' class='formfld'> \n " ;
2014-04-15 00:54:01 +00:00
echo " <option value=''></option> \n " ;
2012-10-25 06:29:59 +00:00
foreach ( $result as & $row ) {
if ( $outbound_caller_id_name == $row [ "destination_caller_id_name" ]) {
echo " <option value='" . $row [ "destination_caller_id_name" ] . "' selected='selected'>" . $row [ "destination_caller_id_name" ] . "</option> \n " ;
}
else {
echo " <option value='" . $row [ "destination_caller_id_name" ] . "'>" . $row [ "destination_caller_id_name" ] . "</option> \n " ;
}
}
echo " </select> \n " ;
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-outbound_caller_id_name-select' ] . " \n " ;
2012-10-25 06:29:59 +00:00
}
else {
2013-05-04 00:35:21 +00:00
echo " <input type= \" button \" class= \" btn \" name= \"\" alt= \" " . $text [ 'button-add' ] . " \" onclick= \" window.location='" . PROJECT_PATH . "/app/destinations/destinations.php' \" value='" . $text [ 'button-add' ] . "'> \n " ;
2012-10-25 06:29:59 +00:00
}
unset ( $prep_statement );
}
else {
echo " <input class='formfld' type='text' name='outbound_caller_id_name' maxlength='255' value= \" $outbound_caller_id_name \" > \n " ;
2013-05-04 00:35:21 +00:00
echo "<br /> \n " ;
echo $text [ 'description-outbound_caller_id_name-custom' ] . " \n " ;
2012-10-25 06:29:59 +00:00
}
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-outbound_caller_id_number' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2012-10-25 06:29:59 +00:00
if ( permission_exists ( 'outbound_caller_id_select' )) {
$sql = "select * from v_destinations " ;
2014-08-01 14:02:45 +00:00
$sql .= "where domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
2012-10-25 06:29:59 +00:00
$sql .= "and destination_type = 'inbound' " ;
$sql .= "order by destination_number asc " ;
$prep_statement = $db -> prepare ( check_sql ( $sql ));
$prep_statement -> execute ();
$result = $prep_statement -> fetchAll ( PDO :: FETCH_ASSOC );
if ( count ( $result ) > 0 ) {
echo " <select name='outbound_caller_id_number' id='outbound_caller_id_number' class='formfld'> \n " ;
2014-04-15 00:54:01 +00:00
echo " <option value=''></option> \n " ;
2012-10-25 06:29:59 +00:00
foreach ( $result as & $row ) {
if ( $outbound_caller_id_number == $row [ "destination_caller_id_number" ]) {
echo " <option value='" . $row [ "destination_caller_id_number" ] . "' selected='selected'>" . $row [ "destination_caller_id_number" ] . "</option> \n " ;
}
else {
echo " <option value='" . $row [ "destination_caller_id_number" ] . "'>" . $row [ "destination_caller_id_number" ] . "</option> \n " ;
}
}
echo " </select> \n " ;
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-outbound_caller_id_number-select' ] . " \n " ;
2012-10-25 06:29:59 +00:00
}
else {
2013-05-04 00:35:21 +00:00
echo " <input type= \" button \" class= \" btn \" name= \"\" alt= \" " . $text [ 'button-add' ] . " \" onclick= \" window.location='" . PROJECT_PATH . "/app/destinations/destinations.php' \" value='" . $text [ 'button-add' ] . "'> \n " ;
2012-10-25 06:29:59 +00:00
}
unset ( $prep_statement );
}
else {
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='number' name='outbound_caller_id_number' maxlength='255' min='0' step='1' value= \" $outbound_caller_id_number \" > \n " ;
2013-05-04 00:35:21 +00:00
echo "<br /> \n " ;
echo $text [ 'description-outbound_caller_id_number-custom' ] . " \n " ;
2012-10-25 06:29:59 +00:00
}
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
2014-05-01 04:18:27 +00:00
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
echo " " . $text [ 'label-emergency_caller_id_name' ] . ": \n " ;
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
echo " <input class='formfld' type='text' name='emergency_caller_id_name' maxlength='255' value= \" $emergency_caller_id_name \" > \n " ;
echo "<br /> \n " ;
echo $text [ 'description-emergency_caller_id_name' ] . " \n " ;
echo "</td> \n " ;
echo "</tr> \n " ;
2012-06-04 14:58:40 +00:00
echo "<tr> \n " ;
2012-06-04 15:04:54 +00:00
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-emergency_caller_id_number' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='number' name='emergency_caller_id_number' maxlength='255' min='0' step='1' value= \" $emergency_caller_id_number \" > \n " ;
2012-06-04 14:58:40 +00:00
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-emergency_caller_id_number' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-directory_full_name' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
echo " <input class='formfld' type='text' name='directory_full_name' maxlength='255' value= \" $directory_full_name \" > \n " ;
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-directory_full_name' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-directory_visible' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
echo " <select class='formfld' name='directory_visible'> \n " ;
2014-04-15 00:54:01 +00:00
if ( $directory_visible == "true" ) {
2013-05-04 00:35:21 +00:00
echo " <option value='true' selected='selected'>" . $text [ 'label-true' ] . "</option> \n " ;
2012-06-04 14:58:40 +00:00
}
else {
2013-05-04 00:35:21 +00:00
echo " <option value='true'>" . $text [ 'label-true' ] . "</option> \n " ;
2012-06-04 14:58:40 +00:00
}
2012-10-18 07:59:30 +00:00
if ( $directory_visible == "false" ) {
2013-05-04 00:35:21 +00:00
echo " <option value='false' selected >" . $text [ 'label-false' ] . "</option> \n " ;
2012-06-04 14:58:40 +00:00
}
else {
2013-05-04 00:35:21 +00:00
echo " <option value='false'>" . $text [ 'label-false' ] . "</option> \n " ;
2012-06-04 14:58:40 +00:00
}
echo " </select> \n " ;
echo "<br /> \n " ;
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-directory_visible' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-directory_exten_visible' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
echo " <select class='formfld' name='directory_exten_visible'> \n " ;
2014-04-15 00:54:01 +00:00
if ( $directory_exten_visible == "true" ) {
2013-05-04 00:35:21 +00:00
echo " <option value='true' selected='selected'>" . $text [ 'label-true' ] . "</option> \n " ;
2012-06-04 14:58:40 +00:00
}
else {
2013-05-04 00:35:21 +00:00
echo " <option value='true'>" . $text [ 'label-true' ] . "</option> \n " ;
2012-06-04 14:58:40 +00:00
}
2012-10-18 07:59:30 +00:00
if ( $directory_exten_visible == "false" ) {
2013-05-04 00:35:21 +00:00
echo " <option value='false' selected >" . $text [ 'label-false' ] . "</option> \n " ;
2012-06-04 14:58:40 +00:00
}
else {
2013-05-04 00:35:21 +00:00
echo " <option value='false'>" . $text [ 'label-false' ] . "</option> \n " ;
2012-06-04 14:58:40 +00:00
}
echo " </select> \n " ;
echo "<br /> \n " ;
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-directory_exten_visible' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-limit_max' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='number' name='limit_max' maxlength='255' min='1' step='1' value= \" $limit_max \" > \n " ;
2012-06-04 14:58:40 +00:00
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-limit_max' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
2013-05-04 00:35:21 +00:00
echo " " . $text [ 'label-limit_destination' ] . ": \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
echo " <input class='formfld' type='text' name='limit_destination' maxlength='255' value= \" $limit_destination \" > \n " ;
echo "<br /> \n " ;
2013-05-04 00:35:21 +00:00
echo $text [ 'description-limit_destination' ] . " \n " ;
2012-06-04 14:58:40 +00:00
echo "</td> \n " ;
echo "</tr> \n " ;
2013-04-28 07:24:41 +00:00
if ( $action == "update" ) {
2014-03-04 05:59:34 +00:00
if ( is_dir ( $_SERVER [ "DOCUMENT_ROOT" ] . PROJECT_PATH . '/app/devices' )) {
echo "<tr> \n " ;
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'> \n " ;
echo " " . $text [ 'label-provisioning' ] . ": \n " ;
echo "</td> \n " ;
echo "<td class='vtable' align='left'> \n " ;
2014-05-06 20:21:11 +00:00
echo " <input type='hidden' name='device_line_uuid' id='device_line_uuid' value=''>" ;
echo " <table> \n " ;
2014-03-04 05:59:34 +00:00
echo " <tr> \n " ;
echo " <td class='vtable'> \n " ;
echo " " . $text [ 'label-line' ] . " \n " ;
echo " </td> \n " ;
echo " <td class='vtable'> \n " ;
echo " " . $text [ 'label-device_mac_address' ] . " \n " ;
echo " </td> \n " ;
echo " <td class='vtable'> \n " ;
echo " " . $text [ 'label-device_template' ] . " \n " ;
echo " </td> \n " ;
2012-06-04 14:58:40 +00:00
2014-03-04 05:59:34 +00:00
echo " <td> \n " ;
//if (permission_exists('device_edit')) {
// echo " <a href='device_line_edit.php?device_uuid=".$row['device_uuid']."&id=".$row['device_line_uuid']."' alt='".$text['button-edit']."'>$v_link_label_edit</a>\n";
//}
//if (permission_exists('device_delete')) {
// echo " <a href='device_line_delete.php?device_uuid=".$row['device_uuid']."&id=".$row['device_line_uuid']."' alt='".$text['button-delete']."' onclick=\"return confirm('".$text['confirm-delete']."')\">$v_link_label_delete</a>\n";
//}
echo " </td> \n " ;
echo " </tr> \n " ;
2012-06-04 14:58:40 +00:00
2014-03-04 05:59:34 +00:00
$sql = "SELECT d.device_mac_address, d.device_template, d.device_description, l.device_line_uuid, l.device_uuid, l.line_number " ;
$sql .= "FROM v_device_lines as l, v_devices as d " ;
$sql .= "WHERE l.user_id = '" . $extension . "' " ;
$sql .= "AND l.domain_uuid = '" . $_SESSION [ 'domain_uuid' ] . "' " ;
$sql .= "AND l.device_uuid = d.device_uuid " ;
$sql .= "ORDER BY l.line_number, d.device_mac_address asc " ;
$prep_statement = $db -> prepare ( check_sql ( $sql ));
$prep_statement -> execute ();
$result = $prep_statement -> fetchAll ( PDO :: FETCH_NAMED );
$result_count = count ( $result );
foreach ( $result as $row ) {
$device_mac_address = $row [ 'device_mac_address' ];
$device_mac_address = substr ( $device_mac_address , 0 , 2 ) . '-' . substr ( $device_mac_address , 2 , 2 ) . '-' . substr ( $device_mac_address , 4 , 2 ) . '-' . substr ( $device_mac_address , 6 , 2 ) . '-' . substr ( $device_mac_address , 8 , 2 ) . '-' . substr ( $device_mac_address , 10 , 2 );
echo " <tr> \n " ;
echo " <td class='vtable'>" . $row [ 'line_number' ] . "</td> \n " ;
echo " <td class='vtable'><a href='/app/devices/device_edit.php?id=" . $row [ 'device_uuid' ] . "'>" . $device_mac_address . "</a></td> \n " ;
echo " <td class='vtable'>" . $row [ 'device_template' ] . " </td> \n " ;
//echo " <td class='vtable'>".$row['device_description']." </td>\n";
echo " <td> \n " ;
2014-05-06 20:21:11 +00:00
echo " <a href='#' onclick= \" if (confirm('" . $text [ 'confirm-delete' ] . "')) { document.getElementById('delete_type').value = 'device_line'; document.getElementById('delete_uuid').value = '" . $row [ 'device_line_uuid' ] . "'; document.forms.frm.submit(); } \" alt='" . $text [ 'button-delete' ] . "'> $v_link_label_delete </a> \n " ;
2014-03-04 05:59:34 +00:00
echo " </td> \n " ;
echo " </tr> \n " ;
}
2013-12-08 09:00:33 +00:00
2014-03-04 05:59:34 +00:00
echo " <tr> \n " ;
echo " <td class='vtable'>" ;
2014-05-06 20:21:11 +00:00
echo " <select id='line_number' name='line_number' class='formfld' style='width: auto;' onchange= \" $onchange \" > \n " ;
2014-03-04 05:59:34 +00:00
echo " <option value=''></option> \n " ;
echo " <option value='1'>1</option> \n " ;
echo " <option value='2'>2</option> \n " ;
echo " <option value='3'>3</option> \n " ;
echo " <option value='4'>4</option> \n " ;
echo " <option value='5'>5</option> \n " ;
echo " <option value='6'>6</option> \n " ;
echo " <option value='7'>7</option> \n " ;
echo " <option value='8'>8</option> \n " ;
echo " <option value='9'>9</option> \n " ;
echo " <option value='10'>10</option> \n " ;
echo " <option value='11'>11</option> \n " ;
echo " <option value='12'>12</option> \n " ;
echo " <option value='13'>13</option> \n " ;
echo " <option value='14'>14</option> \n " ;
echo " <option value='15'>15</option> \n " ;
echo " <option value='16'>16</option> \n " ;
echo " <option value='17'>17</option> \n " ;
echo " <option value='18'>18</option> \n " ;
echo " <option value='19'>19</option> \n " ;
echo " <option value='20'>20</option> \n " ;
echo " <option value='21'>21</option> \n " ;
echo " <option value='22'>22</option> \n " ;
echo " <option value='23'>23</option> \n " ;
echo " <option value='24'>24</option> \n " ;
echo " <option value='25'>25</option> \n " ;
echo " <option value='26'>26</option> \n " ;
echo " <option value='27'>27</option> \n " ;
echo " <option value='28'>28</option> \n " ;
echo " <option value='29'>29</option> \n " ;
echo " <option value='30'>30</option> \n " ;
echo " </select> \n " ;
echo " </td> \n " ;
echo " <td class='vtable'>" ;
2014-05-06 20:21:11 +00:00
echo " <table border='0' cellpadding='1' cellspacing='0'> \n " ;
2014-03-04 05:59:34 +00:00
echo " <tr> \n " ;
2014-05-06 20:21:11 +00:00
echo " <td id= \" cell_device_mac_address_1 \" nowrap='nowrap'> \n " ;
2014-03-04 05:59:34 +00:00
?>
<script>
var Objs;
function changeToInput_device_mac_address(obj){
tb=document.createElement('INPUT');
tb.type='text';
tb.name=obj.name;
tb.className='formfld';
tb.setAttribute('id', 'device_mac_address');
tb.setAttribute('style', 'width: 80%;');
2014-12-23 01:06:20 +00:00
tb.setAttribute('pattern', '^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$');
2014-03-04 05:59:34 +00:00
tb.value=obj.options[obj.selectedIndex].value;
document.getElementById('btn_select_to_input_device_mac_address').style.visibility = 'hidden';
tbb=document.createElement('INPUT');
tbb.setAttribute('class', 'btn');
2014-08-03 06:12:10 +00:00
tbb.setAttribute('style', 'margin-left: 4px;');
2014-03-04 05:59:34 +00:00
tbb.type='button';
2014-08-03 07:02:12 +00:00
tbb.value=$("<div />").html('◁').text();
2014-03-04 05:59:34 +00:00
tbb.objs=[obj,tb,tbb];
tbb.onclick=function(){ replace_device_mac_address(this.objs); }
obj.parentNode.insertBefore(tb,obj);
obj.parentNode.insertBefore(tbb,obj);
obj.parentNode.removeChild(obj);
replace_device_mac_address(this.objs);
}
2013-12-08 09:00:33 +00:00
2014-03-04 05:59:34 +00:00
function replace_device_mac_address(obj){
obj[2].parentNode.insertBefore(obj[0],obj[2]);
obj[0].parentNode.removeChild(obj[1]);
obj[0].parentNode.removeChild(obj[2]);
document.getElementById('btn_select_to_input_device_mac_address').style.visibility = 'visible';
}
</script>
<?php
$sql = "SELECT * FROM v_devices ";
$sql .= "WHERE domain_uuid = '".$_SESSION["domain_uuid"]."' ";
$sql .= "ORDER BY device_mac_address asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
2014-07-11 05:34:27 +00:00
echo " <select id=\"device_mac_address\" name=\"device_mac_address\" class='formfld' style='width: 180px;' onchange='changeToInput_device_mac_address(this);this.style.visibility = \"hidden\";'>\n";
2014-03-04 05:59:34 +00:00
echo " <option value=''></option>\n";
if (count($result) > 0) {
foreach($result as $field) {
if (strlen($field["device_mac_address"]) > 0) {
if ($field_current_value == $field["device_mac_address"]) {
echo " <option value=\"".$field["device_mac_address"]."\" selected>".$field["device_mac_address"]."</option>\n";
}
else {
echo " <option value=\"".$field["device_mac_address"]."\">".$field["device_mac_address"]." ".$field['device_model']." ".$field['device_description']."</option>\n";
}
2013-12-08 08:30:16 +00:00
}
}
2013-04-28 07:24:41 +00:00
}
2014-03-04 05:59:34 +00:00
unset($sql, $result, $result_count);
echo " </select>\n";
2014-08-03 07:02:12 +00:00
echo " <input type='button' id='btn_select_to_input_device_mac_address' class='btn' name='' alt='".$text['button-back']."' onclick='changeToInput_device_mac_address(document.getElementById(\"device_mac_address\"));this.style.visibility = \"hidden\";' value='◁'>\n";
2014-03-04 05:59:34 +00:00
echo " </td>\n";
echo " </tr>\n";
echo " </table>\n";
echo " </td>\n";
echo " <td class='vtable'>";
$device = new device;
$template_dir = $device->get_template_dir();
2014-05-06 20:21:11 +00:00
echo "<select id='device_template' name='device_template' class='formfld'>\n";
2014-03-04 05:59:34 +00:00
echo "<option value=''></option>\n";
if($dh = opendir($template_dir)) {
while($dir = readdir($dh)) {
if($file != "." && $dir != ".." && $dir[0] != '.') {
if(is_dir($template_dir . "/" . $dir)) {
echo "<optgroup label='$dir'>";
if($dh_sub = opendir($template_dir.'/'.$dir)) {
while($dir_sub = readdir($dh_sub)) {
if($file_sub != '.' && $dir_sub != '..' && $dir_sub[0] != '.') {
if(is_dir($template_dir . '/' . $dir .'/'. $dir_sub)) {
if ($device_template == $dir."/".$dir_sub) {
echo "<option value='".$dir."/".$dir_sub."' selected='selected'>".$dir."/".$dir_sub."</option>\n";
}
else {
echo "<option value='".$dir."/".$dir_sub."'>".$dir."/".$dir_sub."</option>\n";
}
2013-11-26 10:14:38 +00:00
}
}
}
2014-03-04 05:59:34 +00:00
closedir($dh_sub);
2013-11-26 10:14:38 +00:00
}
2014-03-04 05:59:34 +00:00
echo "</optgroup>";
2013-11-26 10:14:38 +00:00
}
}
}
2014-03-04 05:59:34 +00:00
closedir($dh);
2013-11-26 10:14:38 +00:00
}
2014-03-04 05:59:34 +00:00
echo "</select>\n";
echo " </td>\n";
echo " <td>\n";
echo " <input type=\"submit\" class='btn' value=\"".$text['button-add']."\">\n";
echo " </td>\n";
echo " </table>\n";
echo " <br />\n";
echo $text['description-provisioning']."\n";
echo "</td>\n";
echo "</tr>\n";
2013-11-26 10:14:38 +00:00
}
2012-06-04 14:58:40 +00:00
}
2012-08-10 15:53:02 +00:00
2014-03-04 05:49:38 +00:00
if (is_dir($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/app/voicemails')) {
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2014-05-25 01:43:47 +00:00
echo " ".$text['label-voicemail_enabled'].":\n";
2014-03-04 05:49:38 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2014-05-25 01:43:47 +00:00
echo " <select class='formfld' name='voicemail_enabled'>\n";
if ($voicemail_enabled == "true") {
2014-03-04 05:49:38 +00:00
echo " <option value='true' selected='selected'>".$text['label-true']."</option>\n";
}
else {
echo " <option value='true'>".$text['label-true']."</option>\n";
}
2014-05-25 01:43:47 +00:00
if ($voicemail_enabled == "false") {
2014-03-04 05:49:38 +00:00
echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
2014-05-25 01:43:47 +00:00
echo $text['description-voicemail_enabled']."\n";
2014-03-04 05:49:38 +00:00
echo "</td>\n";
echo "</tr>\n";
2012-06-04 14:58:40 +00:00
2014-03-04 05:49:38 +00:00
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2014-05-25 01:43:47 +00:00
echo " ".$text['label-voicemail_mail_to'].":\n";
2014-03-04 05:49:38 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='email' name='voicemail_mail_to' maxlength='255' value=\"$voicemail_mail_to\">\n";
2014-03-04 05:49:38 +00:00
echo "<br />\n";
2014-05-25 01:43:47 +00:00
echo $text['description-voicemail_mail_to']."\n";
2014-03-04 05:49:38 +00:00
echo "</td>\n";
echo "</tr>\n";
2012-06-04 14:58:40 +00:00
2014-03-04 05:49:38 +00:00
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2014-05-25 01:43:47 +00:00
echo " ".$text['label-voicemail_attach_file'].":\n";
2014-03-04 05:49:38 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2014-05-25 01:43:47 +00:00
echo " <select class='formfld' name='voicemail_attach_file'>\n";
if ($voicemail_attach_file == "true") {
2014-03-04 05:49:38 +00:00
echo " <option value='true' selected >".$text['label-true']."</option>\n";
}
else {
echo " <option value='true'>".$text['label-true']."</option>\n";
}
2014-05-25 01:43:47 +00:00
if ($voicemail_attach_file == "false") {
2014-03-04 05:49:38 +00:00
echo " <option value='false' selected >".$text['label-false']."</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
2014-05-25 01:43:47 +00:00
echo $text['description-voicemail_attach_file']."\n";
2014-03-04 05:49:38 +00:00
echo "</td>\n";
echo "</tr>\n";
2012-06-04 14:58:40 +00:00
2014-03-04 05:49:38 +00:00
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2014-05-25 01:43:47 +00:00
echo " ".$text['label-voicemail_local_after_email'].":\n";
2014-03-04 05:49:38 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2014-05-25 01:43:47 +00:00
echo " <select class='formfld' name='voicemail_local_after_email'>\n";
if ($voicemail_local_after_email == "true") {
2014-03-04 05:49:38 +00:00
echo " <option value='true' selected >".$text['label-true']."</option>\n";
}
else {
echo " <option value='true'>".$text['label-true']."</option>\n";
}
2014-05-25 01:43:47 +00:00
if ($voicemail_local_after_email == "false") {
2014-03-04 05:49:38 +00:00
echo " <option value='false' selected >".$text['label-false']."</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
2014-05-25 01:43:47 +00:00
echo $text['description-voicemail_local_after_email']."\n";
2014-03-04 05:49:38 +00:00
echo "</td>\n";
echo "</tr>\n";
2012-06-04 14:58:40 +00:00
}
if (permission_exists('extension_toll')) {
2013-05-04 00:35:21 +00:00
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-toll_allow'].":\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2012-06-04 14:58:40 +00:00
echo " <input class='formfld' type='text' name='toll_allow' maxlength='255' value=\"$toll_allow\">\n";
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-toll_allow']."\n";
echo "</td>\n";
echo "</tr>\n";
2012-06-04 14:58:40 +00:00
}
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-call_timeout'].":\n";
2013-04-02 07:36:28 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='number' name='call_timeout' maxlength='255' min='1' step='1' value=\"$call_timeout\">\n";
2013-04-02 07:36:28 +00:00
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-call_timeout']."\n";
2013-04-02 07:36:28 +00:00
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-call_group'].":\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2013-04-02 07:36:28 +00:00
echo " <input class='formfld' type='text' name='call_group' maxlength='255' value=\"$call_group\">\n";
2012-06-04 14:58:40 +00:00
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-call_group']."\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "</tr>\n";
2014-04-02 06:43:11 +00:00
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2014-04-03 17:32:38 +00:00
echo " ".$text['label-user_record'].":\n";
2014-04-02 06:43:11 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2014-04-03 17:32:38 +00:00
echo " <select class='formfld' name='user_record'>\n";
2014-04-15 00:54:01 +00:00
echo " <option value=''>".$text['label-user_record_none']."</option>\n";
2014-04-03 17:32:38 +00:00
if ($user_record == "all") {
echo " <option value='all' selected='selected'>".$text['label-user_record_all']."</option>\n";
2014-04-02 06:43:11 +00:00
}
else {
2014-04-03 17:32:38 +00:00
echo " <option value='all'>".$text['label-user_record_all']."</option>\n";
2014-04-02 06:43:11 +00:00
}
2014-04-03 17:32:38 +00:00
if ($user_record == "local") {
echo " <option value='local' selected='selected'>".$text['label-user_record_local']."</option>\n";
2014-04-02 06:43:11 +00:00
}
else {
2014-04-03 17:32:38 +00:00
echo " <option value='local'>".$text['label-user_record_local']."</option>\n";
2014-04-02 06:43:11 +00:00
}
2014-04-03 17:32:38 +00:00
if ($user_record == "inbound") {
echo " <option value='inbound' selected='selected'>".$text['label-user_record_inbound']."</option>\n";
2014-04-02 06:43:11 +00:00
}
else {
2014-04-03 17:32:38 +00:00
echo " <option value='inbound'>".$text['label-user_record_inbound']."</option>\n";
}
if ($user_record == "outbound") {
echo " <option value='outbound' selected='selected'>".$text['label-user_record_outbound']."</option>\n";
}
else {
echo " <option value='outbound'>".$text['label-user_record_outbound']."</option>\n";
2014-04-02 06:43:11 +00:00
}
echo " </select>\n";
echo "<br />\n";
2014-04-03 17:32:38 +00:00
echo $text['description-user_record']."\n";
2014-04-02 06:43:11 +00:00
echo "</td>\n";
echo "</tr>\n";
2014-03-04 05:41:28 +00:00
if (is_dir($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/app/music_on_hold')) {
echo "<tr>\n";
echo "<td width=\"30%\" class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-hold_music'].":\n";
echo "</td>\n";
echo "<td width=\"70%\" class='vtable' align='left'>\n";
require_once "app/music_on_hold/resources/classes/switch_music_on_hold.php";
$moh= new switch_music_on_hold;
$moh->select_name = "hold_music";
$moh->select_value = $hold_music;
echo $moh->select();
echo " <br />\n";
echo $text['description-hold_music']."\n";
echo "</td>\n";
echo "</tr>\n";
}
2012-11-20 19:36:37 +00:00
2012-06-04 14:58:40 +00:00
if (if_group("superadmin")) {
2012-10-18 07:59:30 +00:00
if (strlen($user_context) == 0) {
2012-06-04 14:58:40 +00:00
if (count($_SESSION["domains"]) > 1) {
$user_context = $_SESSION['domain_name'];
}
else {
$user_context = "default";
}
}
echo "<tr>\n";
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-user_context'].":\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='text' name='user_context' maxlength='255' value=\"$user_context\" required='required'>\n";
2012-06-04 14:58:40 +00:00
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-user_context']."\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "</tr>\n";
}
//--- begin: show_advanced -----------------------
2014-05-25 02:49:00 +00:00
2014-07-07 19:33:17 +00:00
echo "<tr>\n";
echo "<td style='padding: 0px;' colspan='2' class='' valign='top' align='left' nowrap>\n";
echo " <div id=\"show_advanced_box\">\n";
echo " <table width=\"100%\" border=\"0\" cellpadding=\"6\" cellspacing=\"0\">\n";
echo " <tr>\n";
echo " <td width=\"30%\" valign=\"top\" class=\"vncell\"> </td>\n";
echo " <td width=\"70%\" class=\"vtable\">\n";
echo " <input type=\"button\" class=\"btn\" onClick=\"show_advanced_config()\" value=\"".$text['button-advanced']."\"></input>\n";
echo " </td>\n";
echo " </tr>\n";
echo " </table>\n";
echo " </div>\n";
echo " <div id=\"show_advanced\" style=\"display:none\">\n";
echo " <table width=\"100%\" border=\"0\" cellpadding=\"6\" cellspacing=\"0\">\n";
2012-06-04 14:58:40 +00:00
2014-07-07 19:33:17 +00:00
echo "<tr>\n";
echo "<td width=\"30%\" class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-auth_acl'].":\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
2014-07-07 19:33:17 +00:00
echo "<td width=\"70%\" class='vtable' align='left'>\n";
2014-05-25 05:40:06 +00:00
echo " <input class='formfld' type='text' name='auth_acl' maxlength='255' value=\"$auth_acl\">\n";
echo " <br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-auth_acl']."\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "</tr>\n";
2014-07-07 19:33:17 +00:00
echo "<tr>\n";
2012-06-04 14:58:40 +00:00
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-cidr'].":\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='cidr' maxlength='255' value=\"$cidr\">\n";
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-cidr']."\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "</tr>\n";
2014-07-07 19:33:17 +00:00
echo "<tr>\n";
2012-06-04 14:58:40 +00:00
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-sip_force_contact'].":\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='sip_force_contact'>\n";
echo " <option value=''></option>\n";
2013-05-04 00:35:21 +00:00
switch ($sip_force_contact) {
case "NDLB-connectile-dysfunction" : $selected[1] = "selected='selected'"; break;
case "NDLB-connectile-dysfunction-2.0" : $selected[2] = "selected='selected'"; break;
case "NDLB-tls-connectile-dysfunction" : $selected[3] = "selected='selected'"; break;
2012-06-04 14:58:40 +00:00
}
2014-04-02 06:41:16 +00:00
echo " <option value='NDLB-connectile-dysfunction' ".$selected[1].">".$text['label-rewrite_contact_ip_and_port']."</option>\n";
echo " <option value='NDLB-connectile-dysfunction-2.0' ".$selected[2].">".$text['label-rewrite_contact_ip_and_port_2']."</option>\n";
echo " <option value='NDLB-tls-connectile-dysfunction' ".$selected[3].">".$text['label-rewrite_tls_contact_port']."</option>\n";
2013-05-04 00:35:21 +00:00
unset($selected);
2012-06-04 14:58:40 +00:00
echo " </select>\n";
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-sip_force_contact']."\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "</tr>\n";
2014-07-07 19:33:17 +00:00
echo "<tr>\n";
2012-06-04 14:58:40 +00:00
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-sip_force_expires'].":\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2014-12-21 05:46:21 +00:00
echo " <input class='formfld' type='number' name='sip_force_expires' maxlength='255' min='1' step='1' value=\"$sip_force_expires\">\n";
2012-06-04 14:58:40 +00:00
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-sip_force_expires']."\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "</tr>\n";
2014-07-25 22:33:56 +00:00
if (if_group("superadmin")) {
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-nibble_account'].":\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='nibble_account' maxlength='255' value=\"$nibble_account\">\n";
echo "<br />\n";
echo $text['description-nibble_account']."\n";
echo "</td>\n";
echo "</tr>\n";
}
2012-06-04 14:58:40 +00:00
2014-07-07 19:33:17 +00:00
echo "<tr>\n";
2012-06-04 14:58:40 +00:00
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-mwi_account'].":\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='mwi_account' maxlength='255' value=\"$mwi_account\">\n";
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-mwi_account']."\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "</tr>\n";
2014-07-07 19:33:17 +00:00
echo "<tr>\n";
2012-06-04 14:58:40 +00:00
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-sip_bypass_media'].":\n";
echo "</td>\n";
2012-06-04 14:58:40 +00:00
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='sip_bypass_media'>\n";
echo " <option value=''></option>\n";
2013-05-04 00:35:21 +00:00
switch ($sip_bypass_media) {
case "bypass-media" : $selected[1] = "selected='selected'"; break;
case "bypass-media-after-bridge" : $selected[2] = "selected='selected'"; break;
case "proxy-media" : $selected[3] = "selected='selected'"; break;
2012-06-04 14:58:40 +00:00
}
2014-04-02 06:41:16 +00:00
echo " <option value='bypass-media' ".$selected[1].">".$text['label-bypass_media']."</option>\n";
echo " <option value='bypass-media-after-bridge'".$selected[2].">".$text['label-bypass_media_after_bridge']."</option>\n";
echo " <option value='proxy-media'".$selected[3].">".$text['label-proxy_media']."</option>\n";
2013-05-04 00:35:21 +00:00
unset($selected);
2012-06-04 14:58:40 +00:00
echo " </select>\n";
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-sip_bypass_media']."\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "</tr>\n";
2014-07-07 19:33:17 +00:00
echo "<tr>\n";
2012-06-04 15:04:54 +00:00
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-dial_string'].":\n";
2012-06-04 15:04:54 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
2012-10-06 19:33:20 +00:00
echo " <input class='formfld' type='text' name='dial_string' maxlength='4096' value=\"$dial_string\">\n";
2012-06-04 15:04:54 +00:00
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-dial_string']."\n";
2012-06-04 15:04:54 +00:00
echo "</td>\n";
echo "</tr>\n";
2014-07-07 19:33:17 +00:00
echo " </table>\n";
echo " </div>";
echo "</td>\n";
echo "</tr>\n";
2012-06-04 14:58:40 +00:00
//--- end: show_advanced -----------------------
2013-12-14 00:50:57 +00:00
if (permission_exists('extension_enabled')) {
echo "<tr>\n";
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-enabled'].":\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='enabled'>\n";
2014-04-15 00:54:01 +00:00
if ($enabled == "true") {
2013-12-14 00:50:57 +00:00
echo " <option value='true' selected='selected'>".$text['label-true']."</option>\n";
}
else {
echo " <option value='true'>".$text['label-true']."</option>\n";
}
if ($enabled == "false") {
echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
}
else {
echo " <option value='false'>".$text['label-false']."</option>\n";
}
echo " </select>\n";
echo "<br />\n";
echo $text['description-enabled']."\n";
echo "</td>\n";
echo "</tr>\n";
2012-06-04 14:58:40 +00:00
}
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
2013-05-04 00:35:21 +00:00
echo " ".$text['label-description'].":\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <textarea class='formfld' name='description' rows='4'>$description</textarea>\n";
echo "<br />\n";
2013-05-04 00:35:21 +00:00
echo $text['description-description']."\n";
2012-06-04 14:58:40 +00:00
echo "</td>\n";
echo "</tr>\n";
echo " <tr>\n";
echo " <td colspan='2' align='right'>\n";
if ($action == "update") {
2014-05-06 20:21:11 +00:00
echo " <input type='hidden' name='extension_uuid' value='".$extension_uuid."'>\n";
echo " <input type='hidden' name='id' id='id' value='".$extension_uuid."'>";
echo " <input type='hidden' name='domain_uuid' id='domain_uuid' value='".$_SESSION['domain_uuid']."'>";
echo " <input type='hidden' name='delete_type' id='delete_type' value=''>";
echo " <input type='hidden' name='delete_uuid' id='delete_uuid' value=''>";
2012-06-04 14:58:40 +00:00
}
2014-05-06 20:21:11 +00:00
echo " <input type='submit' class='btn' value='".$text['button-save']."'>\n";
2012-06-04 14:58:40 +00:00
echo " </td>\n";
echo " </tr>";
echo "</table>";
echo "</form>";
echo " </td>";
echo " </tr>";
echo "</table>";
echo "</div>";
2013-07-06 06:29:50 +00:00
require_once "resources/footer.php";
2014-06-18 11:53:31 +00:00
?>