From 6b60a14121bdb78cb2995f45106f0e56549fbde4 Mon Sep 17 00:00:00 2001
From: rani vemgoti <114975941+Rani0608@users.noreply.github.com>
Date: Fri, 28 Apr 2023 13:07:56 +0530
Subject: [PATCH 01/11] Appointment Remainder App
---
.../CallConfiguration.py | 16 +-
.../CommunicationIdentifierKind.py | 8 -
.../ConfigurationManager.py | 9 +-
.../Controller/OutboundCallController.py | 30 --
.../Controller/__init__.py | 0
.../Ngrok/NgrokConnector.py | 13 -
.../Ngrok/NgrokService.py | 82 -----
.../audio/AppointmentCancelledAudio.wav | Bin 0 -> 132364 bytes
.../audio/AppointmentConfirmedAudio.wav | Bin 0 -> 133564 bytes
.../audio/AppointmentReminderMenu.wav | Bin 0 -> 463246 bytes
.../audio/InvalidInputAudio.wav | Bin 0 -> 128204 bytes
.../audio/TimedoutAudio.wav | Bin 0 -> 161804 bytes
.../audio/custom-message.wav | Bin 265780 -> 0 bytes
.../audio/sample-message.wav | Bin 265780 -> 0 bytes
.../config.ini | 38 ++-
.../program.py | 301 ++++++++++--------
.../requirements.txt | 2 +-
17 files changed, 201 insertions(+), 298 deletions(-)
delete mode 100644 callautomation-appointment-reminder/CommunicationIdentifierKind.py
delete mode 100644 callautomation-appointment-reminder/Controller/OutboundCallController.py
delete mode 100644 callautomation-appointment-reminder/Controller/__init__.py
delete mode 100644 callautomation-appointment-reminder/Ngrok/NgrokConnector.py
delete mode 100644 callautomation-appointment-reminder/Ngrok/NgrokService.py
create mode 100644 callautomation-appointment-reminder/audio/AppointmentCancelledAudio.wav
create mode 100644 callautomation-appointment-reminder/audio/AppointmentConfirmedAudio.wav
create mode 100644 callautomation-appointment-reminder/audio/AppointmentReminderMenu.wav
create mode 100644 callautomation-appointment-reminder/audio/InvalidInputAudio.wav
create mode 100644 callautomation-appointment-reminder/audio/TimedoutAudio.wav
delete mode 100644 callautomation-appointment-reminder/audio/custom-message.wav
delete mode 100644 callautomation-appointment-reminder/audio/sample-message.wav
diff --git a/callautomation-appointment-reminder/CallConfiguration.py b/callautomation-appointment-reminder/CallConfiguration.py
index 51a8567..721385a 100644
--- a/callautomation-appointment-reminder/CallConfiguration.py
+++ b/callautomation-appointment-reminder/CallConfiguration.py
@@ -1,15 +1,19 @@
-from EventHandler.EventAuthHandler import EventAuthHandler
+#from EventHandler.EventAuthHandler import EventAuthHandler
class CallConfiguration:
- def __init__(self, connection_string, source_identity, source_phone_number, app_base_url, audio_file_name):
+ def __init__(self, connection_string, source_identity, source_phone_number, app_base_url, audio_file_name,Event_CallBack_Route,Appointment_Confirmed_Audio,
+ Appointment_Cancelled_Audio,Timed_out_Audio,Invalid_Input_Audio):
self.connection_string: str = str(connection_string)
self.source_identity: str = str(source_identity)
self.source_phone_number: str = str(source_phone_number)
self.app_base_url: str = str(app_base_url)
self.audio_file_name: str = str(audio_file_name)
- eventhandler = EventAuthHandler()
- self.app_callback_url: str = app_base_url + \
- "/api/outboundcall/callback?" + eventhandler.get_secret_querystring()
- self.audio_file_url: str = app_base_url + "/audio/" + audio_file_name
+ self.Appointment_Confirmed_Audio: str = str(Appointment_Confirmed_Audio)
+ self.Appointment_Cancelled_Audio: str = str(Appointment_Cancelled_Audio)
+ self.Timed_out_Audio: str = str(Timed_out_Audio)
+ self.Invalid_Input_Audio: str = str(Invalid_Input_Audio)
+ self.Event_CallBack_Route:str = str(Event_CallBack_Route)
+ self.app_callback_url: str = app_base_url + Event_CallBack_Route
+ self.audio_file_url: str = audio_file_name
diff --git a/callautomation-appointment-reminder/CommunicationIdentifierKind.py b/callautomation-appointment-reminder/CommunicationIdentifierKind.py
deleted file mode 100644
index 571b625..0000000
--- a/callautomation-appointment-reminder/CommunicationIdentifierKind.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import enum
-
-
-class CommunicationIdentifierKind(enum.Enum):
-
- USER_IDENTITY = 1
- PHONE_IDENTITY = 2
- UNKNOWN_IDENTITY = 3
diff --git a/callautomation-appointment-reminder/ConfigurationManager.py b/callautomation-appointment-reminder/ConfigurationManager.py
index 4a3483b..0dde1c0 100644
--- a/callautomation-appointment-reminder/ConfigurationManager.py
+++ b/callautomation-appointment-reminder/ConfigurationManager.py
@@ -1,23 +1,22 @@
import configparser
-
-
class ConfigurationManager:
__configuration = None
__instance = None
+ _configpath=None
def __init__(self):
- if(self.__configuration == None):
+ if(self.__configuration == None):
self.__configuration = configparser.ConfigParser()
self.__configuration.read('config.ini')
@staticmethod
def get_instance():
+
if(ConfigurationManager.__instance == None):
ConfigurationManager.__instance = ConfigurationManager()
-
return ConfigurationManager.__instance
def get_app_settings(self, key):
if (key != None):
- return self.__configuration.get('default', key)
+ return self.__configuration.get("DEFAULT", key)
return None
diff --git a/callautomation-appointment-reminder/Controller/OutboundCallController.py b/callautomation-appointment-reminder/Controller/OutboundCallController.py
deleted file mode 100644
index 9bb1514..0000000
--- a/callautomation-appointment-reminder/Controller/OutboundCallController.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from aiohttp import web
-from EventHandler.EventAuthHandler import EventAuthHandler
-from EventHandler.EventDispatcher import EventDispatcher
-
-
-class OutboundCallController():
-
- app = web.Application()
-
- def __init__(self):
- self.app.add_routes(
- [web.post('/api/outboundcall/callback', self.on_incoming_request_async)])
- self.app.add_routes([web.get("/audio/{file_name}", self.load_file)])
- web.run_app(self.app, port=9007)
-
- async def on_incoming_request_async(self, request):
- param = request.rel_url.query
- content = await request.content.read()
-
- eventhandler = EventAuthHandler()
- if (param.get('secret') and eventhandler.authorize(param['secret'])):
- eventDispatcher: EventDispatcher = EventDispatcher.get_instance()
- eventDispatcher.process_notification(str(content.decode('UTF-8')))
-
- return "OK"
-
- async def load_file(self, request):
- file_name = request.match_info.get('file_name', "Anonymous")
- resp = web.FileResponse(f'audio/{file_name}')
- return resp
diff --git a/callautomation-appointment-reminder/Controller/__init__.py b/callautomation-appointment-reminder/Controller/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/callautomation-appointment-reminder/Ngrok/NgrokConnector.py b/callautomation-appointment-reminder/Ngrok/NgrokConnector.py
deleted file mode 100644
index 7e1ba15..0000000
--- a/callautomation-appointment-reminder/Ngrok/NgrokConnector.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import requests
-import json
-
-
-class NgrokConnector:
-
- def __init__(self):
- self.ngrok_tunnel_url = "http://127.0.0.1:4040/api/tunnels"
-
- def get_all_tunnels(self):
- tunnel_url = requests.get(self.ngrok_tunnel_url).text
- tunnel_list = json.loads(tunnel_url)
- return tunnel_list
diff --git a/callautomation-appointment-reminder/Ngrok/NgrokService.py b/callautomation-appointment-reminder/Ngrok/NgrokService.py
deleted file mode 100644
index f08761b..0000000
--- a/callautomation-appointment-reminder/Ngrok/NgrokService.py
+++ /dev/null
@@ -1,82 +0,0 @@
-from time import sleep
-from Ngrok.NgrokConnector import NgrokConnector
-import os
-import subprocess
-import psutil
-import signal
-from pathlib import Path
-from subprocess import CREATE_NEW_CONSOLE
-
-
-class NgrokService:
- # The NGROK process
- __ngrokProcess = None # Process
- # NgrokConnector connector;
- __connector = None # NgrokConnector
-
- def __init__(self, ngrokPath, authToken):
- self.__connector = NgrokConnector()
- self.ensure_ngrok_not_running()
- self.create_ngrok_process(ngrokPath, authToken)
-
- #
- # Ensures that NGROK is not running.
- #
-
- def ensure_ngrok_not_running(self):
- process_name = "ngrok.exe"
-
- for proc in psutil.process_iter():
- try:
- # Check if process name contains the given name string.
- if process_name.lower() in proc.name().lower():
- raise(
- "Looks like NGROK is still running. Please kill it before running the provider again.")
-
- except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
- pass
-
- #
- # Kill ngrok.exe process
- #
-
- def dispose(self):
- out, err = self.__ngrokProcess.communicate()
- for line in out.splitlines():
- if 'ngrok.exe' in line:
- pid = int(line.split(None, 1)[0])
- os.kill(pid, signal.SIGKILL)
-
- #
- # Creates the NGROK process.
- #
-
- def create_ngrok_process(self, ngrokPath, authToken):
- auth_token_args = ""
- if (authToken and len(authToken)):
- auth_token_args = " --authtoken " + authToken
-
- executable = str(Path(ngrokPath, "ngrok.exe"))
- os.chmod(executable, 0o777)
- self.__ngrokProcess = subprocess.Popen([executable, "http", "http://localhost:9007/", "-host-header", "localhost:9007"],creationflags=CREATE_NEW_CONSOLE)
-
- #
- # Get Ngrok URL
- #
-
- def get_ngrok_url(self):
- try:
- totalAttempts = 4
- while(totalAttempts > 0):
- # Wait for fetching the ngrok url as ngrok process might not be started yet.
- sleep(2)
- tunnels = self.__connector.get_all_tunnels()
- if (tunnels and len(tunnels['tunnels'])):
- # Do the parsing of the get
- ngrok_url = tunnels['tunnels'][0]['public_url']
- return ngrok_url
-
- totalAttempts = totalAttempts - 1
-
- except Exception as ex:
- raise Exception("Failed to retrieve ngrok url --> " + str(ex))
diff --git a/callautomation-appointment-reminder/audio/AppointmentCancelledAudio.wav b/callautomation-appointment-reminder/audio/AppointmentCancelledAudio.wav
new file mode 100644
index 0000000000000000000000000000000000000000..cc9e1c70999bee65a3df551a141f5521ecd96a89
GIT binary patch
literal 132364
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