From 08049e9908b4b2a11784296e22a1f8e6ea402d94 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 1 Dec 2021 11:24:11 -0500 Subject: [PATCH] Use disposition=VOICEMAIL for calls that went to voicemail --- lib/cdr.rb | 27 ++++++++++++++------------- views/voicemail.slim | 1 + 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/cdr.rb b/lib/cdr.rb index de9d1f4..39cdaf6 100644 --- a/lib/cdr.rb +++ b/lib/cdr.rb @@ -5,20 +5,21 @@ require "value_semantics/monkey_patched" class CDR module Disposition def self.===(other) - ["NO ANSWER", "ANSWERED", "BUSY", "FAILED"].include?(other) + ["NO ANSWER", "ANSWERED", "BUSY", "FAILED", "VOICEMAIL"].include?(other) end - def self.for(cause) - case cause - when "timeout", "rejected", "cancel" - "NO ANSWER" - when "hangup" - "ANSWERED" - when "busy" - "BUSY" - else - "FAILED" - end + CAUSES = { + timeout: "NO ANSWER", + rejected: "NO ANSWER", + cancel: "NO ANSWER", + hangup: "ANSWERED", + busy: "BUSY" + }.freeze + + def self.for(cause, tag) + return tag if tag == "VOICEMAIL" + + CAUSES.fetch(cause.to_sym, "FAILED") end end @@ -39,7 +40,7 @@ class CDR cdr_id: "sgx-jmp/#{event['callId']}", start: start, billsec: (Time.parse(event["endTime"]) - start).ceil, - disposition: Disposition.for(event["cause"]) + disposition: Disposition.for(event["cause"], event["tag"]) }.merge(kwargs)) end diff --git a/views/voicemail.slim b/views/voicemail.slim index 7a5ba34..fc9fe70 100644 --- a/views/voicemail.slim +++ b/views/voicemail.slim @@ -1,5 +1,6 @@ doctype xml Response + Tag= "VOICEMAIL" Pause duration=2 / == render(*ogm.to_render) PlayAudio= "/beep.mp3" -- 2.34.2