From 86c6d65fe4c6532dba0b744bff20d10d678e7bf3 Mon Sep 17 00:00:00 2001 From: osaajani <> Date: Fri, 26 Mar 2021 17:31:09 +0100 Subject: [PATCH] Update callback to check valid call return --- composer.json | 3 ++- controllers/publics/Callback.php | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 4173614..7522544 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,8 @@ "twilio/sdk": "^6.1", "symfony/yaml": "^5.0", "phpmailer/phpmailer": "^6.1", - "ralouphie/mimey": "^2.1" + "ralouphie/mimey": "^2.1", + "kreait/firebase-php": "^5.14" }, "require-dev": { } diff --git a/controllers/publics/Callback.php b/controllers/publics/Callback.php index 4f2160c..550a4c7 100644 --- a/controllers/publics/Callback.php +++ b/controllers/publics/Callback.php @@ -258,7 +258,7 @@ use Monolog\Logger; */ public function inbound_call(int $id_phone) { - $this->logger->info('Callback reception call with phone : ' . $id_phone); + $this->logger->info('Callback inbound_call call with phone : ' . $id_phone); $phone = $this->internal_phone->get_for_user($this->user['id'], $id_phone); if (!$phone) @@ -291,6 +291,14 @@ use Monolog\Logger; } $call = $response['call']; + + if (empty($call)  || empty($call['uid']) || empty($call['start']) || empty($call['origin'])) + { + $this->logger->error('Callback inbound_call failed : missing required param in call return'); + + return false; + } + $result = $this->internal_call->create($this->user['id'], $id_phone, $call['uid'], \models\Call::DIRECTION_INBOUND, $call['start'], $call['end'] ?? null, $call['origin']); if (!$result) @@ -349,6 +357,13 @@ use Monolog\Logger; } $call = $response['call']; + if (empty($call)  || empty($call['uid']) || empty($call['end'])) + { + $this->logger->error('Callback end call failed : missing required param in call return'); + + return false; + } + $result = $this->internal_call->end($this->user['id'], $id_phone, $call['uid'], $call['end']); if (!$result)