From 1b3ff71abc67027727d447db0827f94250032d41 Mon Sep 17 00:00:00 2001 From: Toto Caruso Date: Tue, 21 Oct 2014 16:16:10 +0000 Subject: [PATCH] Fixed call_block loop on forward to answer machine and cache clean on delete/edit --- app/call_block/call_block_delete.php | 24 +++++++++++++++++++ app/call_block/call_block_edit.php | 24 ++++++++++++++++++- .../switch/conf/dialplan/040_call_block.xml | 4 ++-- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/app/call_block/call_block_delete.php b/app/call_block/call_block_delete.php index 921cce810e..51d734b785 100644 --- a/app/call_block/call_block_delete.php +++ b/app/call_block/call_block_delete.php @@ -49,6 +49,30 @@ else { //delete the extension if (strlen($id)>0) { + +//read the call_block_number + $sql = " select c.call_block_number, d.domain_name from v_call_block as c "; + $sql .= "JOIN v_domains as d ON c.domain_uuid=d.domain_uuid "; + $sql .= "where c.domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "and c.call_block_uuid = '$id' "; + + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(); + $result_count = count($result); + if ($result_count > 0) { + $call_block_number = $result[0]["call_block_number"]; + $domain_name = $result[0]["domain_name"]; + +//delete extension from memcache + $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); + if ($fp) { + $switch_cmd = "memcache delete app:call_block:".$domain_name.":".$call_block_number; + $switch_result = event_socket_request($fp, 'api '.$switch_cmd); + } + } + unset ($prep_statement, $sql); + $sql = "delete from v_call_block "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "and call_block_uuid = '$id' "; diff --git a/app/call_block/call_block_edit.php b/app/call_block/call_block_edit.php index ea1e9c3f4f..6488e1d251 100644 --- a/app/call_block/call_block_edit.php +++ b/app/call_block/call_block_edit.php @@ -157,7 +157,29 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { return; } //if ($action == "add") - if ($action == "update") { + if ($action == "update") { + $sql = " select c.call_block_number, d.domain_name from v_call_block as c "; + $sql .= "JOIN v_domains as d ON c.domain_uuid=d.domain_uuid "; + $sql .= "where c.domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "and c.call_block_uuid = '$call_block_uuid'"; + + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(); + $result_count = count($result); + if ($result_count > 0) { + $call_block_number = $result[0]["call_block_number"]; + $domain_name = $result[0]["domain_name"]; + +//delete extension from memcache + $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); + if ($fp) { + $switch_cmd = "memcache delete app:call_block:".$domain_name.":".$call_block_number; + $switch_result = event_socket_request($fp, 'api '.$switch_cmd); + } + } + unset ($prep_statement, $sql); + $sql = "update v_call_block set "; $sql .= "call_block_name = '$call_block_name', "; $sql .= "call_block_number = '$call_block_number', "; diff --git a/app/dialplan/resources/switch/conf/dialplan/040_call_block.xml b/app/dialplan/resources/switch/conf/dialplan/040_call_block.xml index 2f76cf98b6..6dd57394f7 100644 --- a/app/dialplan/resources/switch/conf/dialplan/040_call_block.xml +++ b/app/dialplan/resources/switch/conf/dialplan/040_call_block.xml @@ -1,7 +1,7 @@ - - + + \ No newline at end of file