diff --git a/src/core/sat_main.py b/src/core/sat_main.py index 0373d0b0..ac424fc0 100644 --- a/src/core/sat_main.py +++ b/src/core/sat_main.py @@ -481,7 +481,9 @@ class SAT(service.Service): mess_data["type"] == 'chat' mess_data["type"] == "chat" if mess_data["subject"] else "normal" - if not no_trigger: + send_only = mess_data['extra'].get('send_only', None) + + if not no_trigger and not send_only: if not self.trigger.point("sendMessage", mess_data, pre_xml_treatments, post_xml_treatments, profile): return defer.succeed(None) @@ -494,9 +496,12 @@ class SAT(service.Service): pre_xml_treatments.addCallback(lambda dummy: self.generateMessageXML(mess_data)) pre_xml_treatments.chainDeferred(post_xml_treatments) post_xml_treatments.addCallback(self._sendMessageToStream, client) - post_xml_treatments.addCallback(self._storeMessage, client) - post_xml_treatments.addCallback(self.sendMessageToBridge, client) - post_xml_treatments.addErrback(cancelErrorTrap) + if send_only: + log.debug(_("Triggers, storage and echo have been inhibited by the 'send_only' parameter")) + else: + post_xml_treatments.addCallback(self._storeMessage, client) + post_xml_treatments.addCallback(self.sendMessageToBridge, client) + post_xml_treatments.addErrback(cancelErrorTrap) pre_xml_treatments.callback(mess_data) return pre_xml_treatments