diff --git a/app/calls/app_languages.php b/app/calls/app_languages.php
index c3ea2aa975..981ca16dd8 100644
--- a/app/calls/app_languages.php
+++ b/app/calls/app_languages.php
@@ -101,6 +101,17 @@ $text['label-on-busy']['sv-se'] = "Vid Upptaget ";
$text['label-on-busy']['uk'] = "Якщо зайнято";
$text['label-on-busy']['de-at'] = "Bei Besetzt";
+$text['label-ignore-busy']['en-us'] = "Ignore Busy";
+$text['label-ignore-busy']['es-cl'] = "";
+$text['label-ignore-busy']['pt-pt'] = "";
+$text['label-ignore-busy']['fr-fr'] = "";
+$text['label-ignore-busy']['it-it'] = "";
+$text['label-ignore-busy']['pt-br'] = "";
+$text['label-ignore-busy']['pl'] = "";
+$text['label-ignore-busy']['sv-se'] = "";
+$text['label-ignore-busy']['uk'] = "";
+$text['label-ignore-busy']['de-at'] = "";
+
$text['label-number']['en-us'] = "Number";
$text['label-number']['es-cl'] = "Número";
$text['label-number']['pt-pt'] = "Número";
diff --git a/app/calls/call_edit.php b/app/calls/call_edit.php
index d4d151ee07..85e26d0ad9 100644
--- a/app/calls/call_edit.php
+++ b/app/calls/call_edit.php
@@ -127,6 +127,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$cid_number_prefix = check_str($_POST["cid_number_prefix"]);
$follow_me_enabled = check_str($_POST["follow_me_enabled"]);
$follow_me_caller_id_uuid = check_str($_POST["follow_me_caller_id_uuid"]);
+ $follow_me_ignore_busy = check_str($_POST["follow_me_ignore_busy"]);
$destination_data_1 = check_str($_POST["destination_data_1"]);
$destination_delay_1 = check_str($_POST["destination_delay_1"]);
@@ -280,6 +281,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$follow_me->cid_number_prefix = $cid_number_prefix;
$follow_me->follow_me_enabled = $follow_me_enabled;
$follow_me->follow_me_caller_id_uuid = $follow_me_caller_id_uuid;
+ $follow_me->follow_me_ignore_busy = $follow_me_ignore_busy;
$follow_me->destination_data_1 = $destination_data_1;
$follow_me->destination_type_1 = $destination_type_1;
@@ -402,6 +404,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$cid_number_prefix = $row["cid_number_prefix"];
$follow_me_enabled = $row["follow_me_enabled"];
$follow_me_caller_id_uuid = $row["follow_me_caller_id_uuid"];
+ $follow_me_ignore_busy = $row["follow_me_ignore_busy"];
$sql = "select * from v_follow_me_destinations ";
$sql .= "where follow_me_uuid = '$follow_me_uuid' ";
@@ -738,6 +741,19 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "\n";
echo "\n";
+ echo "
\n";
+ echo " | ";
+ echo $text['label-ignore-busy'];
+ echo " | \n";
+ echo " \n";
+ echo " \n";
+ echo " Interrupt call if one of destination are busy\n";
+ echo " | \n";
+ echo "
\n";
+
if (permission_exists('follow_me_cid_name_prefix')) {
echo "\n";
echo "\n";
diff --git a/app/calls/resources/classes/follow_me.php b/app/calls/resources/classes/follow_me.php
index 6bb12d36c5..8afeda794d 100644
--- a/app/calls/resources/classes/follow_me.php
+++ b/app/calls/resources/classes/follow_me.php
@@ -39,6 +39,7 @@ include "root.php";
public $accountcode;
public $follow_me_enabled;
public $follow_me_caller_id_uuid;
+ public $follow_me_ignore_busy;
public $outbound_caller_id_name;
public $outbound_caller_id_number;
private $extension;
@@ -90,7 +91,8 @@ include "root.php";
$sql .= "cid_number_prefix, ";
}
$sql .= "follow_me_caller_id_uuid, ";
- $sql .= "follow_me_enabled ";
+ $sql .= "follow_me_enabled, ";
+ $sql .= "follow_me_ignore_busy ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
@@ -106,7 +108,8 @@ include "root.php";
else {
$sql .= 'null, ';
}
- $sql .= "'$this->follow_me_enabled' ";
+ $sql .= "'$this->follow_me_enabled', ";
+ $sql .= "'$this->follow_me_ignore_busy' ";
$sql .= ")";
if ($v_debug) {
echo $sql." ";
@@ -122,6 +125,7 @@ include "root.php";
//update follow me table
$sql = "update v_follow_me set ";
$sql .= "follow_me_enabled = '$this->follow_me_enabled', ";
+ $sql .= "follow_me_ignore_busy = '$this->follow_me_ignore_busy', ";
$sql .= "cid_name_prefix = '$this->cid_name_prefix', ";
if (strlen($this->follow_me_caller_id_uuid) > 0) {
$sql .= "follow_me_caller_id_uuid = '$this->follow_me_caller_id_uuid', ";
@@ -276,8 +280,11 @@ include "root.php";
$prep_statement_2 = $db->prepare(check_sql($sql));
$prep_statement_2->execute();
$result = $prep_statement_2->fetchAll(PDO::FETCH_NAMED);
- $dial_string = "{fail_on_single_reject=USER_BUSY";
- $dial_string .= ",instant_ringback=true";
+ $dial_string = "{";
+ if ($this->follow_me_ignore_busy != 'true') {
+ $dial_string .= "fail_on_single_reject=USER_BUSY,";
+ }
+ $dial_string .= "instant_ringback=true,";
$dial_string .= ",ignore_early_media=true";
$dial_string .= ",domain_uuid=".$_SESSION['domain_uuid'];
$dial_string .= ",sip_invite_domain=".$_SESSION['domain_name'];
@@ -375,7 +382,7 @@ include "root.php";
if (is_numeric($row["follow_me_destination"])) {
if ($_SESSION['domain']['bridge']['text'] == "outbound" || $_SESSION['domain']['bridge']['text'] == "bridge") {
$bridge = outbound_route_to_bridge ($_SESSION['domain_uuid'], $row["follow_me_destination"]);
- $dial_string .= $bridge[0].",";
+ $dial_string .= $bridge[0];
}
elseif ($_SESSION['domain']['bridge']['text'] == "loopback") {
$dial_string .= "loopback/".$row["follow_me_destination"]."/".$_SESSION['domain_name'];
diff --git a/app/follow_me/app_config.php b/app/follow_me/app_config.php
index 18c64547f4..d5803f4437 100644
--- a/app/follow_me/app_config.php
+++ b/app/follow_me/app_config.php
@@ -122,6 +122,10 @@
$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)";
$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "";
$z++;
+ $apps[$x]['db'][$y]['fields'][$z]['name'] = "follow_me_ignore_busy";
+ $apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
+ $apps[$x]['db'][$y]['fields'][$z]['description']['en'] = "";
+ $z++;
//schema details
$y = 1; //table array index
|