From e0a07e4346cb9314db66455bc1a6dce76167eb17 Mon Sep 17 00:00:00 2001 From: prostraction Date: Sun, 15 Dec 2024 14:37:15 +0500 Subject: [PATCH] SAW-4360 Added incoming calls support --- examples/call.py | 12 ++++++++++++ whatsapp_chatbot_python/manager/router.py | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 examples/call.py diff --git a/examples/call.py b/examples/call.py new file mode 100644 index 0000000..dfc1664 --- /dev/null +++ b/examples/call.py @@ -0,0 +1,12 @@ +from whatsapp_chatbot_python import GreenAPIBot, Notification + +bot = GreenAPIBot( + "1101000001", "d75b3a66374942c5b3c019c698abc2067e151558acbd412345" +) + + +@bot.router.incoming_call() +def message_handler(notification: Notification) -> None: + print("Call from:", notification.event["from"], "with status", notification.event["status"]) + +bot.run_forever() diff --git a/whatsapp_chatbot_python/manager/router.py b/whatsapp_chatbot_python/manager/router.py index c5f797c..4604d2c 100644 --- a/whatsapp_chatbot_python/manager/router.py +++ b/whatsapp_chatbot_python/manager/router.py @@ -23,6 +23,7 @@ def __init__(self, api: "GreenAPI", logger: logging.Logger): self.outgoing_message: AbstractObserver = Observer(self) self.outgoing_api_message: AbstractObserver = Observer(self) self.outgoing_message_status: AbstractObserver = Observer(self) + self.incoming_call: AbstractObserver = Observer(self) self.buttons: AbstractObserver = ButtonObserver(self) @@ -33,7 +34,8 @@ def __init__(self, api: "GreenAPI", logger: logging.Logger): "incomingMessageReceived": self.message, "outgoingMessageReceived": self.outgoing_message, "outgoingAPIMessageReceived": self.outgoing_api_message, - "outgoingMessageStatus": self.outgoing_message_status + "outgoingMessageStatus": self.outgoing_message_status, + "incomingCall": self.incoming_call } def route_event(self, event: dict) -> None: