summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c40ad99)
raw | patch | inline | side by side (parent: c40ad99)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 29 Jul 2010 12:14:22 +0000 (12:14 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 29 Jul 2010 12:14:22 +0000 (12:14 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@19222 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-plugins/gofon/admin/ogroups/gofon/class_phonequeue.inc | patch | blob | history |
diff --git a/gosa-plugins/gofon/admin/ogroups/gofon/class_phonequeue.inc b/gosa-plugins/gofon/admin/ogroups/gofon/class_phonequeue.inc
index 917756ee60067dba6dc9cda8d40a72188dfeba05..be7531b946f14a7e46116dd7c444ed4560c37413 100644 (file)
class phonequeue extends plugin
{
- /* plugin specific values */
- var $mail= "";
- var $cn= "";
- var $old_cn ="";
-
- var $goFonTimeOut ="20";
- var $goFonMaxLen ="20"; //
- var $goFonAnnounceFrequency ="60"; // Annouce Frequency in seconds
- var $goFonDialOptiont ="";
- var $goFonDialOptionT ="";
- var $goFonDialOptionh ="";
- var $goFonDialOptionr ="";
- var $goFonDialOptionH ="";
- var $goFonQueueAnnounce ="gonicus-berlin-welcome";
- var $goFonMusiconHold ="default";
- var $goFonWelcomeMusic ="gonicus-berlin-welcome";
- var $goFonQueueReportHold ="yes";
- var $goFonQueueYouAreNext ="queue-youarenext";
- var $goFonQueueThereAre ="queue-thereare";
- var $goFonQueueCallsWaiting ="queue-callswaiting";
- var $goFonQueueThankYou ="queue-thankyou";
- var $goFonQueueMinutes ="queue-minutes";
- var $goFonQueueSeconds ="queue-seconds";
- var $goFonQueueLessThan ="queue-lessthan";
- var $goFonQueueLanguage ="queue-holdtime";
- var $goFonQueueStrategy ="ringall";
- var $goFonQueueAnnounceHoldtime="yes";
- var $telephoneNumber =array();
- var $goFonQueueMember =array();
- var $goFonDialOption ="";
- var $goFonQueueRetry =5;
-
- var $goFonQueueStrategyOptions=array();
- var $goFonQueueStrategyOptionsR=array();
-
- var $old_phone_numbers =array();
-
- var $goFonHomeServer = "0";
- var $init_HomeServer = "0";
- var $goFonHomeServers = array();
-
- var $view_logged = FALSE;
-
- /* attribute list for save action */
- var $attributes= array( "goFonTimeOut","goFonMaxLen","goFonAnnounceFrequency","goFonDialOptiont","goFonDialOptionT",
- "goFonDialOptionh","goFonDialOptionr","cn","goFonHomeServer",
- "goFonDialOptionH","goFonMusiconHold","goFonWelcomeMusic","goFonQueueReportHold","goFonQueueYouAreNext",
- "goFonQueueThereAre","goFonQueueCallsWaiting","goFonQueueThankYou","goFonQueueMinutes","goFonQueueSeconds","goFonQueueLessThan",
- "telephoneNumber","goFonQueueLanguage","goFonQueueStrategy","goFonQueueAnnounceHoldtime","goFonQueueAnnounce","goFonDialOption","goFonQueueRetry");
-
- /* ObjectClass */
- var $objectclasses= array("goFonQueue");
-
-
-
- /* Pluigin initialization
- * - Check currently selected and available home server.
- * - Set default home server if necessary
- * - Parse phone options flags
- * - Get phone numbers
- */
- function phonequeue (&$config, $dn= NULL)
- {
- plugin::plugin($config, $dn);
-
- /* Check server configurations
- * Load all server configuration in $this->goFonHomeServers if available
- * and use first server as default if necessary.
+ /* plugin specific values */
+ var $mail= "";
+ var $cn= "";
+ var $old_cn ="";
+
+ var $goFonTimeOut ="20";
+ var $goFonMaxLen ="20"; //
+ var $goFonAnnounceFrequency ="60"; // Annouce Frequency in seconds
+ var $goFonDialOptiont ="";
+ var $goFonDialOptionT ="";
+ var $goFonDialOptionh ="";
+ var $goFonDialOptionr ="";
+ var $goFonDialOptionH ="";
+ var $goFonQueueAnnounce ="gonicus-berlin-welcome";
+ var $goFonMusiconHold ="default";
+ var $goFonWelcomeMusic ="gonicus-berlin-welcome";
+ var $goFonQueueReportHold ="yes";
+ var $goFonQueueYouAreNext ="queue-youarenext";
+ var $goFonQueueThereAre ="queue-thereare";
+ var $goFonQueueCallsWaiting ="queue-callswaiting";
+ var $goFonQueueThankYou ="queue-thankyou";
+ var $goFonQueueMinutes ="queue-minutes";
+ var $goFonQueueSeconds ="queue-seconds";
+ var $goFonQueueLessThan ="queue-lessthan";
+ var $goFonQueueLanguage ="queue-holdtime";
+ var $goFonQueueStrategy ="ringall";
+ var $goFonQueueAnnounceHoldtime="yes";
+ var $telephoneNumber =array();
+ var $goFonQueueMember =array();
+ var $goFonDialOption ="";
+ var $goFonQueueRetry =5;
+
+ var $goFonQueueStrategyOptions=array();
+ var $goFonQueueStrategyOptionsR=array();
+
+ var $old_phone_numbers =array();
+
+ var $goFonHomeServer = "0";
+ var $init_HomeServer = "0";
+ var $goFonHomeServers = array();
+
+ var $view_logged = FALSE;
+
+ /* attribute list for save action */
+ var $attributes= array( "goFonTimeOut","goFonMaxLen","goFonAnnounceFrequency","goFonDialOptiont","goFonDialOptionT",
+ "goFonDialOptionh","goFonDialOptionr","cn","goFonHomeServer",
+ "goFonDialOptionH","goFonMusiconHold","goFonWelcomeMusic","goFonQueueReportHold","goFonQueueYouAreNext",
+ "goFonQueueThereAre","goFonQueueCallsWaiting","goFonQueueThankYou","goFonQueueMinutes","goFonQueueSeconds","goFonQueueLessThan",
+ "telephoneNumber","goFonQueueLanguage","goFonQueueStrategy","goFonQueueAnnounceHoldtime","goFonQueueAnnounce","goFonDialOption","goFonQueueRetry");
+
+ /* ObjectClass */
+ var $objectclasses= array("goFonQueue");
+
+
+
+ /* Pluigin initialization
+ * - Check currently selected and available home server.
+ * - Set default home server if necessary
+ * - Parse phone options flags
+ * - Get phone numbers
*/
- if(isset($config->data['SERVERS']['FON']) &&
- count($config->data['SERVERS']['FON']) &&
- is_callable("mysql_connect")){
-
- /* Set available server */
- $this->goFonHomeServers = $config->data['SERVERS']['FON'];
-
- /* Set default server */
- if($this->dn == "new"){
- $this->goFonHomeServer = $this->goFonHomeServers[0]['DN'];
- }
-
- /* Remember inital home server, to be able to remove old entries */
- $this->init_HomeServer = $this->goFonHomeServer;
-
- /* get config */
- if(!isset($this->goFonHomeServers[$this->goFonHomeServer])){
- msg_dialog::display(_("Obsolete entry"), sprintf(_("The current home server is not available anymore. It will be moved to '%s' if you save this entry!"), preg_replace("/,/",", ",$this->goFonHomeServers[0]['DN'])), ERROR_DIALOG);
- $this->goFonHomeServer = $this->goFonHomeServers[0]['DN'];
- $this->init_HomeServer = $this->goFonHomeServers[0]['DN'];
- }
- $cur_cfg = $this->goFonHomeServers[$this->goFonHomeServer];
- }
+ function phonequeue (&$config, $dn= NULL)
+ {
+ plugin::plugin($config, $dn);
+ /* Check server configurations
+ * Load all server configuration in $this->goFonHomeServers if available
+ * and use first server as default if necessary.
+ */
+ if(isset($config->data['SERVERS']['FON']) &&
+ count($config->data['SERVERS']['FON']) &&
+ is_callable("mysql_connect")){
+
+ /* Set available server */
+ $this->goFonHomeServers = $config->data['SERVERS']['FON'];
+
+ /* Set default server */
+ if($this->dn == "new"){
+ $this->goFonHomeServer = $this->goFonHomeServers[0]['DN'];
+ }
+
+ /* Remember inital home server, to be able to remove old entries */
+ $this->init_HomeServer = $this->goFonHomeServer;
+
+ /* get config */
+ if(!isset($this->goFonHomeServers[$this->goFonHomeServer])){
+ msg_dialog::display(_("Obsolete entry"), sprintf(_("The current home server is not available anymore. It will be moved to '%s' if you save this entry!"), preg_replace("/,/",", ",$this->goFonHomeServers[0]['DN'])), ERROR_DIALOG);
+ $this->goFonHomeServer = $this->goFonHomeServers[0]['DN'];
+ $this->init_HomeServer = $this->goFonHomeServers[0]['DN'];
+ }
+ $cur_cfg = $this->goFonHomeServers[$this->goFonHomeServer];
+ }
- /* Variable init
- * Load phone nubmers and parse dial options
- */
- if($this->is_account){
- if(isset($this->attrs['telephoneNumber'])){
- $this->telephoneNumber=$this->attrs['telephoneNumber'];
- unset($this->telephoneNumber['count']);
- }
- for($i = 0; $i < strlen($this->goFonDialOption); $i++){
- $name = "goFonDialOption".$this->goFonDialOption[$i];
- $this->$name=$this->goFonDialOption[$i];
- }
- }
- /* Set Queue announce hold time to true/false */
- if(preg_match("/no/i",$this->goFonQueueAnnounceHoldtime)){
- $this->goFonQueueAnnounceHoldtime=false;
- }else{
- $this->goFonQueueAnnounceHoldtime=true;
- }
+ /* Variable init
+ * Load phone nubmers and parse dial options
+ */
+ if($this->is_account){
+ if(isset($this->attrs['telephoneNumber'])){
+ $this->telephoneNumber=$this->attrs['telephoneNumber'];
+ unset($this->telephoneNumber['count']);
+ }
+ for($i = 0; $i < strlen($this->goFonDialOption); $i++){
+ $name = "goFonDialOption".$this->goFonDialOption[$i];
+ $this->$name=$this->goFonDialOption[$i];
+ }
+ }
- /* Define all available ringdown types */
- $types= array('ringall' =>_("ring all"),
- 'roundrobin' =>_("round robin"),
- 'leastrecent'=>_("least recently called"),
- 'fewestcalls'=>_("fewest completed calls"),
- 'random' =>_("random"),
- 'rrmemory' =>_("round robin with memory"));
- $i = 0;
- foreach($types as $type => $name){
- $i++;
- $this->goFonQueueStrategyOptions[$i] =$name;
- $this->goFonQueueStrategyOptionsR[$i] =$type;
- $tmp[$type] = $i;
- }
- $this->goFonQueueStrategy= $tmp[$this->goFonQueueStrategy];
- $this->old_cn = $this->cn;
- $this->old_phone_numbers = $this->telephoneNumber;
- }
-
-
- /* This function ensures that the selected home server
- * and the initially selected home server are reachable and accessible
- */
- function check_database_accessibility()
- {
- /* Check if mysql extension is available */
- if(!is_callable("mysql_pconnect")){
- return(msgPool::missingext("mysql"));
+ /* Set Queue announce hold time to true/false */
+ if(preg_match("/no/i",$this->goFonQueueAnnounceHoldtime)){
+ $this->goFonQueueAnnounceHoldtime=false;
+ }else{
+ $this->goFonQueueAnnounceHoldtime=true;
+ }
+
+ /* Define all available ringdown types */
+ $types= array('ringall' =>_("ring all"),
+ 'roundrobin' =>_("round robin"),
+ 'leastrecent'=>_("least recently called"),
+ 'fewestcalls'=>_("fewest completed calls"),
+ 'random' =>_("random"),
+ 'rrmemory' =>_("round robin with memory"));
+ $i = 0;
+ foreach($types as $type => $name){
+ $i++;
+ $this->goFonQueueStrategyOptions[$i] =$name;
+ $this->goFonQueueStrategyOptionsR[$i] =$type;
+ $tmp[$type] = $i;
+ }
+ $this->goFonQueueStrategy= $tmp[$this->goFonQueueStrategy];
+ $this->old_cn = $this->cn;
+ $this->old_phone_numbers = $this->telephoneNumber;
}
- /********************
- * Check currently selected home server
- ********************/
- $cfg_Current = $this->goFonHomeServers[$this->goFonHomeServer];
- $r_current = @mysql_pconnect($cfg_Current['SERVER'],$cfg_Current['LOGIN'],$cfg_Current['PASSWORD']);
- if(!$r_current){
- new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_current));
- return(msgPool::dbconnect("GOfon",@mysql_error($r_current),$cfg_Current['SERVER']));
- }
- $db_current = @mysql_select_db($cfg_Current['DB'],$r_current);
- if(!$db_current){
- new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_current));
- mysql_close($r_current);
- return(msgPool::dbselect("GOfon",@mysql_error($r_current),$cfg_Current['DB']));
- }
+ /* This function ensures that the selected home server
+ * and the initially selected home server are reachable and accessible
+ */
+ function check_database_accessibility()
+ {
+ /* Check if mysql extension is available */
+ if(!is_callable("mysql_pconnect")){
+ return(msgPool::missingext("mysql"));
+ }
- /********************
- * Check init home server
- ********************/
-
- if($this->initially_was_account){
- $cfg_Init = $this->goFonHomeServers[$this->init_HomeServer] ;
- $r_init = @mysql_pconnect($cfg_Init['SERVER'],$cfg_Init['LOGIN'],$cfg_Init['PASSWORD']);
- if(!$r_init){
- new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_init));
- return(msgPool::dbconnect("GOfon",@mysql_error($r_current),$cfg_Init['SERVER']));
- }
- $db_init = @mysql_select_db($cfg_Init['DB'],$r_init);
- if(!$db_init){
- new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_init));
- mysql_close($r_init);
- return(msgPool::dbselect("GOfon",@mysql_error($r_current),$cfg_Init['DB']));
- }
- }
- }
-
-
- /* Display plugin ui */
- function execute()
- {
- /* Call parent execute */
- plugin::execute();
-
- if($this->is_account && !$this->view_logged){
- $this->view_logged = TRUE;
- new log("view","ogroups/".get_class($this),$this->dn);
- }
+ /********************
+ * Check currently selected home server
+ ********************/
- if(isset($_POST['modify_state'])){
- if($this->is_account && $this->acl_is_removeable()){
- $this->is_account= FALSE;
- }elseif(!$this->is_account && $this->acl_is_createable()){
- $this->is_account= TRUE;
- }
- }
+ $cfg_Current = $this->goFonHomeServers[$this->goFonHomeServer];
+ $r_current = @mysql_pconnect($cfg_Current['SERVER'],$cfg_Current['LOGIN'],$cfg_Current['PASSWORD']);
+ if(!$r_current){
+ new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_current));
+ return(msgPool::dbconnect("GOfon",@mysql_error($r_current),$cfg_Current['SERVER']));
+ }
+ $db_current = @mysql_select_db($cfg_Current['DB'],$r_current);
+ if(!$db_current){
+ new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_current));
+ mysql_close($r_current);
+ return(msgPool::dbselect("GOfon",@mysql_error($r_current),$cfg_Current['DB']));
+ }
- /* Show tab dialog headers */
- if ($this->parent !== NULL){
- if ($this->is_account){
- $display= $this->show_disable_header(_("Remove the phone queue from this Account"),
- msgPool::featuresEnabled(_("phone queue")));
- } else {
- $display= $this->show_enable_header(_("Create phone queue"),
- msgPool::featuresDisabled(_("phone queue")));
- return ($display);
- }
+ /********************
+ * Check init home server
+ ********************/
+
+ if($this->initially_was_account){
+ $cfg_Init = $this->goFonHomeServers[$this->init_HomeServer] ;
+ $r_init = @mysql_pconnect($cfg_Init['SERVER'],$cfg_Init['LOGIN'],$cfg_Init['PASSWORD']);
+ if(!$r_init){
+ new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_init));
+ return(msgPool::dbconnect("GOfon",@mysql_error($r_current),$cfg_Init['SERVER']));
+ }
+ $db_init = @mysql_select_db($cfg_Init['DB'],$r_init);
+ if(!$db_init){
+ new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_init));
+ mysql_close($r_init);
+ return(msgPool::dbselect("GOfon",@mysql_error($r_current),$cfg_Init['DB']));
+ }
+ }
}
- if($this->acl_is_writeable("telephoneNumber")){
- /* Add queue number */
- if(isset($_POST['add_phonenumber'])&&(isset($_POST['phonenumber']))&&(!empty($_POST['phonenumber']))){
- if((!in_array($_POST['phonenumber'],$this->telephoneNumber))&&(is_numeric($_POST['phonenumber']))){
- $this->telephoneNumber[]=$_POST['phonenumber'];
+ /* Display plugin ui */
+ function execute()
+ {
+ /* Call parent execute */
+ plugin::execute();
+
+ if($this->is_account && !$this->view_logged){
+ $this->view_logged = TRUE;
+ new log("view","ogroups/".get_class($this),$this->dn);
}
- }
- /* Delete queue number */
- if(isset($_POST['delete_phonenumber'])&&(isset($_POST['goFonQueueNumber_List']))){
- unset($this->telephoneNumber[$_POST['goFonQueueNumber_List']]);
- }
+ if(isset($_POST['modify_state'])){
+ if($this->is_account && $this->acl_is_removeable()){
+ $this->is_account= FALSE;
+ }elseif(!$this->is_account && $this->acl_is_createable()){
+ $this->is_account= TRUE;
+ }
+ }
- /* queue number up */
- if(isset($_POST['up_phonenumber'])&&(isset($_POST['goFonQueueNumber_List']))){
- if($_POST['goFonQueueNumber_List']>0){
- $up = $this->telephoneNumber[$_POST['goFonQueueNumber_List']];
- $down = $this->telephoneNumber[$_POST['goFonQueueNumber_List']-1];
- $this->telephoneNumber[$_POST['goFonQueueNumber_List']] = $down;
- $this->telephoneNumber[$_POST['goFonQueueNumber_List']-1] = $up;
+ /* Show tab dialog headers */
+ if ($this->parent !== NULL){
+ if ($this->is_account){
+ $display= $this->show_disable_header(_("Remove the phone queue from this Account"),
+ msgPool::featuresEnabled(_("phone queue")));
+ } else {
+ $display= $this->show_enable_header(_("Create phone queue"),
+ msgPool::featuresDisabled(_("phone queue")));
+ return ($display);
+ }
}
- }
- /* Queuenumber down */
- if(isset($_POST['down_phonenumber'])&&(isset($_POST['goFonQueueNumber_List']))){
- if(isset($this->telephoneNumber[($_POST['goFonQueueNumber_List']+1)])){
- $up = $this->telephoneNumber[$_POST['goFonQueueNumber_List']+1];
- $down = $this->telephoneNumber[$_POST['goFonQueueNumber_List']];
- $this->telephoneNumber[$_POST['goFonQueueNumber_List']+1] = $down;
- $this->telephoneNumber[$_POST['goFonQueueNumber_List']] = $up;
+ if($this->acl_is_writeable("telephoneNumber")){
+
+ /* Add queue number */
+ if(isset($_POST['add_phonenumber'])&&(isset($_POST['phonenumber']))&&(!empty($_POST['phonenumber']))){
+ if((!in_array($_POST['phonenumber'],$this->telephoneNumber))&&(is_numeric($_POST['phonenumber']))){
+ $this->telephoneNumber[]=get_post('phonenumber');
+ }
+ }
+
+ /* Delete queue number */
+ if(isset($_POST['delete_phonenumber'])&&(isset($_POST['goFonQueueNumber_List']))){
+ unset($this->telephoneNumber[get_post('goFonQueueNumber_List')]);
+ }
+
+ /* queue number up */
+ if(isset($_POST['up_phonenumber'])&&(isset($_POST['goFonQueueNumber_List']))){
+ if(get_post('goFonQueueNumber_List') > 0){
+ $up = $this->telephoneNumber[get_post('goFonQueueNumber_List')];
+ $down = $this->telephoneNumber[get_post('goFonQueueNumber_List')-1];
+ $this->telephoneNumber[get_post('goFonQueueNumber_List')] = $down;
+ $this->telephoneNumber[get_post('goFonQueueNumber_List')-1] = $up;
+ }
+ }
+
+ /* Queuenumber down */
+ if(isset($_POST['down_phonenumber'])&&(isset($_POST['goFonQueueNumber_List']))){
+ if(isset($this->telephoneNumber[($_POST['goFonQueueNumber_List']+1)])){
+ $up = $this->telephoneNumber[get_post('goFonQueueNumber_List')+1];
+ $down = $this->telephoneNumber[get_post('goFonQueueNumber_List')];
+ $this->telephoneNumber[get_post('goFonQueueNumber_List')+1] = $down;
+ $this->telephoneNumber[get_post('goFonQueueNumber_List')] = $up;
+ }
+ $this->telephoneNumber[get_post('goFonQueueNumber_List')] = $up;
+ }
}
- $this->telephoneNumber[$_POST['goFonQueueNumber_List']] = $up;
- }
- }
- $tmp = array();
- foreach($this->telephoneNumber as $val){
- if(!empty($val)){
- $tmp[]= $val;
- }
- }
- $this->telephoneNumber=$tmp;
-
- /* Assign samrty variables */
- $smarty= get_smarty();
- $smarty->assign("goFonQueueLanguageOptions",get_languages(FALSE,TRUE));
- $smarty->assign("goFonQueueStrategyOptions", $this->goFonQueueStrategyOptions);
-
- /* Set acls */
- $tmp = $this->plInfo();
- foreach($tmp['plProvidedAcls'] as $name => $translated){
- $smarty->assign($name."ACL",$this->getacl($name));
- }
+ $tmp = array();
+ foreach($this->telephoneNumber as $val){
+ if(!empty($val)){
+ $tmp[]= $val;
+ }
+ }
+ $this->telephoneNumber=$tmp;
+
+ /* Assign samrty variables */
+ $smarty= get_smarty();
+ $smarty->assign("goFonQueueLanguageOptions", set_post(get_languages(FALSE,TRUE)));
+ $smarty->assign("goFonQueueStrategyOptions", set_post($this->goFonQueueStrategyOptions));
+
+ /* Set acls */
+ $tmp = $this->plInfo();
+ foreach($tmp['plProvidedAcls'] as $name => $translated){
+ $smarty->assign($name."ACL",$this->getacl($name));
+ }
- foreach($this->attributes as $key => $val){
- $smarty->assign($val,$this->$val);
- if($this->$val == false){
- $smarty->assign($val."CHK","");
- }else{
- $smarty->assign($val."CHK"," checked ");
- }
- }
-
- /* Create array with goFonHomeServer */
- $tmp = array();
- foreach($this->goFonHomeServers as $dn => $val){
- if(!is_numeric($dn)){
- $tmp[$dn] = $val['SERVER'];
- }
+ foreach($this->attributes as $key => $val){
+ $smarty->assign($val,set_post($this->$val));
+ if($this->$val == false){
+ $smarty->assign($val."CHK","");
+ }else{
+ $smarty->assign($val."CHK"," checked ");
+ }
+ }
+
+ /* Create array with goFonHomeServer */
+ $tmp = array();
+ foreach($this->goFonHomeServers as $dn => $val){
+ if(!is_numeric($dn)){
+ $tmp[$dn] = $val['SERVER'];
+ }
+ }
+ $smarty->assign("goFonHomeServers",set_post($tmp));
+
+ return ($display.$smarty->fetch (get_template_path('phonequeue.tpl', TRUE,dirname(__FILE__))));
}
- $smarty->assign("goFonHomeServers",$tmp);
- return ($display.$smarty->fetch (get_template_path('phonequeue.tpl', TRUE,dirname(__FILE__))));
- }
+ /* Check formular input */
+ function check()
+ {
+ /* Call common method to give check the hook */
+ $message= plugin::check();
+ if(!count($this->goFonHomeServers)){
+ $message[] = _("There must be at least one server with an asterisk database to create a phone queue.");
+ }
+ if(empty($this->goFonHomeServer)){
+ $message[] = msgPool::required(_("Home server"));
+ }
+ if($this->is_number_used()){
+ $message[] = $this->is_number_used();
+ }
+ if(!((is_numeric($this->goFonTimeOut))||(empty($this->goFonTimeOut)))){
+ $message[] = msgPool::invalid(_("Timeout"),$this->goFonTimeOut,"/[0-9]/");
+ }
+ if(!((is_numeric($this->goFonQueueRetry))||(empty($this->goFonQueueRetry)))){
+ $message[] = msgPool::invalid(_("Retry"),$this->goFonQueueRetry,"/[0-9]/");
+ }
+ if(!((is_numeric($this->goFonMaxLen))||(empty($this->goFonMaxLen)))){
+ $message[] = msgPool::invalid(_("Queue length"),$this->goFonMaxLen,"/[0-9]/");
+ }
+ if(!((is_numeric($this->goFonAnnounceFrequency))||(empty($this->goFonAnnounceFrequency)))){
+ $message[] = msgPool::invalid(_("Announce frequency"),$this->goFonAnnounceFrequency,"/[0-9]/");
+ }
+ if(count($this->telephoneNumber)==0){
+ $message[] = msgPool::required(_("Number"));
+ }
- /* Check formular input */
- function check()
- {
- /* Call common method to give check the hook */
- $message= plugin::check();
- if(!count($this->goFonHomeServers)){
- $message[] = _("There must be at least one server with an asterisk database to create a phone queue.");
- }
- if(empty($this->goFonHomeServer)){
- $message[] = msgPool::required(_("Home server"));
- }
- if($this->is_number_used()){
- $message[] = $this->is_number_used();
- }
- if(!((is_numeric($this->goFonTimeOut))||(empty($this->goFonTimeOut)))){
- $message[] = msgPool::invalid(_("Timeout"),$this->goFonTimeOut,"/[0-9]/");
- }
- if(!((is_numeric($this->goFonQueueRetry))||(empty($this->goFonQueueRetry)))){
- $message[] = msgPool::invalid(_("Retry"),$this->goFonQueueRetry,"/[0-9]/");
- }
- if(!((is_numeric($this->goFonMaxLen))||(empty($this->goFonMaxLen)))){
- $message[] = msgPool::invalid(_("Queue length"),$this->goFonMaxLen,"/[0-9]/");
- }
- if(!((is_numeric($this->goFonAnnounceFrequency))||(empty($this->goFonAnnounceFrequency)))){
- $message[] = msgPool::invalid(_("Announce frequency"),$this->goFonAnnounceFrequency,"/[0-9]/");
- }
- if(count($this->telephoneNumber)==0){
- $message[] = msgPool::required(_("Number"));
+ /* check if add to database could be successfull */
+ $str = $this->add_to_database();
+ if(!empty($str)){
+ $message[] = $str;
+ }
+ return $message;
}
- /* check if add to database could be successfull */
- $str = $this->add_to_database();
- if(!empty($str)){
- $message[] = $str;
- }
- return $message;
- }
-
-
- /* This function removes the old database entries.
- * If this entry should be removed or the home server has changed
- * this function is called to ensure that all old entries will be deleted.
- */
- function remove_from_database($save = false)
- {
- /* Check if we must remove old entries */
- if($this->initially_was_account){
-
- /* Check if there is at least on server configuration */
- if(!count($this->goFonHomeServers)){
- return(msgPool::noserver(_("asterisk")));
- }
-
- /********************
- * Get configuration and check it
- ********************/
-
- /* Check if databases are reachable, returns an error string if anything fails */
- $error_str = $this->check_database_accessibility();
- if($error_str){
- return($error_str);
- }
-
- /* Connect to current database to be able to add new entries */
- $cfg_Current = $this->goFonHomeServers[$this->init_HomeServer] ;
- $res_cur = @mysql_pconnect($cfg_Current['SERVER'],$cfg_Current['LOGIN'],$cfg_Current['PASSWORD']);
- $db_cur = @mysql_select_db($cfg_Current['DB'],$res_cur);
-
- /* Create sql entries */
- $delete[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$this->old_cn."';\n";
- $delete[]= "DELETE FROM ".$cfg_Current['QUEUE_TABLE']." WHERE name='".$this->old_cn."'; \n";
- $delete[]= "DELETE FROM ".$cfg_Current['QUEUE_MEMBER_TABLE']." WHERE queue_name='".$this->old_cn."';\n";
- foreach($this->old_phone_numbers as $number){
- $delete[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$number."';\n";
- }
-
- /* Execute the queries */
- if($save){
- foreach($delete as $sql){
- $res = @mysql_query($sql,$res_cur);
- if(!$res){
- new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_current));
- return(msgPool::dbquery(_("GOfon"),@mysql_error($r_current)));
- }
+
+ /* This function removes the old database entries.
+ * If this entry should be removed or the home server has changed
+ * this function is called to ensure that all old entries will be deleted.
+ */
+ function remove_from_database($save = false)
+ {
+ /* Check if we must remove old entries */
+ if($this->initially_was_account){
+
+ /* Check if there is at least on server configuration */
+ if(!count($this->goFonHomeServers)){
+ return(msgPool::noserver(_("asterisk")));
+ }
+
+ /********************
+ * Get configuration and check it
+ ********************/
+
+ /* Check if databases are reachable, returns an error string if anything fails */
+ $error_str = $this->check_database_accessibility();
+ if($error_str){
+ return($error_str);
+ }
+
+ /* Connect to current database to be able to add new entries */
+ $cfg_Current = $this->goFonHomeServers[$this->init_HomeServer] ;
+ $res_cur = @mysql_pconnect($cfg_Current['SERVER'],$cfg_Current['LOGIN'],$cfg_Current['PASSWORD']);
+ $db_cur = @mysql_select_db($cfg_Current['DB'],$res_cur);
+
+ /* Create sql entries */
+ $delete[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$this->old_cn."';\n";
+ $delete[]= "DELETE FROM ".$cfg_Current['QUEUE_TABLE']." WHERE name='".$this->old_cn."'; \n";
+ $delete[]= "DELETE FROM ".$cfg_Current['QUEUE_MEMBER_TABLE']." WHERE queue_name='".$this->old_cn."';\n";
+ foreach($this->old_phone_numbers as $number){
+ $delete[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$number."';\n";
+ }
+
+ /* Execute the queries */
+ if($save){
+ foreach($delete as $sql){
+ $res = @mysql_query($sql,$res_cur);
+ if(!$res){
+ new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($r_current));
+ return(msgPool::dbquery(_("GOfon"),@mysql_error($r_current)));
+ }
+ }
+ }
}
- }
- }
- }
-
-
- /* This function handles the database entries for this
- * queue.
- * Existing entries will be updated if possible.
- */
- function add_to_database($save = false)
- {
- /* Check if there is at least on server configuration */
- if(!count($this->goFonHomeServers)){
- return( msgPool::noserver(_("asterisk")));
}
- /********************
- * Get configuration and check it
- ********************/
- /* Check if databases are reachable, returns an error string if anything fails */
- $error_str = $this->check_database_accessibility();
- if($error_str){
- return($error_str);
- }
+ /* This function handles the database entries for this
+ * queue.
+ * Existing entries will be updated if possible.
+ */
+ function add_to_database($save = false)
+ {
+ /* Check if there is at least on server configuration */
+ if(!count($this->goFonHomeServers)){
+ return( msgPool::noserver(_("asterisk")));
+ }
- /* Connect to current database to be able to add new entries */
- $cfg_Current = $this->goFonHomeServers[$this->goFonHomeServer] ;
- $res_cur = @mysql_pconnect($cfg_Current['SERVER'],$cfg_Current['LOGIN'],$cfg_Current['PASSWORD']);
- $db_cur = @mysql_select_db($cfg_Current['DB'],$res_cur);
-
- /* Connect to old home server and remove old entries if necessary */
- if(($this->initially_was_account) && ($this->init_HomeServer != $this->goFonHomeServer)){
- $str = $this->remove_from_database($save);
- if(!empty($str)){
- return($str);;
- }
- }
+ /********************
+ * Get configuration and check it
+ ********************/
- /* Ensure that we have the new cn in $this->cn and the old cn in $this->old_cn */
- $this->cn = $this->parent->by_object['ogroup']->cn;
-
- if($save){
-
- /*****************
- * Create queue table entry
- *****************/
-
- /* Check if QUEUE_TABLE entry exists.
- * If this entry is missing - create it
- * else update the entry with new values.
- */
- $query = "SELECT * FROM ".$cfg_Current['QUEUE_TABLE']." WHERE name='".$this->old_cn."';";
- $res = mysql_query($query,$res_cur);
- if(!$res){
- new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($res_cur));
- return(_("Cannot find old queue entry!"));
- }
- $cnt = mysql_affected_rows($res_cur);
-
-
- /* Create queue table entry
- * Leave unused options empty.
- */
- $queue["announce"] = "";
- $queue["monitor_join"] = "";
- $queue["monitor_format"] = "";
- $queue["announce_round_seconds"]= "";
- $queue["wrapuptime"] = "";
- $queue["servicelevel"] = "";
- $queue["eventmemberstatus"] = "";
- $queue["eventwhencalled"] = "";
- $queue["memberdelay"] = "";
- $queue["weight"] = "";
- $queue["timeoutrestart"] = "";
-
- $queue["queue_holdtime"] = $this->goFonQueueAnnounce;
- $queue["queue_lessthan"] = $this->goFonQueueLessThan;
- $queue["retry"] = $this->goFonQueueRetry;
- $queue["reportholdtime"] = "1";
- $queue["joinempty"] = "no";
- $queue["leavewhenempty"] = "yes";
-
- $queue["context"] = "default";
- $queue["name"] = $this->cn;
- $queue["timeout"] = $this->goFonTimeOut;
- $queue["maxlen"] = $this->goFonMaxLen;
- $queue["strategy" ] = $this->goFonQueueStrategyOptionsR[$this->goFonQueueStrategy];
- $queue["queue_thankyou"] = $this->goFonQueueThankYou;
- $queue["queue_reporthold"] = $this->goFonQueueReportHold;
- $queue["announce_frequency"] = $this->goFonAnnounceFrequency;
- $queue["queue_youarenext"] = $this->goFonQueueYouAreNext;
- $queue["queue_thereare"] = $this->goFonQueueThereAre;
- $queue["queue_callswaiting"] = $this->goFonQueueCallsWaiting;
- $queue["queue_minutes"] = $this->goFonQueueMinutes;
- $queue["queue_seconds"] = $this->goFonQueueSeconds;
- $queue["announce_holdtime"] = $this->goFonQueueAnnounceHoldtime;
- $queue["musiconhold"] = $this->goFonMusiconHold;
-
-
- /* Check if we must create a new queue entry
- * or if we can update an existing entry
- * $cnt contains the number of entries matching this cn
- */
-
- /* Create new queue table entry
- */
- if($cnt == 0){
-
- /* Parse and Add Queue */
- $entries = "";
- $values = "";
- foreach($queue as $attr=>$val){
- if($val == "") continue;
- $entries.= "`".$attr."`,";
- $values .= "'".$val."',";
- }
- $values = preg_replace("/,$/","",$values);
- $entries = preg_replace("/,$/","",$entries );
- $SQL[]="INSERT INTO ".$cfg_Current['QUEUE_TABLE']." (".$entries.") VALUES (".$values.");";
- }elseif($cnt == 1){
-
- /* Update queue table entry
- */
- $queue_old = @mysql_fetch_assoc($res);
- foreach($queue_old as $name => $value){
- if(isset($queue[$name]) && $queue[$name] == $value){
- unset($queue[$name]);
- }
- }
-
- /* Parse and Add Queue */
- if(count($queue)){
- $query = "UPDATE ".$cfg_Current['QUEUE_TABLE']." SET ";
- foreach($queue as $key => $val){
- $query.= "".$key."='".$val."',";
- }
- $query = preg_replace("/,$/","",$query);
- $query.= " WHERE name='".$this->old_cn."';";
- $SQL[] = $query;
- }
- }else{
- return(sprintf(_("Found more than one entry named '%s' in queue table. Please inform your system administrator!"),$this->cn));
- }
-
-
- /*****************
- * Create queue member entries
- *****************/
-
- /* Add the queue member entries
- * First we must remove all old user entries.
- * to be able to add a clean set of members.
- */
- $SQL[]= "DELETE FROM ".$cfg_Current['QUEUE_MEMBER_TABLE']." WHERE queue_name='".$this->cn."';";
- $SQL[]= "DELETE FROM ".$cfg_Current['QUEUE_MEMBER_TABLE']." WHERE queue_name='".$this->old_cn."';";
-
- /* Append new Member for this queue */
- $queueuser =array();
- $i = 0;
- $parent = $this->parent->by_object['ogroup'];
-
-
- $ldap = $this->config->get_ldap_link();
- foreach($parent->memberList as $member => $mem_data){
- $ldap->cat($member,array("goFonHomeServer","objectClass","dn","uid"));
- if($ldap->count()){
-
- $obj = $ldap->fetch();
-
- /* Calculate server and account dependencies */
- $is_acc = in_array("goFonAccount",$obj['objectClass']);
- $is_home= isset($obj['goFonHomeServer'][0]) && $obj['goFonHomeServer'][0] == $this->goFonHomeServer;
-
- /* Append user to list of queue member,
- * only if user has phoneAccount extension && is on same home server */
- if($is_acc && $is_home){
- $i ++ ;
- $queueuser[$i]['queue_name'] = $this->cn;
- $queueuser[$i]['interface'] = "SIP/".$obj['uid'][0];
- $queueuser[$i]['penalty'] = 1;
- }
- }
- }
-
- /* Parse and Add members to query Array */
- if(is_array($queueuser)){
- foreach($queueuser as $user){
- $entries = "";
- $values = "";
- foreach($user as $attr => $val){
- $entries.= "`".$attr."`,";
- $values .= "'".$val."',";
- }
- $values = preg_replace("/,$/","",$values);
- $entries = preg_replace("/,$/","",$entries );
-
- $SQL[]="INSERT INTO ".$cfg_Current['QUEUE_MEMBER_TABLE']." (".$entries.") VALUES (".$values.")";
- }
- }
-
-
- /*****************
- * Create extension entries
- *****************/
-
- /* Add the extension entries
- * First we must remove all old entensions.
- */
- $SQL[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$this->cn."';\n";
- $SQL[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$this->old_cn."';\n";
-
- /* Delete old enxtension entries for the old telephone nubmer */
- if(is_array($this->old_phone_numbers)){
- foreach($this->old_phone_numbers as $phone){
- $SQL[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$phone."';\n";
- }
- }
-
- /* Delete enxtension entries for telephone numbers */
- if(is_array($this->telephoneNumber)){
- foreach($this->telephoneNumber as $phone){
- $SQL[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$phone."';\n";
- }
- }
-
- /* Create a extension entry fpr each telephoneNumber */
- $i_insert_only_once = false;
- $prio = 11; // This represents the priority for each telephoneNumber
- foreach($this->telephoneNumber as $num){
-
- /* The naming refrences */
- if($i_insert_only_once == false){
- $i_insert_only_once = true;
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $this->cn;
- $a_ext[$i]['priority'] = 1;
- $a_ext[$i]['app'] = "Goto";
- $a_ext[$i]['appdata'] = $num."|1";
- $i ++ ;
- }
-
- /* If there is currently no user for this queue
- * Play no service sound file and return to default context.
- */
- if(count($queueuser)==0){
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $num;
- $a_ext[$i]['priority'] = 1;
- $a_ext[$i]['app'] = "Set";
- $a_ext[$i]['appdata'] = "CHANNEL(language)=".$this->goFonQueueLanguage;
- $i ++ ;
-
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $num;
- $a_ext[$i]['priority'] = 2;
- $a_ext[$i]['app'] = "Playback";
- $a_ext[$i]['appdata'] = "ss-noservice";
- $i ++ ;
-
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $num;
- $a_ext[$i]['priority'] = 3;
- $a_ext[$i]['app'] = "Goto";
- $a_ext[$i]['appdata'] = "default";
- $i ++ ;
- }else{
+ /* Check if databases are reachable, returns an error string if anything fails */
+ $error_str = $this->check_database_accessibility();
+ if($error_str){
+ return($error_str);
+ }
- /* Dcrement priority to avoid using same priority twice */
- $prio --;
-
- /* Wait for 2 seconds */
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $num;
- $a_ext[$i]['priority'] = 1;
- $a_ext[$i]['app'] = "Wait";
- $a_ext[$i]['appdata'] = "2";
- $i ++ ;
-
- /* Set language to queue language */
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $num;
- $a_ext[$i]['priority'] = 2;
- $a_ext[$i]['app'] = "Set";
- $a_ext[$i]['appdata'] = "CHANNEL(language)=".$this->goFonQueueLanguage;
- $i ++ ;
-
- /* Play welcome sound file */
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $num;
- $a_ext[$i]['priority'] = 3;
- $a_ext[$i]['app'] = "Playback";
- $a_ext[$i]['appdata'] = $this->goFonWelcomeMusic;
- $i ++ ;
-
- /* Set CID name */
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $num;
- $a_ext[$i]['priority'] = 4;
- $a_ext[$i]['app'] = "SetCIDName";
- if(!empty($this->parent->by_object['ogroup']->description)){
- $a_ext[$i]['appdata'] = $this->parent->by_object['ogroup']->description;
- }else{
- $a_ext[$i]['appdata'] = $this->cn." - ".$num;
- }
- $i ++ ;
-
- /* Set queue priority */
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $num;
- $a_ext[$i]['priority'] = 5;
- $a_ext[$i]['app'] = "Set";
- $a_ext[$i]['appdata'] = "QUEUE_PRIO=".$prio;
- $i ++ ;
-
- /* Open queue */
- $a_ext[$i]['context'] = 'GOsa';
- $a_ext[$i]['exten'] = $num;
- $a_ext[$i]['priority'] = 6;
- $a_ext[$i]['app'] = "Queue";
- $a_ext[$i]['appdata'] = $this->cn;
- "|".
- $this->goFonDialOptiont.
- $this->goFonDialOptionT.
- $this->goFonDialOptionh.
- $this->goFonDialOptionH.
- $this->goFonDialOptionr;
- }
-
- $i++;
- }
-
- /* Parse and Add Extension entries */
- foreach($a_ext as $ext){
- $entries = "";
- $values = "";
- foreach($ext as $attr => $val){
- $entries.= "`".$attr."`,";
- $values .= "'".$val."',";
- }
- $values = preg_replace("/,$/","",$values);
- $entries = preg_replace("/,$/","",$entries );
- $SQL[]="INSERT INTO ".$cfg_Current['EXT_TABLE']." (".$entries.") VALUES (".$values.")";
- }
-
- /* Do all collected mysql queries
- */
- foreach($SQL as $query)
- $res = mysql_query($query,$res_cur);
- if(!$res){
- new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($res_cur));
- return(msgPool::dbquery(_("GOfon"),@mysql_error($res_cur)));
- }
+ /* Connect to current database to be able to add new entries */
+ $cfg_Current = $this->goFonHomeServers[$this->goFonHomeServer] ;
+ $res_cur = @mysql_pconnect($cfg_Current['SERVER'],$cfg_Current['LOGIN'],$cfg_Current['PASSWORD']);
+ $db_cur = @mysql_select_db($cfg_Current['DB'],$res_cur);
+
+ /* Connect to old home server and remove old entries if necessary */
+ if(($this->initially_was_account) && ($this->init_HomeServer != $this->goFonHomeServer)){
+ $str = $this->remove_from_database($save);
+ if(!empty($str)){
+ return($str);;
+ }
+ }
+
+ /* Ensure that we have the new cn in $this->cn and the old cn in $this->old_cn */
+ $this->cn = $this->parent->by_object['ogroup']->cn;
+
+ if($save){
+
+ /*****************
+ * Create queue table entry
+ *****************/
+
+ /* Check if QUEUE_TABLE entry exists.
+ * If this entry is missing - create it
+ * else update the entry with new values.
+ */
+ $query = "SELECT * FROM ".$cfg_Current['QUEUE_TABLE']." WHERE name='".$this->old_cn."';";
+ $res = mysql_query($query,$res_cur);
+ if(!$res){
+ new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($res_cur));
+ return(_("Cannot find old queue entry!"));
+ }
+ $cnt = mysql_affected_rows($res_cur);
+
+
+ /* Create queue table entry
+ * Leave unused options empty.
+ */
+ $queue["announce"] = "";
+ $queue["monitor_join"] = "";
+ $queue["monitor_format"] = "";
+ $queue["announce_round_seconds"]= "";
+ $queue["wrapuptime"] = "";
+ $queue["servicelevel"] = "";
+ $queue["eventmemberstatus"] = "";
+ $queue["eventwhencalled"] = "";
+ $queue["memberdelay"] = "";
+ $queue["weight"] = "";
+ $queue["timeoutrestart"] = "";
+
+ $queue["queue_holdtime"] = $this->goFonQueueAnnounce;
+ $queue["queue_lessthan"] = $this->goFonQueueLessThan;
+ $queue["retry"] = $this->goFonQueueRetry;
+ $queue["reportholdtime"] = "1";
+ $queue["joinempty"] = "no";
+ $queue["leavewhenempty"] = "yes";
+
+ $queue["context"] = "default";
+ $queue["name"] = $this->cn;
+ $queue["timeout"] = $this->goFonTimeOut;
+ $queue["maxlen"] = $this->goFonMaxLen;
+ $queue["strategy" ] = $this->goFonQueueStrategyOptionsR[$this->goFonQueueStrategy];
+ $queue["queue_thankyou"] = $this->goFonQueueThankYou;
+ $queue["queue_reporthold"] = $this->goFonQueueReportHold;
+ $queue["announce_frequency"] = $this->goFonAnnounceFrequency;
+ $queue["queue_youarenext"] = $this->goFonQueueYouAreNext;
+ $queue["queue_thereare"] = $this->goFonQueueThereAre;
+ $queue["queue_callswaiting"] = $this->goFonQueueCallsWaiting;
+ $queue["queue_minutes"] = $this->goFonQueueMinutes;
+ $queue["queue_seconds"] = $this->goFonQueueSeconds;
+ $queue["announce_holdtime"] = $this->goFonQueueAnnounceHoldtime;
+ $queue["musiconhold"] = $this->goFonMusiconHold;
+
+
+ /* Check if we must create a new queue entry
+ * or if we can update an existing entry
+ * $cnt contains the number of entries matching this cn
+ */
+
+ /* Create new queue table entry
+ */
+ if($cnt == 0){
+
+ /* Parse and Add Queue */
+ $entries = "";
+ $values = "";
+ foreach($queue as $attr=>$val){
+ if($val == "") continue;
+ $entries.= "`".$attr."`,";
+ $values .= "'".$val."',";
+ }
+ $values = preg_replace("/,$/","",$values);
+ $entries = preg_replace("/,$/","",$entries );
+ $SQL[]="INSERT INTO ".$cfg_Current['QUEUE_TABLE']." (".$entries.") VALUES (".$values.");";
+ }elseif($cnt == 1){
+
+ /* Update queue table entry
+ */
+ $queue_old = @mysql_fetch_assoc($res);
+ foreach($queue_old as $name => $value){
+ if(isset($queue[$name]) && $queue[$name] == $value){
+ unset($queue[$name]);
+ }
+ }
+
+ /* Parse and Add Queue */
+ if(count($queue)){
+ $query = "UPDATE ".$cfg_Current['QUEUE_TABLE']." SET ";
+ foreach($queue as $key => $val){
+ $query.= "".$key."='".$val."',";
+ }
+ $query = preg_replace("/,$/","",$query);
+ $query.= " WHERE name='".$this->old_cn."';";
+ $SQL[] = $query;
+ }
+ }else{
+ return(sprintf(_("Found more than one entry named '%s' in queue table. Please inform your system administrator!"),$this->cn));
+ }
+
+
+ /*****************
+ * Create queue member entries
+ *****************/
+
+ /* Add the queue member entries
+ * First we must remove all old user entries.
+ * to be able to add a clean set of members.
+ */
+ $SQL[]= "DELETE FROM ".$cfg_Current['QUEUE_MEMBER_TABLE']." WHERE queue_name='".$this->cn."';";
+ $SQL[]= "DELETE FROM ".$cfg_Current['QUEUE_MEMBER_TABLE']." WHERE queue_name='".$this->old_cn."';";
+
+ /* Append new Member for this queue */
+ $queueuser =array();
+ $i = 0;
+ $parent = $this->parent->by_object['ogroup'];
+
+
+ $ldap = $this->config->get_ldap_link();
+ foreach($parent->memberList as $member => $mem_data){
+ $ldap->cat($member,array("goFonHomeServer","objectClass","dn","uid"));
+ if($ldap->count()){
+
+ $obj = $ldap->fetch();
+
+ /* Calculate server and account dependencies */
+ $is_acc = in_array("goFonAccount",$obj['objectClass']);
+ $is_home= isset($obj['goFonHomeServer'][0]) && $obj['goFonHomeServer'][0] == $this->goFonHomeServer;
+
+ /* Append user to list of queue member,
+ * only if user has phoneAccount extension && is on same home server */
+ if($is_acc && $is_home){
+ $i ++ ;
+ $queueuser[$i]['queue_name'] = $this->cn;
+ $queueuser[$i]['interface'] = "SIP/".$obj['uid'][0];
+ $queueuser[$i]['penalty'] = 1;
+ }
+ }
+ }
+
+ /* Parse and Add members to query Array */
+ if(is_array($queueuser)){
+ foreach($queueuser as $user){
+ $entries = "";
+ $values = "";
+ foreach($user as $attr => $val){
+ $entries.= "`".$attr."`,";
+ $values .= "'".$val."',";
+ }
+ $values = preg_replace("/,$/","",$values);
+ $entries = preg_replace("/,$/","",$entries );
+
+ $SQL[]="INSERT INTO ".$cfg_Current['QUEUE_MEMBER_TABLE']." (".$entries.") VALUES (".$values.")";
+ }
+ }
+
+
+ /*****************
+ * Create extension entries
+ *****************/
+
+ /* Add the extension entries
+ * First we must remove all old entensions.
+ */
+ $SQL[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$this->cn."';\n";
+ $SQL[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$this->old_cn."';\n";
+
+ /* Delete old enxtension entries for the old telephone nubmer */
+ if(is_array($this->old_phone_numbers)){
+ foreach($this->old_phone_numbers as $phone){
+ $SQL[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$phone."';\n";
+ }
+ }
+
+ /* Delete enxtension entries for telephone numbers */
+ if(is_array($this->telephoneNumber)){
+ foreach($this->telephoneNumber as $phone){
+ $SQL[]= "DELETE FROM ".$cfg_Current['EXT_TABLE']." WHERE exten='".$phone."';\n";
+ }
+ }
+
+ /* Create a extension entry fpr each telephoneNumber */
+ $i_insert_only_once = false;
+ $prio = 11; // This represents the priority for each telephoneNumber
+ foreach($this->telephoneNumber as $num){
+
+ /* The naming refrences */
+ if($i_insert_only_once == false){
+ $i_insert_only_once = true;
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $this->cn;
+ $a_ext[$i]['priority'] = 1;
+ $a_ext[$i]['app'] = "Goto";
+ $a_ext[$i]['appdata'] = $num."|1";
+ $i ++ ;
+ }
+
+ /* If there is currently no user for this queue
+ * Play no service sound file and return to default context.
+ */
+ if(count($queueuser)==0){
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $num;
+ $a_ext[$i]['priority'] = 1;
+ $a_ext[$i]['app'] = "Set";
+ $a_ext[$i]['appdata'] = "CHANNEL(language)=".$this->goFonQueueLanguage;
+ $i ++ ;
+
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $num;
+ $a_ext[$i]['priority'] = 2;
+ $a_ext[$i]['app'] = "Playback";
+ $a_ext[$i]['appdata'] = "ss-noservice";
+ $i ++ ;
+
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $num;
+ $a_ext[$i]['priority'] = 3;
+ $a_ext[$i]['app'] = "Goto";
+ $a_ext[$i]['appdata'] = "default";
+ $i ++ ;
+ }else{
+
+ /* Dcrement priority to avoid using same priority twice */
+ $prio --;
+
+ /* Wait for 2 seconds */
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $num;
+ $a_ext[$i]['priority'] = 1;
+ $a_ext[$i]['app'] = "Wait";
+ $a_ext[$i]['appdata'] = "2";
+ $i ++ ;
+
+ /* Set language to queue language */
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $num;
+ $a_ext[$i]['priority'] = 2;
+ $a_ext[$i]['app'] = "Set";
+ $a_ext[$i]['appdata'] = "CHANNEL(language)=".$this->goFonQueueLanguage;
+ $i ++ ;
+
+ /* Play welcome sound file */
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $num;
+ $a_ext[$i]['priority'] = 3;
+ $a_ext[$i]['app'] = "Playback";
+ $a_ext[$i]['appdata'] = $this->goFonWelcomeMusic;
+ $i ++ ;
+
+ /* Set CID name */
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $num;
+ $a_ext[$i]['priority'] = 4;
+ $a_ext[$i]['app'] = "SetCIDName";
+ if(!empty($this->parent->by_object['ogroup']->description)){
+ $a_ext[$i]['appdata'] = $this->parent->by_object['ogroup']->description;
+ }else{
+ $a_ext[$i]['appdata'] = $this->cn." - ".$num;
+ }
+ $i ++ ;
+
+ /* Set queue priority */
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $num;
+ $a_ext[$i]['priority'] = 5;
+ $a_ext[$i]['app'] = "Set";
+ $a_ext[$i]['appdata'] = "QUEUE_PRIO=".$prio;
+ $i ++ ;
+
+ /* Open queue */
+ $a_ext[$i]['context'] = 'GOsa';
+ $a_ext[$i]['exten'] = $num;
+ $a_ext[$i]['priority'] = 6;
+ $a_ext[$i]['app'] = "Queue";
+ $a_ext[$i]['appdata'] = $this->cn;
+ "|".
+ $this->goFonDialOptiont.
+ $this->goFonDialOptionT.
+ $this->goFonDialOptionh.
+ $this->goFonDialOptionH.
+ $this->goFonDialOptionr;
+ }
+
+ $i++;
+ }
+
+ /* Parse and Add Extension entries */
+ foreach($a_ext as $ext){
+ $entries = "";
+ $values = "";
+ foreach($ext as $attr => $val){
+ $entries.= "`".$attr."`,";
+ $values .= "'".$val."',";
+ }
+ $values = preg_replace("/,$/","",$values);
+ $entries = preg_replace("/,$/","",$entries );
+ $SQL[]="INSERT INTO ".$cfg_Current['EXT_TABLE']." (".$entries.") VALUES (".$values.")";
+ }
+
+ /* Do all collected mysql queries
+ */
+ foreach($SQL as $query)
+ $res = mysql_query($query,$res_cur);
+ if(!$res){
+ new log("debug","ogroups/".get_class($this),"",array(),@mysql_error($res_cur));
+ return(msgPool::dbquery(_("GOfon"),@mysql_error($res_cur)));
+ }
+ }
+ @mysql_close($r_con);
+ return(false);
}
- @mysql_close($r_con);
- return(false);
- }
-
-
- /* This function checks if the given phonenumbers
- * are available or already in use
- */
- function is_number_used()
- {
- $ldap= $this->config->get_ldap_link();
- $ldap->cd($this->config->current['BASE']);
- $ldap->search("(&(& (!(uid=".$this->cn."))
- (!(cn=".$this->cn.")))
- (| (objectClass=goFonAccount)
- (objectClass=goFonQueue)
- (objectClass=goFonConference)))", array("telephoneNumber","cn","uid"));
- while($attrs = $ldap->fetch()) {
- unset($attrs['telephoneNumber']['count']);
- foreach($attrs['telephoneNumber'] as $tele){
- if(!isset($attrs['cn'][0])) $attrs['cn'][0]=$attrs['dn'];
- if(!isset($attrs['uid'][0])) $attrs['uid'][0]=$attrs['dn'];
- $numbers[$tele]=$attrs;
- }
+
+
+ /* This function checks if the given phonenumbers
+ * are available or already in use
+ */
+ function is_number_used()
+ {
+ $ldap= $this->config->get_ldap_link();
+ $ldap->cd($this->config->current['BASE']);
+ $ldap->search("(&(& (!(uid=".$this->cn."))
+ (!(cn=".$this->cn.")))
+ (| (objectClass=goFonAccount)
+ (objectClass=goFonQueue)
+ (objectClass=goFonConference)))", array("telephoneNumber","cn","uid"));
+ while($attrs = $ldap->fetch()) {
+ unset($attrs['telephoneNumber']['count']);
+ foreach($attrs['telephoneNumber'] as $tele){
+ if(!isset($attrs['cn'][0])) $attrs['cn'][0]=$attrs['dn'];
+ if(!isset($attrs['uid'][0])) $attrs['uid'][0]=$attrs['dn'];
+ $numbers[$tele]=$attrs;
+ }
+ }
+
+ foreach($this->telephoneNumber as $num){
+ if((isset($numbers[$num]))&&(($numbers[$num]['cn'][0]!= $this->attrs['cn'][0]))){
+ if(isset($numbers[$num]['uid'][0])){
+ msgPool::duplicated(_("telephone number"));
+ }else{
+ msgPool::duplicated(_("telephone number"));
+ }
+ }
+ }
}
- foreach($this->telephoneNumber as $num){
- if((isset($numbers[$num]))&&(($numbers[$num]['cn'][0]!= $this->attrs['cn'][0]))){
- if(isset($numbers[$num]['uid'][0])){
- msgPool::duplicated(_("telephone number"));
- }else{
- msgPool::duplicated(_("telephone number"));
+
+ /* Get posted attributes */
+ function save_object()
+ {
+ plugin::save_object();
+ if(isset($_POST['phonenumber'])){
+ foreach(array("goFonDialOptiont","goFonDialOptionT","goFonDialOptionh","goFonDialOptionr","goFonDialOptionH","goFonMusiconHold") as $val){
+ if(isset($_POST[$val])){
+ $this->$val = get_post($val);
+ }else{
+ $this->$val = false;
+ }
+ }
+ if(isset($_POST['goFonQueueAnnounceHoldtime'])){
+ $this->goFonQueueAnnounceHoldtime = "yes";
+ }else{
+ $this->goFonQueueAnnounceHoldtime = false;
+ }
}
- }
}
- }
- /* Get posted attributes */
- function save_object()
- {
- plugin::save_object();
- if(isset($_POST['phonenumber'])){
- foreach(array("goFonDialOptiont","goFonDialOptionT","goFonDialOptionh","goFonDialOptionr","goFonDialOptionH","goFonMusiconHold") as $val){
- if(isset($_POST[$val])){
- $this->$val = $_POST[$val];
+ function save()
+ {
+ $ldap= $this->config->get_ldap_link();
+
+ plugin::save();
+
+ /* Create dial option attribute */
+ $this->attrs['goFonDialOption'] = "";
+ foreach(array("goFonDialOptiont","goFonDialOptionT","goFonDialOptionr","goFonDialOptionh","goFonDialOptionH","cn") as $val){
+ $this->attrs['goFonDialOption'].=$this->$val;
+ unset($this->attrs[$val]);
+ }
+ if(empty($this->attrs['goFonDialOption'])) {
+ $this->attrs['goFonDialOption']=array();
+ }
+
+ /* Set announce hold time to yes no .. */
+ if($this->goFonQueueAnnounceHoldtime != "no" ){
+ $this->attrs['goFonQueueAnnounceHoldtime'] = "yes";
}else{
- $this->$val = false;
- }
- }
- if(isset($_POST['goFonQueueAnnounceHoldtime'])){
- $this->goFonQueueAnnounceHoldtime = "yes";
- }else{
- $this->goFonQueueAnnounceHoldtime = false;
- }
- }
- }
+ $this->attrs['goFonQueueAnnounceHoldtime'] = "no";
+ }
+ /* Set strategy */
+ $this->attrs['goFonQueueStrategy'] = $this->goFonQueueStrategyOptionsR[$this->goFonQueueStrategy];
- function save()
- {
- $ldap= $this->config->get_ldap_link();
+ /* Add database entry, display error and abort if this fails */
+ $str = $this->add_to_database(true);
+ if(!empty($str)){
+ msg_dialog::display(_("Error"), $str, ERROR_DIALOG);
+ }
- plugin::save();
+ /* Save data to LDAP */
+ $ldap->cd($this->dn);
+ $this->cleanup();
+ $ldap->modify ($this->attrs);
- /* Create dial option attribute */
- $this->attrs['goFonDialOption'] = "";
- foreach(array("goFonDialOptiont","goFonDialOptionT","goFonDialOptionr","goFonDialOptionh","goFonDialOptionH","cn") as $val){
- $this->attrs['goFonDialOption'].=$this->$val;
- unset($this->attrs[$val]);
- }
- if(empty($this->attrs['goFonDialOption'])) {
- $this->attrs['goFonDialOption']=array();
- }
+ if($this->initially_was_account){
+ new log("modify","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+ }else{
+ new log("modify","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+ }
+
+ if (!$ldap->success()){
+ msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
+ }
- /* Set announce hold time to yes no .. */
- if($this->goFonQueueAnnounceHoldtime != "no" ){
- $this->attrs['goFonQueueAnnounceHoldtime'] = "yes";
- }else{
- $this->attrs['goFonQueueAnnounceHoldtime'] = "no";
+ /* Optionally execute a command after we're done */
+ if ($this->initially_was_account == $this->is_account){
+ if ($this->is_modified){
+ $this->handle_post_events("modify");
+ }
+ } else {
+ $this->handle_post_events("add");
+ }
}
- /* Set strategy */
- $this->attrs['goFonQueueStrategy'] = $this->goFonQueueStrategyOptionsR[$this->goFonQueueStrategy];
- /* Add database entry, display error and abort if this fails */
- $str = $this->add_to_database(true);
- if(!empty($str)){
- msg_dialog::display(_("Error"), $str, ERROR_DIALOG);
- }
+ /* remove object from parent */
+ function remove_from_parent()
+ {
+ /* Cancel if nothing is to do here */
+ if (!$this->initially_was_account){
+ return;
+ }
- /* Save data to LDAP */
- $ldap->cd($this->dn);
- $this->cleanup();
- $ldap->modify ($this->attrs);
+ /* Remove database entries,
+ * if fails display errors and abort
+ */
+ $str = $this->remove_from_database(true);
+ if(!empty($str)){
+ msg_dialog::display(_("Error"), $str, ERROR_DIALOG);
+ return false;
+ }
- if($this->initially_was_account){
- new log("modify","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
- }else{
- new log("modify","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+ /* Remove all temporary attributes */
+ $tmp = array_flip($this->attributes);
+ foreach(array("goFonDialOptiont","goFonDialOptionT","goFonDialOptionr","goFonDialOptionh","goFonDialOptionH","cn") as $val){
+ unset($this->$val);
+ unset($this->attrs[$val]);
+ unset($tmp[$val]);
+ }
+ foreach(array_flip($tmp) as $key => $val){
+ $tmp2[]=$val;
+ }
+ $this->attributes = $tmp2;
+
+ /* include global link_info */
+ $ldap= $this->config->get_ldap_link();
+
+ /* Remove and write to LDAP */
+ plugin::remove_from_parent();
+
+ @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,$this->attributes, "Save");
+ $ldap->cd($this->dn);
+ $this->cleanup();
+ $ldap->modify ($this->attrs);
+ new log("remove","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+ if (!$ldap->success()){
+ msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
+ }
}
- if (!$ldap->success()){
- msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
- }
- /* Optionally execute a command after we're done */
- if ($this->initially_was_account == $this->is_account){
- if ($this->is_modified){
- $this->handle_post_events("modify");
- }
- } else {
- $this->handle_post_events("add");
+ function getCopyDialog()
+ {
+ $str = "";
+ $str .= _("Phone number");
+ $str .= " <input type='text' name='telephoneNumber' value='".$this->telephoneNumber."'>";
+ return($str);
}
- }
- /* remove object from parent */
- function remove_from_parent()
- {
- /* Cancel if nothing is to do here */
- if (!$this->initially_was_account){
- return;
+ function saveCopyDialog()
+ {
+ if(isset($_POST['telephoneNumber'])){
+ $this->telephoneNumber = get_post('telephoneNumber');
+ }
}
- /* Remove database entries,
- * if fails display errors and abort
- */
- $str = $this->remove_from_database(true);
- if(!empty($str)){
- msg_dialog::display(_("Error"), $str, ERROR_DIALOG);
- return false;
- }
-
- /* Remove all temporary attributes */
- $tmp = array_flip($this->attributes);
- foreach(array("goFonDialOptiont","goFonDialOptionT","goFonDialOptionr","goFonDialOptionh","goFonDialOptionH","cn") as $val){
- unset($this->$val);
- unset($this->attrs[$val]);
- unset($tmp[$val]);
- }
- foreach(array_flip($tmp) as $key => $val){
- $tmp2[]=$val;
- }
- $this->attributes = $tmp2;
-
- /* include global link_info */
- $ldap= $this->config->get_ldap_link();
-
- /* Remove and write to LDAP */
- plugin::remove_from_parent();
-
- @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,$this->attributes, "Save");
- $ldap->cd($this->dn);
- $this->cleanup();
- $ldap->modify ($this->attrs);
- new log("remove","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
- if (!$ldap->success()){
- msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
- }
- }
-
-
- function getCopyDialog()
- {
- $str = "";
- $str .= _("Phone number");
- $str .= " <input type='text' name='telephoneNumber' value='".$this->telephoneNumber."'>";
- return($str);
- }
-
-
- function saveCopyDialog()
- {
- if(isset($_POST['telephoneNumber'])){
- $this->telephoneNumber = $_POST['telephoneNumber'];
+
+ static function plInfo()
+ {
+ return (array(
+ "plShortName" => _("Phone"),
+ "plDescription" => _("Phone group"),
+ "plSelfModify" => FALSE,
+ "plDepends" => array(),
+ "plPriority" => 3,
+ "plSection" => array("administration"),
+ "plCategory" => array("ogroups"),
+ "plRequirements"=> array(
+ 'activePlugin' => 'phoneAccount',
+ 'ldapSchema' => array('goFonQueue' => '>=2.7'),
+ 'onFailureDisablePlugin' => array(get_class())
+ ),
+ "plProvidedAcls"=> array(
+
+ "goFonTimeOut" => _("Timeout"),
+ "goFonMaxLen" => _("Max queue length"),
+ "goFonHomeServer" => _("Home server"),
+ "goFonAnnounceFrequency" => _("Announce frequency"),
+ "goFonDialOptiont" => _("Allow the called user to transfer his call"),
+ "goFonDialOptionT" => _("Allows calling user to transfer call"),
+ "goFonDialOptionh" => _("Allow the called to hangup by pressing *"),
+ "goFonDialOptionr" => _("Ring instead of playing background music"),
+ "goFonDialOptionH" => _("Allows calling to hangup by pressing *"),
+
+ "goFonMusiconHold" => _("Music on hold"),
+ "goFonWelcomeMusic" => _("Welcome music"),
+ "goFonQueueReportHold" => _("Report hold time"),
+ "goFonQueueYouAreNext" => _("'You are next' sound"),
+ "goFonQueueThereAre" => _("'There are' sound"),
+ "goFonQueueCallsWaiting" => _("'Call waiting' sound"),
+ "goFonQueueThankYou" => _("'Thank you' sound"),
+ "goFonQueueMinutes" => _("'Minutes' sound"),
+ "goFonQueueSeconds" => _("'Seconds' sound"),
+ "goFonQueueLessThan" => _("'Less than' sound"),
+ "telephoneNumber" => _("Queue phone number"),
+ "goFonQueueLanguage" => _("Language"),
+ "goFonQueueStrategy" => _("Method"),
+ "goFonQueueAnnounceHoldtime"=> _("Announce holdtime"),
+ "goFonQueueAnnounce" => _("Announce"),
+ "goFonQueueRetry" => _("Retry"))
+ ));
}
- }
-
-
- static function plInfo()
- {
- return (array(
- "plShortName" => _("Phone"),
- "plDescription" => _("Phone group"),
- "plSelfModify" => FALSE,
- "plDepends" => array(),
- "plPriority" => 3,
- "plSection" => array("administration"),
- "plCategory" => array("ogroups"),
- "plRequirements"=> array(
- 'activePlugin' => 'phoneAccount',
- 'ldapSchema' => array('goFonQueue' => '>=2.7'),
- 'onFailureDisablePlugin' => array(get_class())
- ),
- "plProvidedAcls"=> array(
-
- "goFonTimeOut" => _("Timeout"),
- "goFonMaxLen" => _("Max queue length"),
- "goFonHomeServer" => _("Home server"),
- "goFonAnnounceFrequency" => _("Announce frequency"),
- "goFonDialOptiont" => _("Allow the called user to transfer his call"),
- "goFonDialOptionT" => _("Allows calling user to transfer call"),
- "goFonDialOptionh" => _("Allow the called to hangup by pressing *"),
- "goFonDialOptionr" => _("Ring instead of playing background music"),
- "goFonDialOptionH" => _("Allows calling to hangup by pressing *"),
-
- "goFonMusiconHold" => _("Music on hold"),
- "goFonWelcomeMusic" => _("Welcome music"),
- "goFonQueueReportHold" => _("Report hold time"),
- "goFonQueueYouAreNext" => _("'You are next' sound"),
- "goFonQueueThereAre" => _("'There are' sound"),
- "goFonQueueCallsWaiting" => _("'Call waiting' sound"),
- "goFonQueueThankYou" => _("'Thank you' sound"),
- "goFonQueueMinutes" => _("'Minutes' sound"),
- "goFonQueueSeconds" => _("'Seconds' sound"),
- "goFonQueueLessThan" => _("'Less than' sound"),
- "telephoneNumber" => _("Queue phone number"),
- "goFonQueueLanguage" => _("Language"),
- "goFonQueueStrategy" => _("Method"),
- "goFonQueueAnnounceHoldtime"=> _("Announce holdtime"),
- "goFonQueueAnnounce" => _("Announce"),
- "goFonQueueRetry" => _("Retry"))
- ));
- }
}