diff --git a/README.md b/README.md
index 0a4d46f1b..579041b95 100644
--- a/README.md
+++ b/README.md
@@ -49,7 +49,7 @@ Asterisk-Java 3.x (Java 1.8 and Asterisk Version 10 thru 18) (master)
org.asteriskjava
asterisk-java
- 3.34.0
+ 3.36.0-nj
INSTALLATION FROM SOURCE
diff --git a/pom.xml b/pom.xml
index cae2d34bd..f1ec21289 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@
- 3.34.0
+ 3.36.0-nj
UTF-8
@@ -99,7 +99,7 @@
org.apache.logging.log4j
log4j-core
- 2.19.0
+ 2.22.0
provided
@@ -123,7 +123,7 @@
org.mockito
mockito-core
- 4.8.0
+ 4.11.0
test
diff --git a/pubspec.lock b/pubspec.lock
index c0143ffb5..16800d779 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,273 +5,312 @@ packages:
dependency: transitive
description:
name: archive
- url: "https://pub.dartlang.org"
+ sha256: a92e39b291073bb840a72cf43d96d2a63c74e9a485d227833e8ea0054d16ad16
+ url: "https://pub.dev"
source: hosted
version: "3.1.2"
args:
dependency: "direct main"
description:
name: args
- url: "https://pub.dartlang.org"
+ sha256: "37a4264b0b7fb930e94c0c47558f3b6c4f4e9cb7e655a3ea373131d79b2dc0cc"
+ url: "https://pub.dev"
source: hosted
version: "2.0.0"
async:
dependency: transitive
description:
name: async
- url: "https://pub.dartlang.org"
+ sha256: "6eda8392a48ae1de7ea438c91a4ba3e77205f043e7013102a424863aa6db368f"
+ url: "https://pub.dev"
source: hosted
version: "2.5.0"
basic_utils:
dependency: transitive
description:
name: basic_utils
- url: "https://pub.dartlang.org"
+ sha256: "82976655f5fa4af987afbff7ab16a6ffe2ea5283b06aff6a2bc6cc4889005a59"
+ url: "https://pub.dev"
source: hosted
version: "3.0.0-nullsafety.1"
charcode:
dependency: transitive
description:
name: charcode
- url: "https://pub.dartlang.org"
+ sha256: "8e36feea6de5ea69f2199f29cf42a450a855738c498b57c0b980e2d3cca9c362"
+ url: "https://pub.dev"
source: hosted
version: "1.2.0"
collection:
dependency: transitive
description:
name: collection
- url: "https://pub.dartlang.org"
+ sha256: "6d4193120997ecfd09acf0e313f13dc122b119e5eca87ef57a7d065ec9183762"
+ url: "https://pub.dev"
source: hosted
version: "1.15.0"
convert:
dependency: transitive
description:
name: convert
- url: "https://pub.dartlang.org"
+ sha256: df567b950053d83b4dba3e8c5799c411895d146f82b2147114b666a4fd9a80dd
+ url: "https://pub.dev"
source: hosted
version: "3.0.0"
crypto:
dependency: transitive
description:
name: crypto
- url: "https://pub.dartlang.org"
+ sha256: "8be10341257b613566fdc9fd073c46f7c032ed329b1c732bda17aca29f2366c8"
+ url: "https://pub.dev"
source: hosted
version: "3.0.0"
csv:
dependency: transitive
description:
name: csv
- url: "https://pub.dartlang.org"
+ sha256: "5772e255feafae00699c5c781dc3c426cbb12243c4e1a55a3ccb311b49444967"
+ url: "https://pub.dev"
source: hosted
version: "5.0.0"
dcli:
dependency: "direct main"
description:
name: dcli
- url: "https://pub.dartlang.org"
+ sha256: d8c763628b15e8c14a90b2dcbfb22c55f0c621b5a6885e363dcdbf089e3b74ab
+ url: "https://pub.dev"
source: hosted
version: "0.51.5"
equatable:
dependency: transitive
description:
name: equatable
- url: "https://pub.dartlang.org"
+ sha256: "8867afc0f09dd9aff976817fbd94e9a35a3a2e58bef3b39a5376918321ec97a4"
+ url: "https://pub.dev"
source: hosted
version: "2.0.0"
ffi:
dependency: transitive
description:
name: ffi
- url: "https://pub.dartlang.org"
+ sha256: d97fffd9d86f3dccc7a9059128b468a99320c69007cc9d41a3a1bda07d4e86dc
+ url: "https://pub.dev"
source: hosted
version: "1.0.0"
file:
dependency: transitive
description:
name: file
- url: "https://pub.dartlang.org"
+ sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
+ url: "https://pub.dev"
source: hosted
- version: "6.1.0"
+ version: "6.1.4"
glob:
dependency: transitive
description:
name: glob
- url: "https://pub.dartlang.org"
+ sha256: "36a6ea2cac1f93742ecee02250fb498122c0993eb948120ff0dbef6cd694beb8"
+ url: "https://pub.dev"
source: hosted
version: "2.0.0"
http:
dependency: transitive
description:
name: http
- url: "https://pub.dartlang.org"
+ sha256: "0a48a4e44ec1b6a52eb93b12d129f5b74ee6dbb27703439c965f1bd86f7be59f"
+ url: "https://pub.dev"
source: hosted
version: "0.13.0"
http_parser:
dependency: transitive
description:
name: http_parser
- url: "https://pub.dartlang.org"
+ sha256: e362d639ba3bc07d5a71faebb98cde68c05bfbcfbbb444b60b6f60bb67719185
+ url: "https://pub.dev"
source: hosted
version: "4.0.0"
ini:
dependency: transitive
description:
name: ini
- url: "https://pub.dartlang.org"
+ sha256: "578497bf9e1480bd3f7975c41e851e2f9d02eba4c158bf1af8772b5d278e2df1"
+ url: "https://pub.dev"
source: hosted
version: "2.1.0-beta"
json_annotation:
dependency: transitive
description:
name: json_annotation
- url: "https://pub.dartlang.org"
+ sha256: "0aab0aad3dde662cdc02d3a6fa6c9f20687a91089900bd25c64f3badcc90bf21"
+ url: "https://pub.dev"
source: hosted
version: "4.0.0"
logging:
dependency: transitive
description:
name: logging
- url: "https://pub.dartlang.org"
+ sha256: "3730d4c02b0c2d1db80ef9904e27fa796d75474f572a70011e0e616ee6bfc0ff"
+ url: "https://pub.dev"
source: hosted
version: "1.0.0"
matcher:
dependency: transitive
description:
name: matcher
- url: "https://pub.dartlang.org"
+ sha256: "38c7be344ac5057e10161a5ecb00c9d9d67ed2f150001278601dd27d9fe64206"
+ url: "https://pub.dev"
source: hosted
version: "0.12.10"
meta:
dependency: transitive
description:
name: meta
- url: "https://pub.dartlang.org"
+ sha256: "98a7492d10d7049ea129fd4e50f7cdd2d5008522b1dfa1148bbbc542b9dd21f7"
+ url: "https://pub.dev"
source: hosted
version: "1.3.0"
path:
dependency: "direct main"
description:
name: path
- url: "https://pub.dartlang.org"
+ sha256: "2ad4cddff7f5cc0e2d13069f2a3f7a73ca18f66abd6f5ecf215219cdb3638edb"
+ url: "https://pub.dev"
source: hosted
version: "1.8.0"
pedantic:
dependency: transitive
description:
name: pedantic
- url: "https://pub.dartlang.org"
+ sha256: "8f6460c77a98ad2807cd3b98c67096db4286f56166852d0ce5951bb600a63594"
+ url: "https://pub.dev"
source: hosted
version: "1.11.0"
pointycastle:
dependency: transitive
description:
name: pointycastle
- url: "https://pub.dartlang.org"
+ sha256: "666796a2673d20ad06c6b6641994bd54f94d12857c0b93a64e1a42252c2f7e4a"
+ url: "https://pub.dev"
source: hosted
version: "3.0.0-nullsafety.2"
posix:
dependency: transitive
description:
name: posix
- url: "https://pub.dartlang.org"
+ sha256: "64c1b8e4448812aa564ae5970e77dce69080a26edaebcd11c77df10e1ab4c9b3"
+ url: "https://pub.dev"
source: hosted
version: "2.0.0"
pub_semver:
dependency: transitive
description:
name: pub_semver
- url: "https://pub.dartlang.org"
+ sha256: "59ed538734419e81f7fc18c98249ae72c3c7188bdd9dceff2840585227f79843"
+ url: "https://pub.dev"
source: hosted
version: "2.0.0"
pubspec2:
dependency: transitive
description:
name: pubspec2
- url: "https://pub.dartlang.org"
+ sha256: ae0e0f960e8308c90adf21f1ea42e2d42c930642c4d51c18d3253f03e66b8b46
+ url: "https://pub.dev"
source: hosted
version: "1.0.0"
quiver:
dependency: transitive
description:
name: quiver
- url: "https://pub.dartlang.org"
+ sha256: ca3ae1a9b6c2a7712f6818c8ce6bbcc6cf999115f4fb51b1fa8b7bfe1037d70e
+ url: "https://pub.dev"
source: hosted
version: "3.0.0"
random_string:
dependency: transitive
description:
name: random_string
- url: "https://pub.dartlang.org"
+ sha256: ed4b83bc132a34d5a87298fdefa427eaf9fa9c9e95af996bc98295e5b1a37477
+ url: "https://pub.dev"
source: hosted
version: "2.2.0-nullsafety"
source_span:
dependency: transitive
description:
name: source_span
- url: "https://pub.dartlang.org"
+ sha256: d5f89a9e52b36240a80282b3dc0667dd36e53459717bb17b8fb102d30496606a
+ url: "https://pub.dev"
source: hosted
version: "1.8.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
- url: "https://pub.dartlang.org"
+ sha256: f8d9f247e2f9f90e32d1495ff32dac7e4ae34ffa7194c5ff8fcc0fd0e52df774
+ url: "https://pub.dev"
source: hosted
version: "1.10.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
- url: "https://pub.dartlang.org"
+ sha256: dd11571b8a03f7cadcf91ec26a77e02bfbd6bbba2a512924d3116646b4198fc4
+ url: "https://pub.dev"
source: hosted
version: "1.1.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
- url: "https://pub.dartlang.org"
+ sha256: a88162591b02c1f3a3db3af8ce1ea2b374bd75a7bb8d5e353bcfbdc79d719830
+ url: "https://pub.dev"
source: hosted
version: "1.2.0"
typed_data:
dependency: transitive
description:
name: typed_data
- url: "https://pub.dartlang.org"
+ sha256: "53bdf7e979cfbf3e28987552fd72f637e63f3c8724c9e56d9246942dc2fa36ee"
+ url: "https://pub.dev"
source: hosted
version: "1.3.0"
uri:
dependency: transitive
description:
name: uri
- url: "https://pub.dartlang.org"
+ sha256: "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a"
+ url: "https://pub.dev"
source: hosted
version: "1.0.0"
uuid:
dependency: transitive
description:
name: uuid
- url: "https://pub.dartlang.org"
+ sha256: "29aa6310432a6fc0b8e2f1e8ef21f28da128cb65d80a335e2354b99435e99d50"
+ url: "https://pub.dev"
source: hosted
version: "3.0.1"
validators2:
dependency: transitive
description:
name: validators2
- url: "https://pub.dartlang.org"
+ sha256: c95746d5176ed1c01aff95fcd1ef22b6459f48a8aa26577ddf7a1e21919a81dc
+ url: "https://pub.dev"
source: hosted
version: "3.0.0"
vin_decoder:
dependency: transitive
description:
name: vin_decoder
- url: "https://pub.dartlang.org"
+ sha256: "98bf7d4c9dfc0c636e7befd7f702c6b0f611660b1a98e9b2a66ccfc49267f861"
+ url: "https://pub.dev"
source: hosted
version: "0.2.0-nullsafety"
yaml:
dependency: transitive
description:
name: yaml
- url: "https://pub.dartlang.org"
+ sha256: "3cee79b1715110341012d27756d9bae38e650588acd38d3f3c610822e1337ace"
+ url: "https://pub.dev"
source: hosted
version: "3.1.0"
sdks:
diff --git a/src/main/java/org/asteriskjava/manager/event/QueueMemberStatusEvent.java b/src/main/java/org/asteriskjava/manager/event/QueueMemberStatusEvent.java
index 1529654c1..147f8afda 100644
--- a/src/main/java/org/asteriskjava/manager/event/QueueMemberStatusEvent.java
+++ b/src/main/java/org/asteriskjava/manager/event/QueueMemberStatusEvent.java
@@ -22,41 +22,62 @@
* @author Asteria Solutions Group, Inc. http://www.asteriasgi.com/
* @version $Id$
*/
-public class QueueMemberStatusEvent extends QueueMemberEvent {
- /**
- * Serializable version identifier
- */
- private static final long serialVersionUID = -2293926744791895763L;
-
- private String ringinuse;
- private Integer wrapuptime;
-
- /**
- * @param source
- */
- public QueueMemberStatusEvent(Object source) {
- super(source);
- }
-
- /**
- * @return the ringinuse
- */
- public String getRinginuse() {
- return ringinuse;
- }
-
- /**
- * @param ringinuse the ringinuse to set
- */
- public void setRinginuse(String ringinuse) {
- this.ringinuse = ringinuse;
- }
-
- public Integer getWrapuptime() {
- return wrapuptime;
- }
-
- public void setWrapuptime(Integer wrapuptime) {
- this.wrapuptime = wrapuptime;
- }
+public class QueueMemberStatusEvent extends QueueMemberEvent
+{
+ /**
+ * Serializable version identifier
+ */
+ private static final long serialVersionUID = -2293926744791895763L;
+
+ private String ringinuse;
+ private Integer wrapuptime;
+
+ private String logintime;
+
+ /**
+ * @param source
+ */
+ public QueueMemberStatusEvent(Object source)
+ {
+ super(source);
+ }
+
+ /**
+ * @return the ringinuse
+ */
+ public String getRinginuse()
+ {
+ return ringinuse;
+ }
+
+ /**
+ * @param ringinuse
+ * the ringinuse to set
+ */
+ public void setRinginuse(String ringinuse)
+ {
+ this.ringinuse = ringinuse;
+ }
+
+ @Override
+ public Integer getWrapuptime()
+ {
+ return wrapuptime;
+ }
+
+ @Override
+ public void setWrapuptime(Integer wrapuptime)
+ {
+ this.wrapuptime = wrapuptime;
+ }
+
+ public String getLogintime()
+ {
+ return logintime;
+ }
+
+ public void setLogintime(String logintime)
+ {
+ this.logintime = logintime;
+ }
}
diff --git a/src/main/java/org/asteriskjava/manager/internal/AsyncEventPump.java b/src/main/java/org/asteriskjava/manager/internal/AsyncEventPump.java
index d17b6ae4c..47f5309fe 100644
--- a/src/main/java/org/asteriskjava/manager/internal/AsyncEventPump.java
+++ b/src/main/java/org/asteriskjava/manager/internal/AsyncEventPump.java
@@ -1,6 +1,10 @@
package org.asteriskjava.manager.internal;
-import com.google.common.util.concurrent.RateLimiter;
+import java.lang.ref.WeakReference;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
import org.asteriskjava.lock.Locker;
import org.asteriskjava.manager.event.ManagerEvent;
import org.asteriskjava.manager.response.ManagerResponse;
@@ -8,10 +12,7 @@
import org.asteriskjava.util.Log;
import org.asteriskjava.util.LogFactory;
-import java.lang.ref.WeakReference;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.TimeUnit;
+import com.google.common.util.concurrent.RateLimiter;
/**
* AsyncEventPump delivers events and responses to a Dispatcher without blocking
@@ -20,174 +21,221 @@
*
* @author rsutton
*/
-public class AsyncEventPump implements Dispatcher, Runnable {
- private final Log logger = LogFactory.getLog(AsyncEventPump.class);
-
- private static final long MAX_SAFE_EVENT_AGE = 500;
-
- private final LinkedBlockingQueue queue = new LinkedBlockingQueue<>(20000);
- private final Dispatcher dispatcher;
- private volatile boolean stop = false;
- private final WeakReference