From d10f176d7c20c9c52307b8df9e534dc01a55b137 Mon Sep 17 00:00:00 2001 From: Mateus Santos Date: Tue, 6 Mar 2018 14:14:55 -0300 Subject: [PATCH] add string linst to the event object --- .../manager/event/ManagerEvent.java | 18 ++++++++++++++++++ .../manager/internal/ManagerReaderImpl.java | 8 ++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/asteriskjava/manager/event/ManagerEvent.java b/src/main/java/org/asteriskjava/manager/event/ManagerEvent.java index 3fa1af486..837a0ee4a 100644 --- a/src/main/java/org/asteriskjava/manager/event/ManagerEvent.java +++ b/src/main/java/org/asteriskjava/manager/event/ManagerEvent.java @@ -51,6 +51,24 @@ public abstract class ManagerEvent extends EventObject protected String exten; protected String callerIdNum; protected String callerIdName; + protected String[] lines; + /** + * Returns the array of strings in the message. + * + * @return + * @since 0.3 + */ + + public String[] getLines() + { + return lines; + } + + public void setLines(String[] lines) + { + this.lines = lines; + } + /** * Returns the Caller ID name of the caller's channel. diff --git a/src/main/java/org/asteriskjava/manager/internal/ManagerReaderImpl.java b/src/main/java/org/asteriskjava/manager/internal/ManagerReaderImpl.java index 3535a24d9..a34efbe19 100644 --- a/src/main/java/org/asteriskjava/manager/internal/ManagerReaderImpl.java +++ b/src/main/java/org/asteriskjava/manager/internal/ManagerReaderImpl.java @@ -148,6 +148,7 @@ public void run() { final Map buffer = new HashMap<>(); String line; + List lines = new ArrayList<>(); if (socket == null) { @@ -162,6 +163,7 @@ public void run() // main loop while (!this.die && (line = socket.readLine()) != null) { + lines.add(line); // maybe we will find a better way to identify the protocol // identifier but for now // this works quite well. @@ -226,7 +228,7 @@ public void run() // TODO tracing // logger.debug("attempting to build event: " + // buffer.get("event")); - ManagerEvent event = buildEvent(source, buffer); + ManagerEvent event = buildEvent(source, buffer, lines); if (event != null) { dispatcher.dispatchEvent(event); @@ -268,6 +270,7 @@ else if (buffer.containsKey("response")) } buffer.clear(); + lines.clear(); } } this.dead = true; @@ -356,7 +359,7 @@ private ManagerResponse buildResponse(Map buffer) return response; } - private ManagerEvent buildEvent(Object source, Map buffer) + private ManagerEvent buildEvent(Object source, Map buffer, List lines) { ManagerEvent event; @@ -365,6 +368,7 @@ private ManagerEvent buildEvent(Object source, Map buffer) if (event != null) { event.setDateReceived(DateUtil.getDate()); + event.setLines(lines.toArray(new String[0])); } return event;