X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fgofon%2Fphoneaccount%2Fclass_phoneAccount.inc;h=0cf7ac03a6684df4a90025ec05e5a1f02382b3cc;hb=9ba37d0ddd9297f3eded1e12d899e939d9f15555;hp=2a862b040f1eeb33610ffd79b98e3e156d80222f;hpb=3e7419bb1693c6e6096075efcac71d1dfea578ce;p=gosa.git
diff --git a/plugins/gofon/phoneaccount/class_phoneAccount.inc b/plugins/gofon/phoneaccount/class_phoneAccount.inc
index 2a862b040..0cf7ac03a 100644
--- a/plugins/gofon/phoneaccount/class_phoneAccount.inc
+++ b/plugins/gofon/phoneaccount/class_phoneAccount.inc
@@ -8,7 +8,7 @@ class phoneAccount extends plugin
var $has_mailAccount= FALSE;
/* Attributes */
- var $telephoneNumber = "";
+ var $telephoneNumber = array();
var $goFonHardware = "";
var $goFonFormat = "";
var $goFonPIN = "";
@@ -19,7 +19,8 @@ class phoneAccount extends plugin
var $hardware_list = array();
var $used_hardware = array();
var $goFonMacro = "";
- var $macro = 0; // Selected Macro
+ var $macro = 0; // Selected Macroi
+ var $lastmacro = "";
var $macros = array(); // List of macros for smarty select box
var $macroarray = array(); // All needed macro informations
var $macrostillavailable = false;
@@ -33,13 +34,18 @@ class phoneAccount extends plugin
var $cli_parameters = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
/* attribute list for save action */
- var $attributes = array("goFonDeliveryMode", "goFonFormat","uid","cn","mail",
+ var $CopyPasteVars = array("phoneNumbers","macroarray","macrostillavailable"/*"phoneNumbers" -Reset- */,
+ "hardware_list","used_hardware");
+
+ var $attributes = array("goFonDeliveryMode", "goFonFormat","uid","cn",
"goFonHardware","goFonPIN","goFonVoicemailPIN","telephoneNumber", "goFonMacro","macro");
var $objectclasses= array("goFonAccount");
- function phoneAccount ($config, $dn= NULL)
+ var $uid;
+
+ function phoneAccount ($config, $dn= NULL, $parent= NULL)
{
- plugin::plugin ($config, $dn);
+ plugin::plugin ($config, $dn, $parent);
/* Set phone hardware */
if (!isset($this->attrs['goFonHardware'])){
@@ -69,7 +75,9 @@ class phoneAccount extends plugin
$a_SETUP= array();
if(array_key_exists('config',$_SESSION) &&
array_key_exists('SERVERS',$_SESSION['config']->data) &&
- array_key_exists('FON',$_SESSION['config']->data['SERVERS'])) {
+ array_key_exists('FON',$_SESSION['config']->data['SERVERS']) &&
+ is_callable("mysql_connect")
+ ) {
$a_SETUP = $_SESSION['config']->data['SERVERS']['FON'];
$r_con = @mysql_pconnect($a_SETUP['SERVER'],$a_SETUP['LOGIN'],$a_SETUP['PASSWORD']);
if(!$r_con){
@@ -214,13 +222,13 @@ class phoneAccount extends plugin
}
- /* Get voicemail PIN from MySQL DB
- * Because every user can change his PIN directly from the phone
- * without any update to the ldap
- * This means, the PIN in the DB is up to date
- */
+ /* Get voicemail PIN from MySQL DB
+ * Because every user can change his PIN directly from the phone
+ * without any update to the ldap
+ * This means, the PIN in the DB is up to date
+ */
// Connect to DB server
- if((isset($a_SETUP))&&(isset($a_SETUP['SERVER']))&&(isset($a_SETUP['LOGIN']))&&(isset($a_SETUP['PASSWORD']))){
+ if((is_callable("mysql_pconnect"))&&(isset($a_SETUP))&&(isset($a_SETUP['SERVER']))&&(isset($a_SETUP['LOGIN']))&&(isset($a_SETUP['PASSWORD']))){
$r_con = @mysql_pconnect($a_SETUP['SERVER'],$a_SETUP['LOGIN'],$a_SETUP['PASSWORD']);
if($r_con){
$r_db = @mysql_select_db($a_SETUP['DB'],$r_con);
@@ -231,7 +239,11 @@ class phoneAccount extends plugin
}
}
}
- @mysql_close($r_con) ;
+ $this->lastmacro=$this->macro;
+
+ if(is_callable("mysql_close")&&(isset($r_con))&&($r_con)){
+ @mysql_close($r_con) ;
+ }
}
@@ -239,10 +251,17 @@ class phoneAccount extends plugin
function generate_mysql_entension_entries($save = false){
if(!isset($_SESSION['config']->data['SERVERS']['FON'])){
- print_red(_("There is currently no asterisk server defined. Possibly you are missing a server that handles the asterisk management (goFonServer).\nYour Settings can't be saved to asterisk Database."));
+ if($save)
+ print_red(_("There is currently no asterisk server defined. Possibly you are missing a server that handles the asterisk management (goFonServer). Your settings can't be saved to asterisk database."));
return(true);
}
+ if(!is_callable("mysql_pconnect")){
+ if($save)
+ print_red(_("Can't save any changes to asterisk database, there is no mysql extension available."));
+ return(true);
+ }
+
// Get Configuration for Mysql database Server
$a_SETUP = $_SESSION['config']->data['SERVERS']['FON']; // DB Configuration
$s_parameter = ""; // Contains paramter for selected Macro
@@ -253,7 +272,7 @@ class phoneAccount extends plugin
$s_ip = NULL; // Contains ip for Sip entry
$s_host = NULL; // Contains host for Sip entry
- $s_qualify = NULL; // Qualify entry
+ $s_qualify = "yes"; // Qualify entry
$s_pin = NULL; // Entry for secret
$s_type = NULL; // Entry for phone type (friend , peer ..)
@@ -270,7 +289,7 @@ class phoneAccount extends plugin
$b_first_deleted= false; // Only delete first entry,
$s_telenums = ""; // for each value variable
- $i_is_accounted =false; // Ensure that extension entry, for name to number is only once in table
+ $i_is_accounted = false; // Ensure that extension entry, for name to number is only once in table
// Connect to DB server
@@ -419,14 +438,15 @@ class phoneAccount extends plugin
$SQL[] = "DELETE FROM ".$a_SETUP['VOICE_TABLE']." WHERE customer_id=".$newnums[$i_new_key].";";
// Delete old entries
$b_first_deleted =false;
- foreach($oldnums as $s_telenums){
- $SQL[] = "DELETE FROM ".$a_SETUP['EXT_TABLE']." WHERE exten='".$s_telenums."';\n";
- if(!$b_first_deleted){
- $b_first_deleted=true;
- $SQL[] = "DELETE FROM ".$a_SETUP['VOICE_TABLE']." WHERE customer_id=".$s_telenums.";";
+ if(isset($oldnums) && is_array($oldnums)){
+ foreach($oldnums as $s_telenums){
+ $SQL[] = "DELETE FROM ".$a_SETUP['EXT_TABLE']." WHERE exten='".$s_telenums."';\n";
+ if(!$b_first_deleted){
+ $b_first_deleted=true;
+ $SQL[] = "DELETE FROM ".$a_SETUP['VOICE_TABLE']." WHERE customer_id=".$s_telenums.";";
+ }
}
}
-
if($this->goFonHardware=="automatic"){
foreach($SQL as $query ){
mysql_query($query) ;
@@ -554,6 +574,9 @@ class phoneAccount extends plugin
function execute()
{
+ /* Call parent execute */
+ plugin::execute();
+
$display = "";
if(empty($this->macro)&&(!empty($this->goFonMacro))){
@@ -624,7 +647,7 @@ class phoneAccount extends plugin
/* check if there is a FON server created */
if(!isset($_SESSION['config']->data['SERVERS']['FON'])){
- print_red(_("There is currently no asterisk server defined. Possibly you are missing a server that handles the asterisk management (goFonServer).\nYour Settings can't be saved to asterisk Database."));
+ print_red(_("There is currently no asterisk server defined. Possibly you are missing a server that handles the asterisk management (goFonServer). Your settings can't be saved to asterisk database."));
}
/* Create parameter table, skip if no parameters given */
@@ -635,21 +658,20 @@ class phoneAccount extends plugin
$macrotab ="
";
/* for every single parameter-> display textfile,combo, or true false switch*/
+ foreach($this->phoneNumbers as $phonenum){
+ $tmp[] = $phonenum;
+ }
- /* Automatic fill out */
- if(isset($_POST['fillout'])){
-
- foreach($this->phoneNumbers as $phonenum){
- $tmp[] = $phonenum;
- }
-
+
+
+ if($this->macro != $this->lastmacro){
/* Go through all params */
foreach($this->macroarray[$this->macro] as $key => $paras){
$string = $paras['default'];
$string=preg_replace("/%uid/i",$this->uid,$string);
-
+
if(isset($this->cn)){
$string=preg_replace("/%cn/i",$this->cn,$string);
}
@@ -659,7 +681,9 @@ class phoneAccount extends plugin
$string = preg_replace("/%telephoneNumber_".($i+1)."/i",$tmp[$i],$string);
}
}
-
+ if(isset($tmp[0])){
+ $string = preg_replace("/%telephoneNumber/i",$tmp[0],$string);
+ }
$this->macroarray[$this->macro][$key]['choosen']=$string;
}
}
@@ -679,7 +703,7 @@ class phoneAccount extends plugin
switch ($type){
case "combo":
- $str= "